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