2012-10-03 9 views
1

Я создаю полилинию с использованием geojson. Формат моего GeoJSON, как показано ниже:Leaflet clear geojson layer (полилиния)

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

Вам нужно удалить слой листа с карты, а не объект GeoJSON, из которого был создан слой. L.GeoJSON является FeatureLayer, который будет содержать все пункты в «myLines», так что вы должны сделать что-то вроде этого, чтобы удалить его:

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() ' –