4

緯度経度値をピクセル位置に変換する必要があります。私はlat/lng-> pixelから多くの解決策を見いだしましたが、逆に何も見つけられません。ピクセル位置を緯度/経度に変換します。逆も同様です。

ノートのカップル:

  • マップは固定サイズ、ノーズーム、ノータイルです。
  • 私は非常に正確で何も必要ありません、その重要ではありません。
  • 好ましくはメルカトル投影法ですが、必須ではありません。私は実際に結果を表示していません。 (任意の2D投影)
  • 私は、任意のWebベースのAPIのに頼ることができない、すなわち:なしGoogleマップ

は、ほぼすべてのプログラミング言語でのソリューションは、それがに依存しないよう、細かいことはないだろうプラットフォーム固有のAPI

これは、緯度/ lng->ピクセルから行くの例です:いくつかの代数を使用し

var y = Math.round(((-1 * lat) + 90) * (this.MAP_HEIGHT/180)); 
var x = Math.round((lng + 180) * (this.MAP_WIDTH/360)); 
+1

計算で必要な地図投影を知る必要があります。あなたの質問の計算例は、Mercatorマップでは機能しません。それは[等角投影法](http://en.wikipedia.org/wiki/Equirectangular_projection)を前提としています。 –

+0

私はあらゆる2D投影に開放されています。等角投影は私のニーズを完全に満たします。私は結果を視覚化していないので、私は特定の投影に縛られていません。 –

+0

何も表示していない場合は、最初にピクセルを使用していますか? –

答えて

5
var y = Math.round(((-1 * lat) + 90) * (this.MAP_HEIGHT/180)); 
var x = Math.round((lng + 180) * (this.MAP_WIDTH/360)); 

と私が出てきた:

var lat=(y/(this.MAP_HEIGHT/180)-90)/-1 
var lng = x/(this.MAP_WIDTH/360)-180 

ないという数学で完全に自信を持ってそれは私の頭の中で行われているので、それらは動作するはずです、ただそれらを最初にテストすることを確認してください。

+0

明らかにすべき何かを試すための+1! –

+0

私の数学のスキルは錆びていることは明らかかもしれません。本当にありがとう、ちょうど私が必要なもの! –

+2

数字は何ですか? 180、360など? Map_heightも度またはピクセルですか? –

関連する問題