数据可用后,将Marker添加到Google Map?

时间:2017-05-09 08:10:26

标签: android google-maps google-maps-markers supportmapfragment

我尝试使用我从数据库中检索的Long / Lat向我的Google地图添加标记。但是,我似乎无法在onMapReady之外添加标记。

我的活动布局中的地图片段

<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方法中添加标记。

1 个答案:

答案 0 :(得分:3)

这是正确的方法,异步加载地图。如果您确实要在onMapReady方法之外设置标记,请考虑此类中的新属性,该属性将保留对GoogleMap方法中的onMapReady对象的引用。但是在调用此属性时请注意,因为它可能尚未设置(NullPointerException)!此外,您可能希望在不再需要该属性时取消设置该属性,因此您没有内存泄漏。

...

private GoogleMap mMyGoogleMap;

...

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