我尝试从我的地图中移除标记,然后添加不同的标记,但建议的方法虽然没有丢错,但不会删除我的标记。
$scope.geo.push({
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [$scope.gig.lng, $scope.gig.lat]
},
properties: {
title: $scope.gig.venue,
description: $scope.gig.address + ' ' + $scope.gig.postcode,
'marker-size': 'medium',
'marker-color': '#676767'
}
});
/* show on map */
var markerLayer = L.mapbox.markerLayer().setGeoJSON({
type: 'FeatureCollection',
features: $scope.geo
}).addTo(map);
map.setZoom(13);
map.panTo($scope.geo[0].geometry.coordinates.reverse());
markerLayer.eachLayer(function(m) {
});
根据文档,我应该能够调用以下内容来清除所有标记,但它什么也没做。
L.mapbox.markerLayer().clearLayers();
我做错了吗?如果没有重置地图的核方式?
答案 0 :(得分:1)
L.mapbox.markerLayer().clearLayers();
L.mapbox.markerLayer()
是一个创建新标记图层的函数:此调用正在创建一个新的标记图层,并清除其中的标记。
在您的代码中,您有
行 var markerLayer = L.mapbox.markerLayer().setGeoJSON({
type: 'FeatureCollection',
features: $scope.geo
}).addTo(map);
您正在使用L.mapbox.markerLayer()
创建新的标记图层,并使用变量markerLayer
命名。因此,要清除此图层中的标记,请调用:
markerLayer.clearLayers();