【问题标题】:OpenLayers: convert EPSG:3006 to EPSG:4326OpenLayers:将 EPSG:3006 转换为 EPSG:4326
【发布时间】:2014-04-27 19:36:03
【问题描述】:

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

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

【问题讨论】:

标签: map coordinates openlayers projection epsg


【解决方案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 才能使用投影的“长列表”(包括此处和您创建的自定义投影)。

【讨论】:

    猜你喜欢
    • 2021-11-10
    • 2021-08-28
    • 2017-10-14
    • 2021-08-09
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    相关资源
    最近更新 更多