从谷歌地图获取多边形
Posted
技术标签:
【中文标题】从谷歌地图获取多边形【英文标题】: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);
问题是我没有找到任何文档来获取地图包含的所有形状。这可能吗?
【问题讨论】:
【参考方案1】:使用 KmlLayer 将多边形放置在地图上时,您无法访问它们,google.maps.KmlLayer 使用基于图块的渲染,您无法(至少目前)访问多边形的坐标,除非单击.
但请注意,将多边形渲染为原生 google.maps.Polygon 对象(如第三方库所做的那样)可能会降低性能,尤其是在您的 KML 很复杂的情况下。
您可以使用第三方 KML 解析器(如 geoxml3 或 geoxml-v3)将多边形渲染为原生 google.maps.Polygon 对象,并获取它们的中心。这将对复杂的 KML 产生性能问题。
example using geoxml3
【讨论】:
以上是关于从谷歌地图获取多边形的主要内容,如果未能解决你的问题,请参考以下文章