我在地图中添加了TileOverlay和一些标记,我想在不使用googleMap.clear()的情况下在地图上移动特定标记,因为TileOverlay也会被清除。有可能吗?
public void onPositionChanged(LatLng newPosition) {
myMarker.position(newPosition);
// myMarker should be updated on a map
}
答案 0 :(得分: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);
}
}
答案 1 :(得分:0)
不清除只需添加新标记即可映射
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();
}