Javascript 添加另一层时是否自动删除上一个多边形(geojson层)传单?
下面的代码将允许在地图上创建多边形。这可以很好地工作,但添加新图层时,也可以看到以前的geojson图层Javascript 添加另一层时是否自动删除上一个多边形(geojson层)传单?,javascript,angularjs,leaflet,geojson,Javascript,Angularjs,Leaflet,Geojson,下面的代码将允许在地图上创建多边形。这可以很好地工作,但添加新图层时,也可以看到以前的geojson图层 $http.get("./json/sf.geo.json").success(function(data, status) { leafletData.getMap('lfdt').then(function(map){ var polyLayer = L.geoJson(data, {filter: layerFilter}).addTo(map); fu
$http.get("./json/sf.geo.json").success(function(data, status) {
leafletData.getMap('lfdt').then(function(map){
var polyLayer = L.geoJson(data, {filter: layerFilter}).addTo(map);
function clear_polygon() {
map.removeLayer( polyLayer );
}
function layerFilter(feature) {
if (feature.properties.zip === $scope.code) return true;
}
map.fitBounds(polyLayer.getBounds(), {
padding: [40, 40]
});
});
我有zipcode下拉列表,我想在传单地图上显示选定的zipcode边界。问题是,当用户选择另一个zipcode时,会显示新多边形,但也会显示旧多边形,如下图所示
有谁能帮我写removeLayers()吗。请建议我。问题是,通过使用
var
重新声明变量,对上一个对象的引用丢失
这意味着,首先,必须在get调用之外声明变量。就在javascript文件的顶部
var polyLayer;
然后在get函数中删除该行中的var。改变
var polyLayer = L.geoJson(data, {filter: layerFilter}).addTo(map);
到
if(polyLayer)
{
map.removeLayer(polyLayer); // remove the old polygon...
}
polyLayer = L.geoJson(data, {filter: layerFilter}).addTo(map); // ...then add the new polygon