Javascript 添加另一层时是否自动删除上一个多边形(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

下面的代码将允许在地图上创建多边形。这可以很好地工作,但添加新图层时,也可以看到以前的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]
    });
});
我有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