【问题标题】:Get polygons from google map从谷歌地图获取多边形
【发布时间】:2016-08-03 22:07:02
【问题描述】:

我有一个包含一堆多边形的 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);

问题是我没有找到任何文档来获取地图包含的所有形状。这可能吗?

【问题讨论】:

    标签: javascript google-maps google-maps-api-3 geolocation


    【解决方案1】:

    使用 KmlLayer 将多边形放置在地图上时,您无法访问它们,google.maps.KmlLayer 使用基于图块的渲染,您无法(至少目前)访问多边形的坐标,除非单击.

    但请注意,将多边形渲染为原生 google.maps.Polygon 对象(如第三方库所做的那样)可能会降低性能,尤其是在您的 KML 很复杂的情况下。

    您可以使用第三方 KML 解析器(如 geoxml3geoxml-v3)将多边形渲染为原生 google.maps.Polygon 对象,并获取它们的中心。这将对复杂的 KML 产生性能问题。

    example using geoxml3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多