私が作成し、markerclustererライブラリと私のマーカーをクラスタリングしていますし、このコードを使用して、Googleマップ上のマーカーを削除します。は、私はリフレッシュすることができますどのように/ 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、marker、mcOptions);' を生成します。 '$ scope.assetMap.markers [key] .setMap(null);'はエラーを返します:マーカーは未定義です。マップを初期化した後に、それを使用していました。これまでに管理していましたか? – Smiter