私は、経度と緯度のデータから正しい出力を得るために、一日の大半を頭を悩ませてきました。このデータが正しいことは、Google マップにプロットすることでわかります。たとえば、次の緯度と経度の座標のデータを表示します: 経度: 4.905396 緯度: 52.364643
Google マップでプロットすると、オランダのアムステルダムである正しい場所が示されます。
これをアプリケーションでプロットすると、次のようになります。
はい、Googleマップは2D表現で、私のものは3Dですが、これは経度と緯度の値が正しいことを証明するためのものであるため、それらを3D空間に変換する私の式が正しい場合、それらは同じ場所に表示されるはずです.
私はウェブ上の多くの記事やstackoverflow自体を読んできました。私はこれらの記事を読んで、私が見たさまざまなタイプの数式をすべて適用しました。
と
これら2つは、良い例で明確な説明があるように見えましたが、何も機能していないようです。私が今行っているのは、3D 空間での位置を計算し、それを正規化し、それを方向として使用して、アプリケーションのスクリーンショットでわかるように、端に点のある線を描くことです。これは、ほとんどの例で使用されている地球の半径を使用する場合、中心から計算された位置まで線を引くことと同じです。
私の現在の式は次のとおりです。
X = r * cos(latitude) * cos(lontitude);
Y = r * cos(latitude) * sin(longitude);
Z = r * sin(latitude);
どちらが間違っているかはわかっていますが、ウェブで見たすべての例を調べましたが、正しいデータを示したものはありませんでした。Googleマップのデータでテストすることで、少なくとも入力が正しいことがわかりました.
アップデート1:
テクスチャのトポロジを確認しました。緯度と経度が 0.0000 と 0.0000 の場合は次のようになります。
つまり、これはすでに間違っていることを意味しますが、Google マップが示すように、次のようになるはずです。
緑の矢印は 0.0000、0.0000 マークです。だから私のものはオフです、それは明らかです、それは横にオフです。私はそれがテクスチャかもしれないと思っています(そうは思わない/そう願っています)、私はこれを使用しています: http://naturalearth.springercarto.com/ne3_data/16200/textures/2_no_clouds_16k.jpg
私が入手したもの: Shadedrelief Natural Earth textures
更新 2: テクスチャを使用して球のトポロジを確認しました。0.0 と 0.0 でオフになっているようですが、式にも疑問があります。Web からさまざまなものを試してみましたが、最初の式と同じ 0.0 0.0 になるものもありましたが、そうでないものもありました。私の経度と緯度は -180~180 度と -90~90 度です。
更新 3: これはアムステルダムのプロットのビューです。0.0 0.0 lat/long piont のように、少しずれています。地図か計算のどこかが間違っていると思います。テクスチャを少しずらして調整してみます。