我想将“EPSG:4326”设置为OpenLayers地图的投影,但是当我尝试时,我总是得到“EPSG:900913”。
function init() {
var options = {
projection: new OpenLayers.Projection("EPSG:4326") // ignored
};
map = new OpenLayers.Map('map', options);
var layer = new OpenLayers.Layer.OSM.Osmarender("Osmarender");
map.addLayer(layer);
...
alert(map.getProjection()); // returns "EPSG:900913"
...
}
基本地图是开放的街道地图。
如何将投影设置为EPSG:4326?
答案 0 :(得分:5)
正如 milovanderlinden 所指出的那样,你必须先转换纬度/经度值(如Google或Bing地图中所用),然后才能应用于Osmarender
或{{OpenStreetMap层。 1}}:
Mapnik
答案 1 :(得分:2)
Osmarender有一个硬编码的900913预测,与此无关。但你有没有考虑过相反的事情?将坐标或图层转换为EPSG:900913?请查看此处的文档:http://docs.openlayers.org/library/spherical_mercator.html
答案 2 :(得分:0)
什么是基础层。您是想尝试使用GMaps还是Bing地图?如果是这样,那么OpenLayers可能会尝试使数据与基础层的投影相匹配,以便正确排列。
答案 3 :(得分:0)
这不是一个错误,它是一个功能。球形墨卡托是一个方形像素投影,因此您的openlayers矢量特征可以准确地放置在地图上 - WSG-84不是这种情况(EPSG:4326)