【问题标题】:OpenLayers EPSG900913->EPSG4326 conversion gives wrong resultsOpenLayers EPSG900913->EPSG4326 转换给出错误的结果
【发布时间】:2011-10-21 10:23:12
【问题描述】:

我在将像素位置从屏幕转换为度数时遇到问题 (EPSG4326)。

EPSG900913 中的经纬度值是正确的,根据http://proj4js.org/ 和谷歌地图。

我得到的一些示例值是

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"));
});

【问题讨论】:

    标签: javascript geocoding openlayers map-projections


    【解决方案1】:

    ...答案是,我在这一行混淆了纬度和经度顺序:

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

    应该是

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      • 2013-04-20
      • 1970-01-01
      • 2011-11-15
      • 2019-02-06
      • 2014-01-30
      • 2018-08-01
      相关资源
      最近更新 更多