是地球表面上多边形内部或外部的点

ric*_*ard 10 java math geometry geocoding

如何确定点是位于地球表面的多边形内部还是外部?

多边形的内部可以通过右手规则确定,即.当您在多边形周围走动时,多边形的内部位于右侧.

多边形可以

  1. 圈出任一极
  2. 穿过180经度
  3. 覆盖全球50%以上的地区

由于地球是一个球体,正常的射线穿越算法无法正常工作.

Hig*_*ark 5

实际上,正常的光线追踪和缠绕规则方法在球体表面上工作得很好,并且进行了少许调整。

在球体的表面上,“直线”是一个大圆,并且距离以角度单位而不是米或英寸为单位。要从球体表面上的任意点绘制射线,只需在该球体表面上的任意点和任何其他点上形成一个大圆。为了保持数学的清洁度,请选择第二个点pi / 2远离要测试的位置。将通常的奇数规则应用于大圆和测试多边形。

缠绕规则还可以将平面中的直线直接转换为球体上的大圆(段)。

现在,您所需要的只是基本球形几何运算的Java实现。在这方面,我没有任何建议,但我想互联网会有所帮助。对于数学,请从Mathworld开始。

另一种方法是将点和多边形从球体表面投影到平面上(这就是地图投影的作用),内部空间的拓扑关系不会受到这种转换的影响。

哦,如果您的多边形描述了一个大圆,那么您必须决定要怎么做