我可以成功做到:
point.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
以谷歌格式(以米为单位)的一点,但是当我想相反时:
point.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
到4326(常规纬度/经度格式)的程度,我遇到了一些问题。
当我进行转换时,任何负值似乎都会变成NaN(而不是数字)。关于反向转换,我是否不了解?
编辑:更糟糕的是,当我没有负值时,坐标似乎消失了。我通过在屏幕上绘制一个正方形来获取坐标,然后将这些坐标保存到数据库中并稍后加载。我可以在非洲尖端(正坐标)附近绘制一个正方形,然后在加载时在大西洋的非洲顶部附近绘制一个正方形。我肯定做错了...
编辑:这是我的代码:http://pastie.org/911524
具体来说:这就是我初始化地图的方式:
var navControl = new OpenLayers.Control.Navigation();
map = new OpenLayers.Map('map', {
// restrictedExtent: bounds.clone(),
});
//actually draws the map
layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", {
displayOutsideMaxExtent: false,
wrapDateLine: true
//numZoomLevels: 10
});
最佳答案
啊,我知道了:
在我的代码中,有一点我混淆了纬度和经度,这弄乱了所有东西。
关于map - OpenLayers投影,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2607734/