2017-01-23 1 views
1

Ich habe eine LeafletJS-Map mit einer GeoJSON-Ebene, die mehrere Polygone enthält. Wenn ein Benutzer eine geografische Länge/Breite-Koordinate eingibt, die in die GeoJSON-Ebene fällt, sollte das Skript die Funktion abrufen, die diesen Punkt enthält, und einige Informationen darüber in der Konsole protokollieren.So erhalten Sie die Leaflet GeoJSON-Funktion mit einem gegebenen Breiten-/Längengrad

Ich kann die Leaflet-integrierte Ereignisbehandlung nicht einfach verwenden, da die Breiten- und Längenkoordinaten durch ein separates Eingabefeld und nicht durch direkte Interaktion mit der Karte generiert werden. Also meine Frage ist kein Duplikat von this.

Ich suche nach etwas ähnliches wie getFeatureContainingLatLng() im Beispiel unten:

var map = L.map('map'); 
var geojson = L.geoJson(myGeojson); 

geojson.addTo(map); 

$.on('address input changed event', function(lat, lng) { 
    var myFeature = geojson.getFeatureContainingLatLng(lat, lng); 
    console.log(myFeature.properties); 
}); 

Antwort

2

Die Plugins Leaflet.CheapLayerAt oder Leaflet-pip helfen sollte. Beide Ansätze werden Ihr Problem lösen, auch wenn sie speziell in Bezug auf die algorithmische Komplexität unterschiedliche Vor- und Nachteile haben.

+0

Ich endete mit einem anderen Ansatz, aber beide hätten mein Problem gelöst. –

Verwandte Themen