指向多边形算法,处理跨越antemeridian的多边形

mar*_*rxy 6 geospatial

我有一个多边形点数据库作为纬度,经度对,我需要测试给定的lat,lng点是否在任何多边形内.

有几种算法可以包括这些算法,但是如果多边形跨越了antemeridian(在新西兰海岸附近,经度从东经+180度翻到西经-180度),它们就不起作用了.

我看到的一个解决方案是检测多边形是否跨越了antemeridian,如果是这样,将其分成两个多边形,每边一个,然后检查每个多边形.

Ree*_*sey 2

另一个(更简单的)选项,IMO,是仅测试该特殊情况,如果存在,则对查询点和多边形应用变换。例如,如果它跨越反子午线,只需将所有内容平移特定的经度量,使其不跨越子午线,然后进行标准测试。