添加另一个图层时自动删除前一个多边形(geojson图层)?

时间:2017-02-23 03:38:12

标签: 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);
    function clear_polygon() {
        map.removeLayer( polyLayer );
            }

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

我正在下载zipcodes,我想在传单地图上显示选定的邮政编码边界。问题是当用户被选中另一个邮政编码时,新的多边形正在显示,但旧的多边形也在显示,如下图所示。

enter image description here

任何人都可以帮我,我应该在哪里写removeLayers()。请建议我。

1 个答案:

答案 0 :(得分:0)

问题在于,通过使用Rectangle重新声明您的变量,对前一个对象的引用将丢失。

这意味着,首先,您必须在get调用之外声明您的变量。就在你的javascript文件的顶部。

var

然后只需从get函数中删除该行的var。变化

var polyLayer;

var polyLayer = L.geoJson(data, {filter: layerFilter}).addTo(map);