I have a Leaflet map with a layer called flickrpics that is loaded dynamically in geojson based on the bbox of the current map view. I would like to get a simple count of the number of markers in that layer, so that I can display it next to the layer label in the layer control. I've tried things like flickrpics.length but it's saying undefined.
Apologies, pretty new to Leaflet and javascript!
I have a Leaflet map with a layer called flickrpics that is loaded dynamically in geojson based on the bbox of the current map view. I would like to get a simple count of the number of markers in that layer, so that I can display it next to the layer label in the layer control. I've tried things like flickrpics.length but it's saying undefined.
Apologies, pretty new to Leaflet and javascript!
Share Improve this question asked Sep 1, 2014 at 8:09 jamesinealingjamesinealing 5928 silver badges22 bronze badges2 Answers
Reset to default 3If you are using L.geoJson for geoJSON loading, you can use the onEachFeature to count the number of objects in the geoJSON layer. Something like:
var counter = 0;
function onEachFeature(feature, layer) {
counter++;
}
L.geoJson(geojsonFeature, {
onEachFeature: onEachFeature
}).addTo(map);
See http://leafletjs./examples/geojson.html for more information.
Reference: https://leafletjs./reference-1.3.4.html#geojson
Methods inherited from LayerGroup:
getLayers() Layer[]
Returns an array of all the layers added to the group.
var pins = L.geoJson(geojsonFeature, {}).addTo(map);
var totalPins = pins.getLayers().length;