首页 > 解决方案 > 从 KML 加载的多边形是否包含 Google Maps API 中的给定 Lat/Lng

问题描述

我有一个包含多边形的 KML 文件。我想编写一个简单的应用程序,它会给出关于纬度/经度是否在该多边形内的真/假结果。

无论出于何种原因,这似乎比听起来更困难,因为 google.maps.KmlLayer 似乎对其提供的功能非常有限。

我知道非 KML 地图有一个“containsLocation()”函数,这正是我需要的,但是,KML 层不包含这样的函数

标签: google-maps-api-3

解决方案


我不太确定您是如何使用 KML 文件的,但我建议采用以下方法:

  1. 解析您的 KML 文件(许多库可用于多种语言)
  2. 使用已解析的 KML 数据使用 Google Maps API 呈现您的多边形(即使用 Google Maps 方法在 Google Maps 中重建您的 KML 多边形)
  3. 使用 Google Maps APIcontainslocation()方法检查坐标是否在多边形内

Google Maps API 有一个很大的功能集,因此通过这样做您可以合并他们的一些方法,即您点击地图,程序会告诉您您刚刚点击的点是否在多边形内。看看这个,我怀疑这是你想要完成的(或至少类似于它)。

编辑:通过解析我的意思是解码KML


推荐阅读