投影之间的转换不起作用

Transformation between projections doesn't work

我正在尝试使用 openlayers 在两个不同的投影之间进行转换,但我无法使其工作。 我确定我的源投影是 EPSG:2100,我需要将其转换为我的地图投影,即球形墨卡托投影。

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

       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 的代码。 对于 Sperical Mercator,您必须使用:EPSG:900913 或 EPSG:3857。 有关 EPSG 数据集的更多信息,您可以查看 here