我可以成功地做到:
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
});