2016-08-03 9 views
0

Ich habe eine kml-Datei mit einer Reihe von Polygonen. Ich habe geschafft, eine Google Map zu erstellen und diesen kml nach der Dokumentation zu laden.Get Polygone von Google Map

(function initMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 11, 
      center: {lat: 41.876, lng: -87.624} 
     }); 

     var ctaLayer = new google.maps.KmlLayer({ 
      url: 'http://myurl.dev/polygons.kml', 
      map: map 
     }); 

})();  

Jetzt möchte ich von diesem kml, um alle Polygone abzurufen die fragen, ob ein Punkt (lat, long) in einigen von ihnen ist.

Das Problem ist, dass ich keine Dokumentation gefunden habe, um alle Formen zu erhalten, die die Karte enthält. Ist das möglich?

Antwort

1

Sie können nicht auf die Polygone auf der Karte zugreifen, wenn sie dort mit KmlLayer platziert werden, google.maps.KmlLayer verwendet kachelbasiertes Rendering, Sie können (zumindest derzeit) nicht auf die Koordinaten der Polygone zugreifen, außer auf einen Klick.

Beachten Sie jedoch, dass das Rendern der Polygone als native google.maps.Polygon-Objekte (wie die Bibliotheken von Drittanbietern) zu einer Leistungseinbuße führen kann, insbesondere wenn Ihre KML komplex ist.

Sie könnten einen KML-Parser von Drittanbietern wie geoxml3 oder geoxml-v3 verwenden, um die Polygone als native google.maps.Polygon-Objekte zu rendern und deren Mittelpunkt zu erhalten. Dies wird Leistungsprobleme mit komplexen KML haben.

example using geoxml3