我正在使用移植到 C# 的NetTopolgySuite,并且需要确定某些坐标纬度/经度是否落在定义为坐标纬度/经度值数组的指定区域内。
所以我正在尝试使用CGAlgorithms.IsPointInRing方法,它在大多数情况下都非常有效。当我有一个跨越国际日期变更线的区域时,问题就出现了,例如从东 170 向东到西 170 的第一条线。当我调用 IsPointInRing 时,即使被测坐标在该区域内,它也会返回 FALSE。
IsPointInRing 的文档说
该环可以朝向任一方向。
我假设是顺时针或逆时针。我只能假设该环被错误地确定为从 170 East 向 WEST 到 170 West 的第一条线并且没有穿过 IDL。我的线应该是小弧线,而不是大弧线。
谁能建议我如何测试可能会或可能不会越过国际日期变更线的坐标数组中的坐标包含,或者我是否错误地使用了该函数。我宁愿继续使用 NetTopologySuite。