我正在尝试决定是否要使用 json 或 kml 将多边形存储在服务器上的文件中。我必须读入这个文件并检查给定点在哪个多边形内。我被 kml 所吸引,因为我可以使用 Google Maps Javascript API 将整个 kml 文件渲染成两行:
var importedKml = new google.maps.KmlLayer('mykml.kml');
importedKml.setMap(map);
但是,我找不到用于检查点是否在 kml 文件中的所有多边形内的内置函数。我知道我可以使用以下代码检查一个点是否在多边形中:
google.maps.geometry.poly.containsLocation(latlngPoint, polygon);
但看起来我必须解析 kml 并转动每个
<Placemark><Polygon>
首先将特征放入 google.maps.polygon 对象中。
我考虑过回到 json,因为 json 对象是非常可定制的,我可以直接调用类似的东西
//json object polygonFile from server
google.maps.geometry.poly.containsLocation(latlngPoint, polygonFile.polygons[0].polygon);
用我自己建造的结构。没有快速简便的方法将 json 渲染到地图而不首先将其转换为谷歌地图对象然后渲染这些对象,但是,它似乎出现了。
有没有办法检查一个点是否在 kml 文件中的多边形内,而无需先将每个要素转换为谷歌地图对象?如果没有,将 json 对象转换为谷歌地图对象听起来像是要走的路。