背景
开发过程中需要在前台实现3857到国家2000坐标系的坐标转换功能,利用transform转换报错,经大佬指点利用 proj4.js(proj4js是一个转换点坐标从一个坐标系到另一个坐标系的JavaScript库,包括数据转换)后,成功实现坐标转换。
准备工作,使OpenLayers支持坐标系(这里以EPSG:4512为例)
1:下载proj4.js文件 https://www.bootcdn.cn/proj4js/
2:查找坐标系定义 http://epsg.io/
3 :页面引入proj4.js <script type="text/javascript" src="./plugins/proj4/proj4-2.4.4.js"></script>
4 :定义EPSG:4512坐标系 将上面查找到的定义放到随便一个js文件就行
proj4.defs("EPSG:4512","+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs");
坐标转换
通过人机交互Draw绘制了一个EPSG:3857的Geometry(这里记为geom3857),如何将它的坐标转换为 EPSG:4512(转换后的结果记为geom4512),代码如下:
geom4512 = geom3857.clone().transform('EPSG:3857', 'EPSG:4512');