448 Stimmen

Google Maps API v3: Wie entfernt man alle Markierungen?

Wenn ich in Google Maps API v2 alle Kartenmarkierungen entfernen wollte, konnte ich das einfach tun:

map.clearOverlays();

Wie mache ich das in Google Maps API v3 ?

Die Betrachtung der Referenz-API Das ist mir unklar.

0voto

Geka P Punkte 517

Ich habe alle vorgeschlagenen Lösungen ausprobiert, aber nichts hat bei mir funktioniert, solange alle meine Marker unter einem Cluster waren. Schließlich habe ich gerade diese setzen:

var markerCluster = new MarkerClusterer(map, markers,
    { imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m' });
agentsGpsData[agentGpsData.ID].CLUSTER = markerCluster;

//this did the trick
agentsGpsData[agentId].CLUSTER.clearMarkers();

Mit anderen Worten: Wenn Sie Markierungen in einem Cluster einschließen und alle Markierungen entfernen möchten, rufen Sie auf:

clearMarkers();

0voto

Adil Punkte 79

Die meisten stimmten Antwort an der Spitze ist richtig, aber für den Fall, wenn Sie nur eine Markierung zu einem Zeitpunkt (wie ich in meiner Situation hatte) und jedes Mal, wenn Sie die vorherige Position dieser Markierung zu löschen und eine neue hinzufügen müssen, dann müssen Sie nicht ganze Array von Markierungen zu erstellen und verwalten Sie es auf jedem Push und Pop, können Sie einfach nur eine Variable erstellen, um Ihre Markierung vorherige Position zu speichern und können, dass auf Null auf die Erstellung von neuen gesetzt.

// Globale Variable für die Position der Markierung.

var previousMarker;

//während des Hinzufügens einer neuen Markierung

    if(previousMarker != null)
previousMarker.setMap(null);

var marker = new google.maps.Marker({map: resultsMap, position: new google.maps.LatLng(lat_, lang_)});
previousMarker = marker;

0voto

Googlemap einfach löschen

mGoogle_map.clear();

0voto

kaiser Punkte 839

Gehen Sie einfach über Markierungen und entfernen Sie sie von der Karte, leeren Sie danach das Markierungsfeld der Karte:

var markers = map.markers;
for(var i = 0; i < markers.length; i++) {
    markers[i].setMap(null);
}
map.markers = [];

0voto

Felipe Miosso Punkte 7221

Ich weiß nicht, warum, aber die Einstellung setMap(null) zu meinen Markern funktionierte bei mir nicht, wenn ich die DirectionsRenderer .

In meinem Fall musste ich anrufen setMap(null) zu meinem DirectionsRenderer auch.

So etwas in der Art:

var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();

if (map.directionsDisplay) {
    map.directionsDisplay.setMap(null);
}

map.directionsDisplay = directionsDisplay;

var request = {
    origin: start,
    destination: end,
    travelMode: google.maps.TravelMode.DRIVING
};

directionsDisplay.setMap(map);
directionsService.route(request, function (result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(result);
    }
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X