Получение количества маркеров в слое в листовке

У меня есть карта Leaflet со слоем под названием flickrpics, который динамически загружается в geojson на основе bbox текущего представления карты. Я хотел бы получить простой подсчет количества маркеров в этом слое, чтобы отображать его рядом с меткой слоя в элементе управления слоями. Я пробовал такие вещи, как flickrpics.length, но он говорит undefined.

Извините, новичок в Leaflet и javascript!


person jamesinealing    schedule 01.09.2014    source источник


Ответы (2)


Ссылка: https://leafletjs.com/reference-1.3.4.html#geojson

Методы, унаследованные от LayerGroup:

Слой getLayers () []

Возвращает массив всех слоев, добавленных в группу.

var pins = L.geoJson(geojsonFeature, {}).addTo(map); var totalPins = pins.getLayers().length;

person IvanMunoz    schedule 09.10.2018

Если вы используете L.geoJson для загрузки geoJSON, вы можете использовать onEachFeature для подсчета количества объектов в слое geoJSON. Что-то типа:

var counter = 0;

function onEachFeature(feature, layer) {
counter++;
}

L.geoJson(geojsonFeature, {
onEachFeature: onEachFeature
}).addTo(map);

См. http://leafletjs.com/examples/geojson.html для получения дополнительной информации.

person Marko Letic    schedule 01.09.2014
comment
Это прекрасно, работает удовольствие. Я искал что-то уже в объекте Windows, что я мог бы «измерить», но имеет смысл делать это таким образом, поскольку у меня уже был цикл onEachFeature, заполняющий всплывающие окна. Ура (и извинения за задержку с ответом - я был в самолете) - person jamesinealing; 02.09.2014