7

輸送可視化アプリのリバース エンジニアリングを行っています。彼らのデータ フィードの起源の緯度を調べる必要があります。具体的には、XY 0,0 とは何か。私が見つけた唯一の数式は、2 点間の距離、または方位/距離の位置を計算します。

XY を使用して、非常に古いアプリケーションでマップを表示します。XY は FEET です。

私はこれらの座標を持っています:

47.70446615506108, -122.34469839507263: x=1268314, y=260622
47.774182540800616,-122.3412994737105:  x=1269649, y=286031
47.60024792289405, -122.32767331735774: x=1271767, y=222532
47.57012494413499, -122.29129609983679: x=1280532, y=211374

の緯度と経度がx=0, y=0何であるか、そしてこれを見つけるための公式が何であるかを調べる必要があります。

それらには 2 つのデータ フィードがあり、一方は他方よりも最新です。最新のデータを含むフィードには、緯度、経度は含まれず、XY のみが含まれます。私は、最新ではないが、より有益な (緯度、経度を含む) データ フィードに基づいて外挿しようとしています。そのため、(より最新の) データ フィードの XY 座標を緯度と経度に簡単に変換できます。

4

6 に答える 6

9

データの最初の 2 行を見て、緯度を差し引くと、

47.7044 - 47.7741 = -0.06972 degrees

緯度 1 度あたり 60 海里、1 海里あたり 6076 フィートがあります。

-.06972 * 60 * 6076 = 25,415 ft

2 つの「Y」値を減算します。

260662 - 286031 = 25,409 ft

実際、これは X と Y の値がフィートであることを証明しているようです。

たとえば、Y 値のいずれかを取得して度数に戻すと、

260622 ft / ( 6076 ft/nm ) / ( 60 nm/degree ) = .71
286031 ft / 6076 / 60 = .78

したがって、緯度 (47.70 と 47.77) からこれらの値を差し引くと、正確に 47 度に非常に近くなり、これが y=0 ポイントになるはずです。

経度の場合、1 度は赤道で 60 海里、極で 0 マイルです。したがって、1 度あたりのマイル数に緯度の余弦を掛ける必要があるため、約 cos(47 度)、つまり .68 になります。したがって、1 度あたり 6076 nm ではなく、約 4145 nm です。

したがって、X 値については、

1268314 ft / ( 4145 ft/nm ) / ( 60 nm/degree ) = 5.10 degrees
1269649 ft / 4145 / 60 = 5.10 degrees

これらの X 数値は、緯度が増加するにつれて増加する (負の値が小さくなる) ため、5.1 度を追加する必要があると思います。つまり、X 基点は約です。

-122.3 + 5.1 = 117.2 West longitude for your x=0 point.

これが大体スポケーンWAの位置です。

したがって、X=1280532、Y=211374 の場合

Lat = 47 + ( 211374 / 6096 / 60 ) = 47.58
Lon = -117.2 - ( 1280532 / ( 6096 * cos(47.58)) / 60 ) = -122.35

これは、指定されたデータ 47.57 および -122.29 とほぼ同じです。

分散は、異なる投影法によるものである可能性があります.X、Yシステムは、球状投影に適用される緯度/経度とは対照的に、「平坦化された」投影である可能性がありますか? したがって、正確に言うと、より高度な数学またはオープンソース ライブラリが必要になる場合があります :)

この質問も役立つ場合があります。大圏距離を計算するためのコードが含まれています。

2 つの緯度経度ポイント間の距離を計算する (Haversine 式)

于 2009-03-04T07:24:59.233 に答える
6

多くの異なる座標系があります。緯度/経度 (例: WGS84 など) と x/y の最初 (例: ある種の投影システム) の両方の座標系が何であるかを調べる必要があります。

その情報を取得したら、変換と操作を行うために使用できるツールがいくつかあります。(無料のオープン ソース コーディング ライブラリの) 1 つの例は、proj4です。

于 2009-03-04T06:23:38.083 に答える
1

座標系については既に適切なアドバイスをいただいているので、私が過去に使用して大きな成功を収めたライブラリについて説明します。

Geotrans は米国国防総省によって使用が承認されているため、十分にテストされていることを確認できます。ここから取得できます:

http://earth-info.nga.mil/GandG/geotrans/index.html

そのページはライブラリではなくアプリケーションについて話しているので、それは正しいリンクではないかもしれません。ライブラリは Developers パッケージに含まれていると思います。ライセンス条件は、記憶から非常に自由度が高いものでしたが、商業的に使用する前に必ず条件を確認してください。

編集:

Geotrans のライセンスに関する興味深い議論は、次の場所にあります。

http://www.mail-archive.com/debian-legal@lists.debian.org/msg39263.html
于 2009-06-25T04:58:25.333 に答える
0

Brenor Brophey のgPoint PHP クラスを使用して、これを行う機会が 2 回ありました。確かな結果、GPL コード、簡単にデプロイできます。おすすめされた。

于 2009-04-15T20:47:53.600 に答える
0

ここで、私はこう言いました。

Java では、UTM の点の式から緯度と経度を使用する式へのOpenMap コンバーターを使用します(GPS で最も一般的に使用される WGS-84 楕円体を想定しています)。

OpenMap はオープン ソースであり、ダウンロード ページへのリンクを投稿しますが、途中で短いライセンス スクリプトがあります。ですから、失礼を避けるために、ディープリンクはしません。代わりに、ホームページにアクセスして[ダウンロード]をクリックします。

これにより、問題が直接解決されるか、少なくとも有用なアルゴリズムに向けられるはずです。

于 2009-04-15T20:41:40.417 に答える