2

ピクセル位置を画面から度に変換する際に問題があります(EPSG4326)。

http://proj4js.org/とグーグルマップによると、EPSG900913のlon/lat値は正しいです。

私が得ているいくつかの例の値は

EPSG:900913 lon: 2763836.8383036, lat: 8815158.7073107

変換後

EPSG:4326  x: 79.18791 y: 24.08555

値が必要な場合

EPSG 4326: Y: 24.69090 X: 60.193680

私が間違っていることについて何か考えはありますか?

これが私のコードの関連部分です。

$mapObj.bind("contextmenu.zoom", function (evt) {
   var _px = new OpenLayers.Pixel(evt.pageX, evt.pageY),
   _lonlat = _mapObj.getLonLatFromPixel(_px),
   _point = new OpenLayers.Geometry.Point(_lonlat.lat, _lonlat.lon);

   _point = _point.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
});
4

1 に答える 1

3

...そして答えは、私はこの行で緯度と経度の順序を混同しました:

_point = new OpenLayers.Geometry.Point(_lonlat.lat, _lonlat.lon);

する必要があります

_point = new OpenLayers.Geometry.Point(_lonlat.lon, _lonlat.lat);
于 2011-10-21T11:22:18.067 に答える