OpenLayers EPSG900913- EPSG4326转换结果错误

OpenLayers EPSG900913->EPSG4326 conversion gives wrong results

本文关键字:结果 错误 转换 EPSG4326 EPSG900913- OpenLayers      更新时间:2023-09-26

我有一个问题,将像素位置从屏幕转换为度(EPSG4326)。

根据http://proj4js.org/和google地图,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"));
});

…答案是,我搞混了;

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

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