在前端Web开发中,地理坐标的处理是一个非常重要的问题,经纬度计算和坐标系转换经常会遇到。WGS84是全球地理坐标体系,是目前最常用的GPS全球定位系统的地球模型。
本文主要介绍使用npm包wgs84实现WGS84坐标系与国标坐标系之间的转换,对前端开发工程师进行具体的学习和指导。
1. 安装wgs84
npm包wgs84可在npm官网上下载自己需要的版本进行安装。首先在终端进入项目文件夹,然后使用下面的命令进行安装:
npm install wgs84 --save
安装成功后,npm包wgs84就已经准备好了。接下来,我们来看看它的具体用法。
2. 使用wgs84进行坐标系的转换
在使用之前,需要先将wgs84引入到项目中:
const wgs84 = require('wgs84');
2.1 经纬度坐标系转平面直角坐标系(GCJ02、BD09)
将经纬度转换为平面直角坐标系可以满足具体的地图功能,目前常用的坐标系有GCJ02(国测局坐标系)和BD09(百度坐标系)。下面的示例代码使用wgs84将经纬度的坐标系(GPS坐标系)转换为GCJ02坐标系和BD09坐标系坐标:
const position = [118.819442, 31.897741]; //经纬度坐标数组 const GCJ02 = wgs84.gcj02_to_wgs84(position); //经纬度坐标系 -> GCJ02坐标系 const BD09 = wgs84.bd09_to_wgs84(position); //经纬度坐标系 -> BD09坐标系 console.log(GCJ02); //[118.82498638383862, 31.90249687767258] console.log(BD09); //[118.83198182969905, 31.909459462644215]
2.2 平面直角坐标系转经纬度坐标系(GCJ02、BD09)
将平面直角坐标系转换为经纬度坐标系可以满足具体的地理位置功能,我们通过wgs84将GCJ02坐标系和BD09坐标系转换为经纬度坐标系。
const position = [118.82498638383862,31.90249687767258]; //GCJ02坐标系坐标数组 const WGS84 = wgs84.gcj02_to_wgs84(position); //GCJ02坐标系 -> 经纬度坐标系 console.log(WGS84); //[118.81944954786425, 31.897748876432957] const position = [118.83198182969905,31.909459462644215]; //BD09坐标系坐标数组 const WGS84 = wgs84.bd09_to_wgs84(position); //BD09坐标系 -> 经纬度坐标系 console.log(WGS84); //[118.82499680839714, 31.902632404391]
2.3 坐标点距离计算
在地图模块中,两点间距离计算是必不可少的,下面通过wgs84进行两点距离计算的示例代码:
//计算距离的两个点坐标 const p1 = [118.82498638383862,31.90249687767258]; const p2 = [118.83198182969905,31.909459462644215]; const distance = wgs84.distance(p1, p2); //求距离 console.log(Number(distance).toFixed(3) + "米"); //计算结果:0.984公里
3. 总结
通过npm包wgs84实现了GPS坐标系和百度坐标系转换,并通过示例代码演示了这个过程。在实际应用中,wgs84融合了国测局的坐标系处理算法,可以用来计算距离、坐标转换等功能。对于经纬度处理,wgs84包是非常方便实用的工具。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/77377