質問
私は正常に行うことができます:
point.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
(メートルで)Googleの形式である点までのが、私は逆をやりたいます:
point.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
4326(通常の緯度/経度の形式)である点に、私はいくつかの問題を抱えています。
任意の負の値は、私は、変換を行うとき、NaN(非数)となっているようです。逆に、変換についての何かが、私は理解していないことがありますか。
編集:私は、負の値を持っていない場合であっても悪いことは、座標がオフに思えます。私は、データベースにそれらの座標を保存し、後でそれをロードし、画面上の四角形を描画することで座標を取得しています。それは大西洋に、アフリカの上部付近だロードしたとき、私はその後、アフリカ(正の座標)の先端近くに四角形を描画し、することができます。私は間違いなくやっている何かを間違って....
編集:ここに私のコードだ: http://pastie.org/911524する
具体的に:これは私が私のマップを初期化する方法である。
var navControl = new OpenLayers.Control.Navigation();
map = new OpenLayers.Map('map', {
// restrictedExtent: bounds.clone(),
});
//actually draws the map
layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", {
displayOutsideMaxExtent: false,
wrapDateLine: true
//numZoomLevels: 10
});
解決
ああ、私はそれを考え出します:
私のコード内の1つの時点で私は緯度混乱し、それがすべてを台無しにされた経度ます。
他のヒント
あなたが本当にすべての座標変換の電源を使用する場合は、
、あなたはproj4js http://proj4js.org/とOpenLayersを強化する必要がありますがの完全な変換フレームワーク座標
所属していません StackOverflow