как очистить предыдущие маркеры карты Google, чтобы на карте был только один - PullRequest
2 голосов
/ 19 января 2012

Я пытаюсь сделать так, чтобы эта карта позволяла только один маркер на странице в любое время, но когда я щелкаю, новый маркер помещается вместе со старыми.

Кто-нибудь знает, как вы могли бы сделать это?

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 ]

4 голосов
/ 19 января 2012

Я считаю, что ваш ответ в API Google Mapa.Вам просто нужно установить карту вашего старого маркера на ноль.

Читать это: http://code.google.com/apis/maps/documentation/javascript/overlays.html#RemovingOverlays

2 голосов
/ 20 января 2012

Другой вариант - иметь одну переменную маркера и обновлять положение маркера, когда кто-то нажимает на карту.

0 голосов
/ 25 апреля 2013

объявить поле Маркер:

private Marker marker;

затем для метода setOnMapClickListener вашего объекта GoogleMap выполните следующее:

@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();

}
...