Ich schaffe und Clustering meine Markierungen mit der markerclusterer Bibliothek und mit diesem Code:Wie kann ich aktualisieren/löschen Markierungen auf Google Maps ngMaps
function populateMapLocationData(locations) {
NgMap.getMap({id:'map'}).then(function(map) {
$scope.assetMap = map;
$scope.initMarkerClusterer(locations);
});
};
$scope.initMarkerClusterer = function(locations) {
$scope.bounds = new google.maps.LatLngBounds();
var markers = $scope.createMarker(locations);
var mcOptions = { imagePath: 'https://cdn.rawgit.com/googlemaps/js-marker-clusterer/gh-pages/images/m' };
var markerCluster = new MarkerClusterer($scope.assetMap, markers, mcOptions);
$scope.assetMap.fitBounds($scope.bounds);
$scope.assetMap.panToBounds($scope.bounds);
};
$scope.createMarker = function(location) {
var latLng = new google.maps.LatLng(parseFloat(location.lat), parseFloat(location.lang));
$scope.bounds.extend(latLng);
var marker = new google.maps.Marker({position: latLng, title: asset.name});
google.maps.event.addListener(marker, 'click', function() {
var infowindow = new google.maps.InfoWindow();
var center = new google.maps.LatLng(parseFloat(asset.lat), parseFloat(asset.lang));
infowindow.setContent("content");
infowindow.setPosition(center);
infowindow.open($scope.assetMap);
google.maps.event.addListener($scope.assetMap, 'click', function(event) {
infowindow.close();
});
});
return marker;
};
Und das funktioniert gut bei der ersten Iteration.
Kommen Sie, um die populateMapLocationData-Funktion wieder mit neuen Standorten zu treffen, ändern sich die Grenzen und die Karte zentriert und zoomt an die neue Position der neuen Marker, so denke ich, es funktioniert aber alle vorherigen Marker sind noch da.
Was ich erreichen möchte, ist, wenn ich populateMapLocationData mit einem neuen Satz von Standorten aufrufen, löschen Sie die vorhandenen Markierungen und aktualisieren Sie die Karte mit neuen.
Ich habe gesehen markers[key].setMap(null);
kann verwendet werden, aber ich hatte keinen Erfolg.
Jede Beratung wird geschätzt, dank
Wo ist Ihre Implementierung von dem, was Sie gesehen haben ('markers [key] .setMap (null);') war die Lösung? – MrUpsidown
Ich habe mich hauptsächlich auf diese Dokumentation bezogen: https://ngmap.github.io/#/!marker-remove.html , aber es gibt kein Beispiel für das Entfernen eines Markers/Markers mit Hilfe der Cluster-Bibliothek. Und ich baue meine Marker anders. Ich verwende diese Zeile 'var markerCluster = neue MarkerClusterer ($ scope.assetMap, Marker, mcOptions);' , um sie zu generieren. '$ scope.assetMap.markers [Schlüssel] .setMap (null);' gibt Fehler zurück: markers ist nicht definiert. Ich benutzte das, nachdem die Karte mit der Initialisierung fertig war, um alles zu entfernen. Hast du es schon einmal geschafft? – Smiter