我在地图中添加了 TileOverlay 和一些标记,我想在不使用 googleMap.clear() 的情况下移动地图上的特定标记,因为 TileOverlay 也会被清除。有可能做到吗?
public void onPositionChanged(LatLng newPosition) {
myMarker.position(newPosition);
// myMarker should be updated on a map
}
我在地图中添加了 TileOverlay 和一些标记,我想在不使用 googleMap.clear() 的情况下移动地图上的特定标记,因为 TileOverlay 也会被清除。有可能做到吗?
public void onPositionChanged(LatLng newPosition) {
myMarker.position(newPosition);
// myMarker should be updated on a map
}
从您发布的代码中。我可以看到您一次只需要 1 个标记(或者您要添加更多?没关系)。您必须将对标记的引用存储在您的方法可以访问的地方。然后你可以创建一个虚拟标记(或检查标记是否不存在,然后创建一个并保存对它的引用)并使用 dummy.setPosition(LatLng latlng) 移动它。
这是一个示例代码:
private Marker marker;
public void onPositionChanged(LatLng newPosition) {
if (marker == null) {
marker = map.addMarker(new MarkerOptions().position(newPostion));
} else {
marker.setPostion(newPosition);
}
}
不清除只需添加新标记到地图
public void AddMarkerAndSetCameraPosition(LatLng latlng)
{
//GMap.Clear();
CurrentMarker = GMap.AddMarker(new MarkerOptions()
.SetPosition(latlng));
GMap.AnimateCamera(CameraUpdateFactory.NewLatLngZoom(latlng, 15f));
GMap.CameraPosition.Zoom = 15f;
CurrentMarker.ShowInfoWindow();
}