Accessing Leaflet.js GeoJson features from outside

dictionary, geo, javascript, leaflet

Solution

You may use getLayer to get the feature by its id. http://leafletjs.com/reference.html#layergroup-getlayer

var geojsonLayer = L.geoJson(data,{
    onEachFeature: function(feature, layer) {
        layer._leaflet_id = feature.id;                                    
    }});
geojsonLayer.addTo(map);

feature = geojsonLayer.getLayer(12345); //your feature id here
alert(feature.feature.id);

Problem

I want to interact with a leaflet powered map's GeoJson overlay (polygons) from outside of `L.`'s realm, but I don't seem to be able to access objects created by `L.`. Interaction would include: - getBounds(myFeature) - fitBounds(myFeature) - setStyle etc I can see Leaflet exposing L.GeoJSON.getFeature(), but I don't seem to be able to squeeze anything out of it. No documentation, and the inspector seems to suggest it does not take arguments... :\ Is this just there for future development?

Original source