javascript - 多边形内的点——json还是kml?

标签 javascript json google-maps google-maps-api-3 kml

我正在尝试决定是否要使用 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 渲染到 map 上。

有没有一种方法可以检查某个点是否位于 kml 文件中的多边形内,无需先将每个要素转换为 Google map 对象?如果没有,将 json 对象转换为 google map 对象听起来是可行的方法。

最佳答案

GEarthExtensions 怎么样? Polygon 对象有一个函数“containsPoint” 这是一个例子: http://code.google.com/p/earth-api-utility-library/source/browse/trunk/extensions/examples/point-in-poly.html

关于javascript - 多边形内的点——json还是kml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19962690/

相关文章:

javascript - 将搜索框放在 html 表格 View 中

java - 在 Java 中使用 GSON 验证 JSON

javascript - 在谷歌地图javascript中拖动 map 上的标记(可拖动方向)时如何显示更新的坐标?

jquery - 谷歌地图隐藏然后切换时出现问题

javascript - 工厂方法不返回 - TypeError : Cannot read property 'then' of undefined

javascript - 西格玛.js。有向图。箭头不渲染

javascript - 用于创建 JSON 属性/对象的函数参数

Angular 6 - @types/googlemaps/index.d.ts' 不是模块

Javascript:从Flash(swfObject)调用javaScript函数?

php - 使用 Symfony 2 序列化器对对象中的嵌套结构进行非规范化