Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Accessing Leaflet.js GeoJson features from outside

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?

enter image description here

like image 758
datafunk Avatar asked Feb 19 '15 22:02

datafunk


1 Answers

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);
like image 107
asir6 Avatar answered Sep 30 '22 12:09

asir6