其他分享
首页 > 其他分享> > android-一旦数据可用,将标记添加到Google Map?

android-一旦数据可用,将标记添加到Google Map?

作者:互联网

我正在尝试使用从数据库中检索的经度/纬度向我的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方法中添加一个标记.

解决方法:

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

...

private GoogleMap mMyGoogleMap;

...

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

标签:google-maps,google-maps-markers,supportmapfragment,android
来源: https://codeday.me/bug/20191111/2019537.html