2009-07-21 10 views
7

緯度/経度のポイントがあり、それが特定の座標系内で使用できるかどうか調べたいのですが、どのようにすればいいですか?座標系で緯度の長い座標が有効かどうかを確認するにはどうすればよいですか?

例として、私がスイスグリッド(CH 1903、EPSG 21781)で働いていて、英国のロンドンで何かを表現している点があるとしたら、その点がスイスのグリッド座標系で有効かどうかを知りたいとします。

通常、変換は機能しますが、実際には有効でないため、スイスグリッドが良い領域の外にある可能性があります。

これは、ユーザーが投影座標系で動作するアプリケーションに緯度経度の点をインポートし、インポートする点が投影座標系の範囲外になると警告を表示したいという点にあります。

しかし、私が知る限り、投影座標系には限界がありません。

答えて

7

リストされている回答は正しいですが、座標系に「境界」という概念はありませんが、使用できるアプローチはまだあります。

EPSG databaseは、定義された各座標系に緯度/経度の境界ボックスを提供します。これは「面積」テーブルに記載されており、座標系が合理的な(大まかではあるが)バウンディングボックスを提供する。これだけでも、合理的な程度を判断するのに役立ちます。

あなたのポイントの座標とEPSG DBの四隅をチェックすることで、座標がある投影に対して(潜在的に)合理的かどうかを知ることができます。あなたのEPSGコードのためのサイトを検索し、あなたは座標が記載されている見ることができます

http://www.spatialreference.org/

+0

ありがとうございます - 非常に興味深いです。これは仕事をするように見えます。 –

+0

[link](http://www.epsg.org/CurrentDB.html)は現在404を提供しています:( – Lucio

2

あなたは、システム自体に限界があることを指摘することによって、座標系に人為的な境界を課しています(つまり、私が気にする領域から外れるため境界が境界の外側にあります)。

この場合、興味のあるエリアの「コーナー」を見つけます。ポイントがこれらの境界の外にある場合は、そのポイントをあなたの関心領域外にフラグを立てることができます。

1

申し訳ありませんが、本当にあなたのルールである必要があるため、あなた自身で何かを実装していません。投影座標系は通常境界を持たないが、エラー動作をする。特定の用途では、与えられた投影座標系は、しばしば特定の範囲内でのみ正確である。

したがって、これらの制限を課すためには、実際にアプリケーションに依存する必要があります。すべての座標系は異なっており、あなたのニーズはその多くを推進します。たとえば、おそらく100メートルの精度が必要です。この場合、スイスグリッドはかなり広い領域に適しているかもしれません。 10メートルの精度が必要な場合は、エッジケースでのビルドエラーが大幅に速くなるため、境界をより厳しくする必要があります。

"four-corner-bounding-box"アプローチを使用すると大部分の時間がかかりますが、普遍的ではありません。いくつかの投影境界は、「中心点からの半径」としてよりよく表現され、「元の子午線からの距離」がある場合は、私に衝撃を与えません。どのようにしてエラーがどのようにして投影されるかの問題です。

1

与えられた座標系の境界はその座標系に固有であるため、座標が範囲外であるかどうかを判断するための汎用アルゴリズムはありません。

それを超えると、「範囲外」とはおそらくあなたのドメインに固有のものです。たとえば、スイスグリッドでは、400N 200Eはスイスには存在しないため、スイスグリッドの典型的な使用範囲外でありながら、まだ実際の場所を表しています。あなたのドメインの範囲外ですか?そうではありませんか?

1

EPSGとカスタム投影はでご利用いただけます。

+0

これは本当に役立つものではありません。バウンディングボックスを取得する方法を提供するので、 –

+0

これは正しくありません。おそらくwgs84の境界と予想される境界を見過ごしたでしょうか? 参照:http://www.spatialreference.org/ref/epsg/28992/例として – milovanderlinden

+0

wgs​​84と投影されたバウンディングボックスが残りのインターフェースを介して公開されていれば、spatialreferenceの開発者に確認しています。次に、座標が有効かどうかを調べるインターネットルックアップを提供することができます。 – milovanderlinden