如何检查给定坐标是不是属于多边形? (离线地理围栏)

Posted

技术标签:

【中文标题】如何检查给定坐标是不是属于多边形? (离线地理围栏)【英文标题】:How it is possible to check if given coordinates belong to the polygon? (geofencing offline)如何检查给定坐标是否属于多边形? (离线地理围栏) 【发布时间】:2014-04-23 08:02:58 【问题描述】:

我在前端使用Leaflet draw 地图来绘制多边形。

绘制多边形后,我有一个包含这些多边形坐标(纬度、经度)的数组。

最后,我需要检查后端(在离线模式下),如果给定的点(纬度,经度)属于某个多边形。

我明白,这应该是可能的。但是地球是一个球体,多边形位于地面上,我不知道该怎么做。

如何检查?

【问题讨论】:

【参考方案1】:

最简单的解决方案是使用在多边形类中具有功能的地图产品来检查点是否在其中。

如果你的产品没有它,那么你需要自己做数学部分,这里有一些帮助你开始的链接:

    Point in polygon queries @ wikipedia Some Codes and explanations at GeeksforGeeks Older question on the topic here at SO

【讨论】:

这是如何工作的? OP 询问从球体到平面的转换?【参考方案2】:

您可以将角度保持在 -180 到 180 之间,然后在 poly 测试中使用一个点:Easy way to keeping angles between -179 and 180 degrees。

【讨论】:

我不明白为什么,作为我的问题,所有答案都被否决了。我看不出任何原因或没有解释,这是这个网站的大问题。我赞成所有答案来解决这个问题。感谢您的回复。 我认为您需要将角度保持在 -180 到 180 之间。我不确定您为什么要投票给其他回答者而不接受我的回答?我可以写关于poly in point test的文章,但已经有很多问答了。 首先,我认为这也是正确的答案。从一方面来说,我不同意它的反对意见。从另一方面来说——一个人为此花了一些时间,我要感谢他。我有愚蠢的木乃伊儿子,他们不加解释地对所有事情投反对票。其次,当我决定时,我会选择并标记答案为正确。谢谢。 IMO 那么你的问题不清楚。你能详细说明当角度大于 -180 和 180 时吗?

以上是关于如何检查给定坐标是不是属于多边形? (离线地理围栏)的主要内容,如果未能解决你的问题,请参考以下文章

地理位置 - 检查一个位置是不是属于一个区域

Android 地理围栏(多边形)

定义地理围栏并查看点是不是在其内部/外部的算法

地理围栏:如何识别对象(特征),使用 Oracle Spatial 重叠地理围栏边界?

如何使用空间数据库检查 AIS 信号是不是从地理围栏发出?

地理围栏 - 检查用户是不是已经在围栏内