2016-08-03 179 views
0

我有一堆多邊形的kml文件。我設法創建一個谷歌地圖,並按照文檔加載kml。從谷歌地圖獲取多邊形

(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 
     }); 

})();  

現在,我想要檢索從這個KML,以便在問,如果一個點(緯度,經度)是內一些人所有的多邊形。

google.maps.geometry.poly.containsLocation(point, OnePolygonFromMyMap); 

問題是,我沒有找到任何文檔來獲取地圖包含的所有形狀。這可能嗎?

回答

1

當您使用KmlLayer放置地圖時,您不能訪問地圖上的多邊形,google.maps.KmlLayer使用基於圖塊的渲染,除了點擊之外,您不能(至少現在)訪問多邊形的座標。

但請注意,將多邊形渲染爲原生的google.maps.Polygon對象(如第三方庫一樣)可能會導致性能損失,尤其是在您的KML很複雜時。

您可以使用像geoxml3geoxml-v3這樣的第三方KML解析器將多邊形渲染爲原生的google.maps.Polygon對象,並獲得它們的中心。這會對複雜的KML帶來性能問題。

example using geoxml3