以下代码将启用在地图上创建多边形。这样可以正常工作,但在添加新图层时,先前的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,我想在传单地图上显示选定的邮政编码边界。问题是当用户被选中另一个邮政编码时,新的多边形正在显示,但旧的多边形也在显示,如下图所示。
任何人都可以帮我,我应该在哪里写removeLayers()。请建议我。
答案 0 :(得分:0)
问题在于,通过使用Rectangle
重新声明您的变量,对前一个对象的引用将丢失。
这意味着,首先,您必须在get调用之外声明您的变量。就在你的javascript文件的顶部。
var
然后只需从get函数中删除该行的var。变化
var polyLayer;
到
var polyLayer = L.geoJson(data, {filter: layerFilter}).addTo(map);