我可以成功地做到:

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/ 全坐标变换框架。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top