2012-10-03 34 views
1

我是使用geojson创建折线。我以GeoJSON的格式如下:Leaflet clear geojson layer(polyline)

var myLines = [{ 
    "type": "LineString", 
    "coordinates": [[-75, 21.9], [-75.4, 22.7], [-76.5, 23.4]] 
    }, { 
    "type": "LineString", 
    "coordinates": [[-105, 40], [-110, 45], [-115, 55]] 
}]; 

     L.geoJson(myLines).addTo(map); 

我有如下明显的折线功能:

function clear_polyline(){ 
$.each(myLines, function(ind,poly){ 
map.removeLayer(poly); 
}); 
} 

此功能不会清除层也不会引发任何错误。 如何清除传单中的折线?

回答

10

您需要从地图中删除Leaflet图层,而不是从该图层创建的GeoJSON对象。 L.GeoJSON是将包含所有项目的“myLines”所以,你应该做这样的事情,除去它FeatureLayer:

var linesFeatureLayer = L.geoJson(myLines); 
linesFeatureLayer.addTo(map); 

function clear_polyline() { 
    map.removeLayer(linesFeatureLayer); 
} 
1
var linesFeatureLayer = L.geoJson(myLines); 
linesFeatureLayer.clearlayer() 
+1

我认为它应该更喜欢阅读:'linesFeatureLayer.clearLayers() ' –

相关问题