来自 OpenLayers 的球面墨卡托 Lat/Lon,需要 EPSG:4326 格式
Spherical Mercator Lat/Lon from OpenLayers, want EPSG:4326 format
我正在尝试从 OpenLayer 获取经度和纬度的 EPSG:4236 格式,但是我花了几个小时试图解决这个问题,但我真的不明白我做错了什么。我一直在获取球形墨卡托格式。
我有以下设置:
var map = new OpenLayers.Map("mapdiv");
map.addLayer(new OpenLayers.Layer.OSM());
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
这是我的地图中心:
var lonLatCenter = new OpenLayers.LonLat( -73.0, 40.5 )
.transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
);
var zoom=14;
对于点击事件,我有以下代码:
map.events.register("click", map, function(e) {
var position = map.getLonLatFromPixel(e.xy);
alert(JSON.stringify(position));
});
我在纽约市的肯尼迪机场点击时得到以下结果:
{"lon":-8215245.2836805,"lat":4960351.5608374}
我一直在这里阅读资料,但它似乎只显示了如何从 EPSG:4326 转换为球形墨卡托。帮助将不胜感激,下面的 link 是文档:
地图对象 return 坐标上的点击事件使用地图投影(球形墨卡托)。
你需要将它们转换为经纬度,像这样
</p>
<pre><code>map.events.register("click", map, function(e) {
var position = map.getLonLatFromPixel(e.xy);
position.transform(map.getProjectionObject(), new OpenLayers.Projection('EPSG:4326'));
alert(JSON.stringify(position));
});
我正在尝试从 OpenLayer 获取经度和纬度的 EPSG:4236 格式,但是我花了几个小时试图解决这个问题,但我真的不明白我做错了什么。我一直在获取球形墨卡托格式。
我有以下设置:
var map = new OpenLayers.Map("mapdiv");
map.addLayer(new OpenLayers.Layer.OSM());
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
这是我的地图中心:
var lonLatCenter = new OpenLayers.LonLat( -73.0, 40.5 )
.transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
);
var zoom=14;
对于点击事件,我有以下代码:
map.events.register("click", map, function(e) {
var position = map.getLonLatFromPixel(e.xy);
alert(JSON.stringify(position));
});
我在纽约市的肯尼迪机场点击时得到以下结果:
{"lon":-8215245.2836805,"lat":4960351.5608374}
我一直在这里阅读资料,但它似乎只显示了如何从 EPSG:4326 转换为球形墨卡托。帮助将不胜感激,下面的 link 是文档:
地图对象 return 坐标上的点击事件使用地图投影(球形墨卡托)。 你需要将它们转换为经纬度,像这样
</p>
<pre><code>map.events.register("click", map, function(e) {
var position = map.getLonLatFromPixel(e.xy);
position.transform(map.getProjectionObject(), new OpenLayers.Projection('EPSG:4326'));
alert(JSON.stringify(position));
});