2012-01-17 8 views
2

私はMaxMindから都市データベースをまとめ、データベース内の各都市の緯度/経度値を含みます。私は北米の地図をまとめました。都市のデータベースレコードの緯度/経度座標から派生した地図のx/y座標にアイコンを表示したいと思います。指定されたマップ上のピクセルへの緯度/経度座標の変換(JavaScript付き)

私の理解から、最初に地図の左/上の境界線(lat/lng - > x/y)を見つけて、それを北米の都市x/y座標。最後に、マップのサイズに応じて、ポイントを配置する場所を特定するための単純な除算と除算の操作を行います。

しかし、私はどのように、次のTODOを見つけ出すように見えることはできません。

  1. 私は緯度/経度・マッピング・システムが何であるかわかりません。これをどのように見つけ出すのですか?
  2. JavaScriptライブラリを使用して、0,0座標と各都市座標のピクセルにlat/lngを変換するにはどうすればよいですか?私はProj4jsを試しましたが、座標マップの型を指定する必要があります。同様のことを尋ねた別の質問があります。 Convert long/lat to pixel x/y on a given picture

"ミラー図法":

- - EDIT(北米の)

出力マップは、連続的な円筒です。 http://en.wikipedia.org/wiki/Miller_cylindrical_projection

+1

数学は非常に簡単ですが、マップの種類、すなわちどの投影がレンダリングされたマップであるかによって異なります。 http://en.wikipedia.org/wiki/Map_projection – Umbrella

+0

出力マップは連続した円柱です。「ミラー円柱投影」です。 http:// ja。wikipedia.org/wiki/Miller_cylindrical_projection – matsko

+0

あなたがリンクしているWikipediaの記事には数式があります。なぜそれらを使わないのですか? – derobert

答えて

5

緯度と経度は、地球上に描画された想像線で、世界中のどの位置を正確に特定できます。単にそれらを平面のX座標とY座標とします。 Latitudeは北から南へ90度、南極で-90度の垂直線です。

経度は、西から-180度、東から180度の東から南までの水平線です。

あなたはhtmlコンテナの幅が世界の幅であり、同じことが高さに当てはまると仮定してlatLngをピクセル座標に変換できます。

式 - 経度 - ピクセル

(givenLng*widthOfContainerElement)/360 

360は

式-Latitude度における全経度である - 360であり

(givenLat*heightOfContainerElement)/180 

をpixed合計l度のongitude

//Height is calculated from the bottom 

あなたはまだ任意の明確化が必要な場合は私に知らせてください。

関連する問題