Openlayers 坐标系全面解析

目录

EPSG:4326 & EPSG:3857

EPSG:4326 与 EPSG:3857 的坐标转换 

EPSG: 4490

Openlayers 自定义坐标系(EPSG:4490 和 EPSG:4525)


EPSG:4326 & EPSG:3857

Openlayers 中常用的坐标系为 EPSG:4326 和 EPSG:3857,分别对应 WGS84 坐标系统中的地理坐标(经纬度)和投影坐标(X,Y)。EPSG:4326 通过经纬度记录坐标,方便存储,可读性高。Openlayers 中默认的坐标为 EPSG:3857,是一种墨卡托投影坐标,这种方式存储的坐标比较占用内存,而且可读性较差,但地图显示的效果比 EPSG:4326 好。通常,数据存储在 EPSG:4326中,显示在EPSG:3857中。这就需要使用 Openlayers 提供的坐标转换:

EPSG:4326 与 EPSG:3857 的坐标转换 

在 Openlayers 中提供了坐标转换的功能:transform([x, y],fromCoordinate,toCoordinate)  transform 需要传入三个参数:[x,y] 为需要转换的坐标,fromCoordinate 为该坐标的坐标系,toCoordinate 为需要转到的坐标系 。具体使用方法如下:

import {transform} from 'ol/proj';//导入方法
//EPSG:3857 转 EPSG:4326
console.log(transform([12202419, 4469830],"EPSG:3857","EPSG:4326"))

//EPSG:4326 转 EPSG:3857
console.log(transform([109.6162, 37.2201],"EPSG:4326","EPSG:3857"))

 

EPSG: 4490

在实际应用中 ,很多时候我们的数据源并不是 WGS84,就我国而言,大部分的地理空间数据都统一采用了 CGCS 2000 国家大地坐标系,而 EPSG:4490 对应的为 CGCS 2000 的地理坐标系,因此,在进行系统开发时,有时需要我们重新定义坐标系统。

关于空间坐标系对应的 EPSG 编号查询可参考:

EPSG 编号查询https://blog.csdn.net/qq_41441896/article/details/104525296

Openlayers 自定义坐标系(EPSG:4490 和 EPSG:4525)

Proj.4 是一个用于坐标转换的 JavaScript 库,结合 Openlayers 能够实现坐标系的定义和转换。

安装与引入:

cnpm install proj4 --save
import proj4 from 'proj4'

确定需要定义的坐标系统,比如以下坐标系统的定义

EPSG坐标系类型详细信息
4490地理坐标系GCS_China_Geodetic_Coordinate_System_2000
4525投影坐标系CGCS2000 / 3-degree Gauss-Kruger zone 37

 在 espsg 官网上搜索相应的编号:https://epsg.io/

 ​​​​​

proj4.defs("EPSG:4490","+proj=longlat +ellps=GRS80 +no_defs");

同样的方式查找到 EPSG: 4525 的信息:

proj4.defs("EPSG:4525","+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=GRS80 +units=m +no_defs");

在项目中使用:

proj4.defs([
  ["EPSG:4490","+proj=longlat +ellps=GRS80 +no_defs"],
  ["EPSG:4525","+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"]
  ]);
register(proj4);

这样就能在项目中使用 EPSG:4490 和 EPSG:4525 了,包括坐标转换:

console.log(transform([4107376, 37379693],"EPSG:4525","EPSG:4490"))
  • 10
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值