由于工作需要将大地2000坐标转换后显示到高德地图上。查找了种种资料都没有一篇完美的,走了很多弯路,最终在学习了各种专业知识后,完成了转化,将走的弯路一一记录。
一开始不懂国家大地2000坐标系,也不懂为什么坐标是这么大数值的。上来就是百度一下大地坐标系2000转wgs84坐标,一堆都是安利proj4的。但是最后实操失败,转化出来的经纬度要么无穷,要么是负的。这里试了很多模型,当时也不大理解各种模型的差异,反正就是浪费了很多时间。类似代码如下,有兴趣的可以自己试一试,网址如下:https://epsg.io/transform 也是大佬安利的,但是我就没有换算成功过。=,= 这里有n多种不同的坐标系。 在这个网站上试错的时候发现了区域的概念和三分度六分度的概念以及经纬度和米制的概念。
// 定义CGCS2000坐标系
proj4.defs('EPSG:4490', '+proj=longlat +ellps=GRS80 +no_defs')
// 定义UTM投影坐标系统
proj4.defs('UTM', '+proj=utm +zone=50 +datum=WGS84 +units=m +no_defs')
// 定义高斯-克吕格投影坐标系统
proj4.defs('EPSG:4522', '+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=GRS80 +units=m +no_defs +type=crs')
// 定义WGS84坐标系
proj4.defs('EPSG:4326', '+proj=longlat +datum=WGS84 +no_defs')
const wgs84Coords = proj4('EPSG:4490', 'EPSG:4326', dadilos)
经过查资料得知,我已有的坐标是以m位单位的【投影坐标】(啊西,一开始就搞错了),且y如果有8位的话,前两位表示区域,而