题
我可以成功地做到:
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
});
解决方案
啊,我计算出来:
在我的代码一点我感到困惑的纬度和经度它搞乱一切。
其他提示
如果你真的想用所有的坐标转换功能,您应加强与的OpenLayers http://proj4js.org/ 全坐标变换框架。
不隶属于 StackOverflow