OpenLayers:将EPSG:3006转换为EPSG:4326

时间:2014-03-20 18:17:10

标签: map coordinates openlayers projection epsg

我试图使用加载EPSG中的坐标的程序:4326格式和地图上的绘图。问题是我的坐标是EPSG:3006。

是否有任何功能可以将OpenLayers中的一个投影转换为另一个EPSG?

1 个答案:

答案 0 :(得分:1)

更好的方法是使用proj4js库here,它很简单,如果需要,可以添加自定义投影。

下面你可以看到它的工作原理:

var SourceProjection= new Proj4js.Proj('EPSG:4326');
var DestinationProjections= new Proj4js.Proj('EPSG:3006');

var Point = new Proj4js.Point(longitude, latitude);          
Proj4js.transform(FirstProjection, SecondProjections, ne);

或者,如果你想从openlayers这样做,你可以使用"转换"几何函数,这是我使用的自定义函数:

function TransformGeometry(geometry, SourceProj, DestProj) {
    geometry.transform(
        new OpenLayers.Projection(SourceProj),
        new OpenLayers.Projection(DestProj));

    return geometry;
}

在任何情况下,您都必须在HTML标记中声明proj4js才能使用"长列表"投影(包括此处和您创建的自定义投影)。