我有一个多边形点数据库作为纬度,经度对,我需要测试给定的lat,lng点是否在任何多边形内.
有几种算法可以包括这些算法,但是如果多边形跨越了antemeridian(在新西兰海岸附近,经度从东经+180度翻到西经-180度),它们就不起作用了.
我看到的一个解决方案是检测多边形是否跨越了antemeridian,如果是这样,将其分成两个多边形,每边一个,然后检查每个多边形.
另一个(更简单的)选项,IMO,是仅测试该特殊情况,如果存在,则对查询点和多边形应用变换。例如,如果它跨越反子午线,只需将所有内容平移特定的经度量,使其不跨越子午线,然后进行标准测试。