0

Ich verwende eine externe geojson-file, um Ebenen zu meiner Google Map hinzuzufügen. Diese Datei enthält zwei Eigenschaften pro Bereich, auf die ich beim Suchen zugreifen möchte. Ich kann die Eigenschaften leicht holen, wenn der Benutzer auf einen Bereich klickt oder einen der anderen unterstützten Event-Handler verwendet.Google Maps V3 -> Ist es möglich, Eigenschaften von Geojson mit Hilfe von Lat-Koordinaten oder anderen Informationen aus dem Suchfeld zu erhalten?

https://developers.google.com/maps/documentation/javascript/datalayer#add_event_handlers

this.map.data.addListener('mouseover', (event) => { 
    console.log(event.feature.getProperty('VD')); 
}); 

Allerdings würde ich bekommen, was geojson Bereich Ich bin in bei der Suche und von diesem Zugang dieser Eigenschaften. Ist das möglich?

searchBox.addListener('places_changed',() => { 
    var places = this.searchBox.getPlaces(); 
    ... 
    places.forEach((place) => { 
    ... 

enter image description here

+0

Zur Person Fragen mit dem Google-Maps-Tag abstimmen. Bitte sagen Sie, warum Sie abstimmen, damit die Fragen in Zukunft besser geschrieben werden können. – Ogglas

Antwort

1

können Sie containsLocation Dienstprogramm überprüfen, ob eine LatLng Lage von einem Polygon enthalten ist.

So in einer for Schleife erhalten alle Funktionen in Ihrem Data layer (bestückt mit loadGeoJson() oder addGeoJson()), jede Geometrie erhalten und ein Polygon erstellen mit der containsLocation() Funktion zu verwenden.

Zum Beispiel der folgende Code überprüft, ob loc (LatLng) in eines der Merkmale von feats Array enthalten ist:

inWhichArea = function(map, loc) { 
    for (var i in feats) { 
    var area = feats[i].getGeometry(); 
    var poly = new google.maps.Polygon({ 
     paths: area.getAt(0).getArray(), 
     map: map, 
     clickable: false 
    }); 
    if (google.maps.geometry.poly.containsLocation(loc, poly)) { 
     return feats[i]; 
    } 
    } 
    return null; 
} 

Hier ist ein jsfiddle mit einem Arbeitsbeispiel: http://jsfiddle.net/beaver71/sgtpop4f/

+0

Ich möchte dir ein Bier kaufen, aber ich hoffe mein Dank reicht. Ich musste einige kleine Änderungen vornehmen, da meine Funktionen 'MultiPolygon' und nicht' Polygon' waren. Einfache Änderung: 'paths: area.getArray() [0] .getAt (0) .getArray()' https://developers.google.com/maps/documentation/javascript/3.exp/reference#Data.MultiPolygon – Ogglas

Verwandte Themen