1

我在地图中添加了 TileOverlay 和一些标记,我想在不使用 googleMap.clear() 的情况下移动地图上的特定标记,因为 TileOverlay 也会被清除。有可能做到吗?

public void onPositionChanged(LatLng newPosition) {
    myMarker.position(newPosition);
    // myMarker should be updated on a map
}
4

2 回答 2

1

从您发布的代码中。我可以看到您一次只需要 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);
    }
}

参考https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/Marker

于 2013-10-01T05:48:33.317 回答
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();

    }
于 2017-09-18T15:26:30.323 回答