我創建和聚類我與markerclusterer庫標記和該代碼刪除谷歌地圖標記:我如何刷新/使用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;
};
而且能正常工作的第一次迭代。
來到populateMapLocationData函數再次用新的位置,邊界改變和地圖中心和縮放到新標記的新位置,所以我認爲它工作,但所有以前的標記仍然存在。
我想實現的是當我用一組新的位置調用populateMapLocationData時,清除現有的標記並用新的標記更新地圖。
我看過markers[key].setMap(null);
可以使用但我沒有任何成功。
任何建議表示讚賞,感謝
你在哪裏實現你所看到的('markers [key] .setMap(null);')是解決方案嗎? – MrUpsidown
我一直主要參考這個文檔: https://ngmap.github.io/#/!marker-remove.html 但是沒有使用聚類庫去除標記/標記的例子。我正在以不同的方式構建我的標記。我正在使用此行 'var markerCluster = new MarkerClusterer($ scope.assetMap,markers,mcOptions);' 生成它們。 '$ scope.assetMap.markers [key] .setMap(null);'返回錯誤:marker未定義。在地圖完成初始化之後,我正在使用它作爲測試來刪除任何內容。你之前是否管理過它? – Smiter