我正在尝试使用一个以 EPSG:4326 格式加载坐标并在地图上绘图的程序。问题是我的坐标在 EPSG:3006 中。
是否有任何功能可以将 OpenLayers 中的一个投影转换为另一个 EPSG?
我正在尝试使用一个以 EPSG:4326 格式加载坐标并在地图上绘图的程序。问题是我的坐标在 EPSG:3006 中。
是否有任何功能可以将 OpenLayers 中的一个投影转换为另一个 EPSG?
更好的方法是在这里使用 proj4js 库,它很简单,您可以根据需要添加自定义投影。
您可以在下面看到它是如何工作的:
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才能使用投影的“长列表”(包括此处和您创建的自定义投影)。