一旦数据可用,将标记添加到谷歌地图



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

活动布局中的地图片段

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

创建

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;
}

相关内容

  • 没有找到相关文章

最新更新