2

DB にあるデータからレンダリングされた画像があります。メルカトル図法を使用して、この画像を歪んだ画像に変換する必要があります。3D 球体をラップすると、リアルに見えます。

歪んだ画像を作成するために使用する必要がある数式を知っている人はいますか?

私はGDでPHPを使用しています。

ありがとう。

4

2 に答える 2

1

通常のグラフィック手法を使用してこれを球体にラップすることを計画している場合、メルカトル図法は極では機能しないため、厳密には使用したくないと思います。

球体の通常の 3D テクスチャ マッピングは単純に 2:1 のアスペクト比のビットマップであり、X 軸[0, 360)は経度に、Y 軸[-90, +90]は緯度に直接マッピングされます。

したがって、データベースから緯度/経度の値を取得し、それらをピクセル座標に線形にスケーリングします([0, 0] が左上にあり、[w, h] がビットマップのサイズであると仮定します):

x = (longitude + 180) * w
y = (90 - latitude) * h

編集- 質問を読み違えて、すでに画像があることに気づきませんでした。元の画像がメルカトル図法の AIUI である場合、問題は単にその画像の垂直軸の非線形スケーリングを元に戻すことです。メルカトル図法では経度にリニア スケールを使用するため、横軸は変更されません。

于 2011-04-03T09:21:29.363 に答える
0

画像が地理情報システムである場合は、 https: //gis.stackexchange.com/に移動する必要があります。

この種の再投影については、無料でオープンソースの地理空間データ抽象化ライブラリであるGDALを検討できます。PHPmapscriptと呼ばれる利用可能なPHPバインディングがあります。ただし、利用できるドキュメントはほとんどないと思います。

PHPマップスクリプトを使用するには、UMNマップサーバー(Webサーバーのcgiスクリプトとして実行)も設定し、再投影を実行させる必要があります。セットアップと構成を行うために多くの作業を行い、ニーズに合わせて限界までプッシュする必要があります。

于 2011-04-03T09:13:29.490 に答える