我有一个带有一堆多边形的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);
问题是,我没有找到任何文档来获取地图包含的所有形状。这可能吗?
答案 0 :(得分:1)
使用KmlLayer放置地图时,您无法访问地图上的多边形,google.maps.KmlLayer使用基于平铺的渲染,您无法(至少目前)访问坐标除了点击之外的多边形。
但请注意,将多边形渲染为原生google.maps.Polygon对象(如第三方库所做的那样)可能会降低性能,尤其是在KML很复杂的情况下。
您可以使用第三方KML解析器(如geoxml3或geoxml-v3)将多边形渲染为原生google.maps.Polygon对象,并获取其中心。这将导致复杂KML的性能问题。