投影之间的转换不起作用
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
我正在尝试使用 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