私はうまくやることができます:
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
});