【发布时间】:2012-12-06 16:02:04
【问题描述】:
我需要用户能够在地图上绘制一个复杂的多边形,然后让应用程序检查给定的经度/纬度是否位于该多边形内。
我只能找到使用不补偿地球曲率的简单 x/y 笛卡尔坐标系的算法。
用户在 PC 上绘制多边形,其中点通过无线电传输到嵌入式设备,然后需要检查给定多边形是否位于其当前位置(从 GPS 获取)。
由于这是针对嵌入式设备,我无法使用大型库,而是需要算法自己执行检查或使用非常小的库。但我似乎找不到任何这样的算法。
【问题讨论】:
-
你在看什么样的距离?我经常做这种工作,如果您谈论的是相对较小的多边形,例如
-
请注意,如果您正在使用 GIS,您可能会喜欢这个 SO 姐妹网站:gis.stackexchange.com
-
@PeterJ 我希望在非常宽的范围(数百公里)上使用它,但仍然需要非常接近的精度,因为它也将在小于 1 公里的分段区域内使用
-
很公平,但请记住,除非段相距很远,否则不会有任何影响。例如,一条 200 公里的高速公路有一系列相隔几公里的路段,不会有太大的不同。只有当你说在 100 公里长的多边形上有一条边时,它才会真正产生影响,这在我的经验中是非常罕见的。大多数现实生活中的事情,比如说城市边界在实践中并不是那么直截了当,所以值得考虑一下可能的错误,如果你真的需要它。在高速公路上,如果您真的需要这种精度,您可能还需要一些航位推算。
标签: algorithm math embedded geometry gis