2

Long/Lat를 사용하여 내 Google지도에 마커를 추가하려고하는데 데이터베이스에서 검색하고 있습니다. 그러나 onMapReady 외부에 표식을 추가 할 수는 없습니다.데이터를 사용할 수있게되면 Google Map에 마커를 추가 하시겠습니까?

내지도 조각 내 활동은 레이아웃 내부

<fragment android:name="com.google.android.gms.maps.SupportMapFragment" 
         android:id="@+id/map" 
         android:layout_width="match_parent" 
         android:layout_height="400dp"/> 

에서 OnCreate

mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 

OnMapReady

@Override 
    public void onMapReady(GoogleMap map) { 
     map.addMarker(new MarkerOptions() 
       .position(new LatLng(1, 1)) 
       .title("jjj")); 
    } 
기본적으로 내가 나를 추가 할 수 있습니다지도에 대한 참조를 얻을 필요가

마커를 해당 OnMapReady 메서드에서 분리합니다.

답변

2

지도를 비동기 적으로로드하는 올바른 방법입니다. onMapReady 메서드 외부에 마커를 설정하려면 onMapReady 메서드에서 얻은 GoogleMap 개체에 대한 참조를 유지할이 클래스의 새로운 특성을 고려하십시오. 그러나이 속성을 아직 설정할 수 없으므로이 속성을 호출 할 때주의를 기울여야합니다 (NullPointerException)! 또한 더 이상 필요하지 않을 때 속성을 설정 해제하여 메모리 누수가 발생하지 않도록 할 수 있습니다.

... 

private GoogleMap mMyGoogleMap; 

... 

@Override 
public void onMapReady(GoogleMap map) { 
    mMyGoogleMap = map; 
} 
+0

감사합니다. – xiimoss

+0

문제 해결에 도움이된다면 정답으로 받아들이는 것이 좋습니다. –