OpenLayers预测

时间:2010-04-09 13:18:53

标签: map openlayers proj4js

我可以成功地做到:

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(常规lat / lon格式),我遇到了一些问题。

当我进行转换时,任何负值似乎都会变成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
        });

2 个答案:

答案 0 :(得分:2)

啊,我想通了:

在我的代码的某一点上,我混淆了纬度和经度,这让一切都变得混乱。

答案 1 :(得分:2)

如果你真的想要使用所有的坐标转换能力,你应该使用proj4js http://proj4js.org/增强openlayers一个完整的坐标转换框架。