gpt4 book ai didi

javascript - 添加另一层时自动删除先前的多边形(geojson 层)传单?

转载 作者:行者123 更新时间:2023-12-03 04:56:39 26 4
gpt4 key购买 nike

以下代码将启用在 map 上创建多边形。这工作正常,但添加新图层时以前的 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);
function clear_polygon() {
map.removeLayer( polyLayer );
}

function layerFilter(feature) {
if (feature.properties.zip === $scope.code) return true;
}
map.fitBounds(polyLayer.getBounds(), {
padding: [40, 40]
});
});

我有邮政编码下拉列表,我想在传单 map 上显示选定的邮政编码边界。问题是当用户选择另一个邮政编码时,会显示新的多边形,但也会显示旧的多边形,如下图所示。

enter image description here

任何人都可以帮我我应该在哪里写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

关于javascript - 添加另一层时自动删除先前的多边形(geojson 层)传单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42406554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com