在数据可用后将标记添加到 Google 地图?
Add Marker to Google Map once data is available?
我正在尝试使用从我的数据库中检索的 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"/>
创建时
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
方法之外设置一个标记,请考虑在这个 class 中添加一个新属性,它将保留对你在 onMapReady
方法中获得的 GoogleMap
对象的引用.但调用此属性时请注意,因为它可能尚未设置(NullPointerException)!此外,当您不再需要该属性时,您可能希望取消设置该属性,这样就不会发生内存泄漏。
...
private GoogleMap mMyGoogleMap;
...
@Override
public void onMapReady(GoogleMap map) {
mMyGoogleMap = map;
}
我正在尝试使用从我的数据库中检索的 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"/>
创建时
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
方法之外设置一个标记,请考虑在这个 class 中添加一个新属性,它将保留对你在 onMapReady
方法中获得的 GoogleMap
对象的引用.但调用此属性时请注意,因为它可能尚未设置(NullPointerException)!此外,当您不再需要该属性时,您可能希望取消设置该属性,这样就不会发生内存泄漏。
...
private GoogleMap mMyGoogleMap;
...
@Override
public void onMapReady(GoogleMap map) {
mMyGoogleMap = map;
}