これは、Polygonの内部の決定に関連しています。
私の問題は、東から西へと地球をカバーするポリゴンを指定した場合、方位角投影で表示される、アンテメリディアンに沿った境界が依然として存在することです。たとえば、GeoJSONの場合:
{
"type": "Polygon",
"coordinates": [
[[-180, -90], [-180, 90], [180, 90], [180, -90], [-180, -90]]
]
}
境界のない全球ポリゴンを指定する標準的な方法はありますか?
空の外部リングを使用することを考えました:
{
"type": "Polygon",
"coordinates": [
[]
]
}
全球ポリゴンにパンチする穴として、さらにリングを指定できるという論理です。
残念ながら、GeoJSONはLinearRingsには少なくとも4つのポイントが必要であることを規定しているため、これは仕様から逸脱します。ただし、このアプローチが他の場所で行われているかどうかを理解することにも興味があります。
一部では、答えはGISに依存する必要があります。ただし、最初に問題が発生します。ポリゴンに境界がない場合、ラインストリングに存在しない追加情報を指定しないと、球全体を空のセットと区別する方法がありません。(空のポリゴンには、多くのGISがそれらを実装していないか、正しく実装していない場合でも、重要な用途があります。)
—
whuber
ありがとう。空のLineStringは空のセットを最も直感的に表すため、この状況を処理するために、独自のオブジェクトタイプ「Sphere」を単純に定義することにしました。これは、あなたがこの質問に本当に答えることができる最良の「答え」だと思います。
—
Jason Davies
ジェイソンは、少しのコストで、ある程度のメリットがあれば、ソリューションを一般化できると思います。空のセットと球体を区別するために1ビットを使用しているので、すべてのポリゴンでそのビットを使用してその方向を示してみませんか?縮退していないポリゴンの場合、それは、ポリゴンの内側を、その境界をトラバースするときに、右または左のどちらであると見なすべきかを示します。縮退したポリゴンの場合、境界がポリゴンと一致するか、補数が意図されているかを示します。今、あなたはいつも中がどこにあるかを知っています。
—
whuber
良いアイデア!ただし、一般的には標準のGeoJSONを入力として受け入れます。Sphereオブジェクトは少し特殊なケースなので、ほとんど使用されないため、独自のタイプを定義してもかまいません。ポリゴンについては、順序付け規則(ESRI仕様と一致するように右手の法則)を採用することにしました
—
Jason Davies