如何清除以前的谷歌地图标记,以便一次只有一个在地图上

时间:2012-01-19 09:31:40

标签: google-maps

我试图让这张地图在任何时候只允许在页面上放一个标记,但是当我点击一个新标记与旧标记一起放置时。

有谁知道你会如何实现这一目标?

google.maps.event.addListener(map, 'click', function(event) {
                //set up variables
                var clickLat = event.latLng.lat();
                var clickLng = event.latLng.lng();

                //show lat and long
                var loc = document.getElementById("location");
                var info = "Latitude: "+clickLat+" "+", longitude: "+clickLng;
                loc.innerHTML = info;

                //place marker
                var marker = new google.maps.Marker({
                    position: new google.maps.LatLng(clickLat, clickLng),
                    map: map,
                    animation: google.maps.Animation.DROP
                });

            });

3 个答案:

答案 0 :(得分:4)

我相信您的答案在Google Maps API中。您只需将旧标记的地图设置为null。

阅读本文:http://code.google.com/apis/maps/documentation/javascript/overlays.html#RemovingOverlays

答案 1 :(得分:2)

另一种选择是拥有一个标记变量,并在有人点击地图时更新标记的位置。

答案 2 :(得分:0)

声明标记字段:

private Marker marker;

然后,对于GoogleMap对象的setOnMapClickListener方法,请执行以下操作:

@Override
public void onMapClick(LatLng point) {
 if(marker!=null)  marker.remove();
 markerSelectedPlace = new MarkerOptions().position(point).title(
                            "dfsdfsdfs dfsdfsdf"); 
 marker = mMap.addMarker(markerSelectedPlace);
 mMap.addMarker(markerSelectedPlace);
 marker.showInfoWindow();

}