C#に移植されたNetTopolgySuiteを使用しており、特定の座標緯度/経度が、座標緯度/経度値の配列として定義された指定された領域内にあるかどうかを判断する必要があります。
そのため、私はCGAlgorithms.IsPointInRingメソッドを使用しようとしています。これは、ほとんどの場合、完全に機能します。問題は、国際日付変更線にまたがるエリアがある場合に発生します。たとえば、東170から西170で終わる1番目の線です。IsPointInRingを呼び出すと、テスト対象の座標が領域内にある場合でもFALSEが返されます。
IsPointInRingのドキュメントには
リングはどちらの方向にも向けることができます。
これは時計回りまたは反時計回りだと思います。リングが誤って決定されているのは、170Eastから170Westに向かって、IDLを横切っていない1番目の線であると推測できます。私の線は、メジャーアークではなく、マイナーアークである必要があります。
日付変更線と交差する場合と交差しない場合がある座標配列に座標を含めるかどうか、または関数を誤って使用しているかどうかをテストする方法を誰かにアドバイスできますか?NetTopologySuiteを引き続き使用したいと思います。