移动标记而不清除Google Map

时间:2013-10-01 05:47:04

标签: android google-maps google-maps-api-2

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

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

2 个答案:

答案 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);
    }
}

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

答案 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();

    }