投影之间的转换不起作用



我正试图使用openlayers在两个不同的投影之间进行转换,但我无法实现。我确信我的源投影是EPSG:2100,我需要将其转换为我的地图投影,即Spherical Mercator。

无论我做什么,我创建并放置在地图上的标记总是在同一位置:

       var addMarker = function(){
           var fromProjection = new OpenLayers.Projection("EPSG:2100");
           var toProjection   = new OpenLayers.Projection("EPSG:4326"); 
           var position       = new OpenLayers.LonLat(479758.284700697,4207092.83410554).transform( fromProjection, toProjection);
           markers = new OpenLayers.Layer.Markers("Markers");
           map.addLayer(markers);
           marker = new OpenLayers.Marker(position)
          markers.addMarker(marker); 
         };
          var destroyMarker = function(){
           markers.removeMarker(marker);
       };

我认为您必须首先声明您的投影(EPSG:2100)。您可以使用proj4js库来做到这一点。

我试过你的代码,它显示给我的是:`

"NetworkError: 404 Not Found - http://localhost:19614/JSLib/proj4js/lib/defs/EPSG2100.js"

当您的库中不知道您的投影时,就会发生这种情况。

还有一点:EPSG:4326不是Spherical Mercator,它是WGS84的代码。对于对称墨卡托,您必须使用:EPSG:900913或EPSG:3857。有关EPSG数据集的更多信息,您可以在此处查看

最新更新