首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断地理坐标多边形中的地理坐标点?

如何判断地理坐标多边形中的地理坐标点?
EN

Stack Overflow用户
提问于 2013-10-15 17:13:00
回答 3查看 300关注 0票数 1

我已经模拟了这个算法http://forcefront.github.io/point-in-polygon/point-in-polygon.html

但我认为纬度和经度是球面坐标。

该算法是否适用于判断地图上多边形中的点?

EN

回答 3

Stack Overflow用户

发布于 2013-10-15 17:20:42

一个通用的多边形中点实现不会考虑这样一个事实,即您可以从179.999度到-180度这样的值进行折返,并且我们还没有得到关于手头问题的足够信息。如果您的输入被适当地规格化(例如,在我的例子中,它被放在[-180,180)中),并且您的多边形没有接触到您的地图边界,那么您应该没有问题。

当您查看这样的算法时,x和y坐标系是任意的;您可以将它们应用于y和z,x和t,等等(尽管x和t的情况不一定有任何意义,我很快就能想到)。

如果我在描述中没有讲清楚:如果我给你一个环绕北极的多边形,那么这个多边形是否包括北极,或者它是否包括除北极之外的所有东西,都是模棱两可的;这还没有明确地传达给我。

同样,如果您查看球体的纬度/经度投影,则多边形与经纬度= 180相交,而多边形中的通用点不会处理该问题。

拍下我的世界的照片,让事情更清晰。我不确定你如何定义一个多边形是左边的绿色区域,而不是两个半圆之间的区域(穿过美国和中国)。

不经意间,您可能可以通过将这两个圆分割成两个不同的多边形并单独测试它们来解决这些问题。您可以按原样表示上半圆,也可以通过包含其点和整个地图的4个角的多边形来表示它的反面。

或者,您可以在对多边形进行测试时移动坐标系(这样它就不会折回,并且它的所有点都被规格化),尽管这将无法考虑多次跨越球体的多边形(规格化会破坏您的多边形)。

票数 3
EN

Stack Overflow用户

发布于 2013-10-15 17:21:49

大多数情况下,当你的角度在-179度和180度之间时,它应该可以工作。如果你的角度更小或更大,那么你需要转换它。您可以使用转换为每个顶点的世界坐标,并将其投影回-179,180度。下面是如何计算边界框的方法,例如,从美国的纽约到中国的北京:Need to calculate latitude longitude from postal code database when location has multiple codes。下面是如何对角度Easy way to keeping angles between -179 and 180 degrees进行标准化。您还可以将leaflet JavaScript库与wrap函数一起使用。

票数 0
EN

Stack Overflow用户

发布于 2013-10-17 01:02:46

它在所有情况下都有效,除非您

1)重叠基准面限制(经度从180跳到-180的限制)或

2)重叠极点。

因此,对于99.99%所有应用程序,只需在地理数据导入时检查这两个条件,然后使用链接算法。

提供不满足这些条件的多边形将被忽略的信息,数据提供者必须在此之前拆分它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19377370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档