【发布时间】:2011-03-05 06:29:52
【问题描述】:
如何确定一个点是位于地球表面的多边形内部还是外部?
多边形的内部可以通过右手定则确定,即。当你在多边形周围走动时,多边形的内部在你的右手边。
多边形可能
- 环绕任一极
- 跨越180经度
- 覆盖全球 50% 以上的地区
由于地球是一个球体,因此正常的光线交叉算法无法正常工作。
【问题讨论】:
-
你的问题不是很清楚:多边形不能弯曲(根据定义),所以你问的是如何确定一个点是否在球体的表面上?这实际上很简单:如果到球体中心的距离 == 球体的半径,它就在表面上。
-
我相信他的意思是如果你在球体上取一系列点并在它们之间构建一个封闭的形状。关于如何将多边形点连接到边缘的细节似乎模棱两可(您可以直接连接它们然后投影到球体上,也许吧?)
-
正确,我的世界中的多边形是球体上的一系列点,我在它们之间构造了一个封闭的形状
-
@Gray,其实我不同意。我可以想到许多现实世界的应用程序(初学者只需想到 google earth)
-
@Akusete 关于如何将多边形点连接到边缘的细节似乎模棱两可 - 不,显然有一种最合理的方法。那就是沿着连接两点的球体表面采取最短的路径。这条路碰巧也是一个大圆弧。
标签: java math geometry geocoding