使用JS将GPRMC转换成WGS84/GCJ02

  • 背景 Background
  • 代码 Code
    • GPRMC 转换成WGS84
    • WGS84转GCJ02

背景 Background

在物联网相关的 应用中,我们经常都要将使用BG96的设备的GPS定位数据定位到Google Map中。
我们要将其GPRMC的数据转换成WGS84或GCJ02
In IoT system, we often get the GPS data from the device using BG96
We have to convert the raw data to WGS84/GCJ02 to show the device location on GoogleMap.

代码 Code

GPRMC 转换成WGS84


// The GPRMC gps data: 2259.312015N,11355.933779E
// @return  22.988533583333332 113.93222965setLatLng(v) {let vArr = v.split(',');let lat, lng;for (let i = 0; i < vArr.length; i++) {if (i == 0) {if (vArr[i].substring(vArr[i].length - 1) == "N") {lat = vArr[i].substr(0, vArr[i].length - 1);} else {lat = "-" + vArr[i].substr(0, vArr[i].length - 1);//if in south, it is  minus}}if (i == 1) {if (vArr[i].substring(vArr[i].length - 1) == "E") {lng = vArr[i].substr(0, vArr[i].length - 1);} else {lng = "-" + vArr[i].substr(0, vArr[i].length - 1);//if in west, it is minus}}}// the above data should be 2259.312015 11355.933779return {lat: this.gprmc2Wgs84(lat),lng: this.gprmc2Wgs84(lng)};}//2259.312015 to 22.988533583333332gprmc2Wgs84(v: string) {let pointIndex = v.indexOf('.');if (pointIndex == -1) return null;let h = v.substr(0, pointIndex - 2);if (h.indexOf('-') !== -1) {//if minusreturn Number(h) - Number(v.substring(pointIndex - 2)) / 60;} else {return Number(h) + Number(v.substring(pointIndex - 2)) / 60;}}

WGS84是国际通用的坐标系,但是在GoogleMap当中,在大陆的部分必须转成GCJ02才能定位正确。
The WGS84 can be use all over the world on Google Map except Mainland China.
It some reasons, we have to use the GCJ02 on Google Map in Mainland China.

WGS84转GCJ02

我们可以通过下面这个开源的项目将WGS84转为GCJ02:
We can use the below open-source project to convert WGS84 to GCJ02:
https://github.com/hiwanz/wgs2mars.js

以上。
谢谢。
Thanks.

使用JS将GPRMC转换成WGS84/GCJ02相关推荐

  1. js中将字符串转换成json的三种方式

    ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法. 1,eval方式解析,恐 ...

  2. js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳

    js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳 热心网友  2018-11-18 js字符串转化时间戳可以使用自带函数 Date(要转化的时间字符串)先转化为Date类型,之后再将 ...

  3. js将阿拉伯数字转换成中文的大写数字

    js将阿拉伯数字转换成中文的大写数字 export const numberToChinese = (num) => {var AA = new Array("零", &qu ...

  4. js将数字转换成万、亿、万亿

    // js将数字转换成万.亿.万亿 export const numberFormat = (value)=> {var param = {};var k = 10000,sizes = ['' ...

  5. 用原生js把数字转换成货币人民币表示带逗号表示方法

    用原生js把数字转换成货币人民币表示带逗号表示方法 function rmb(str){let strArr = String( parseFloat(str).toFixed(2) ).split( ...

  6. js将秒转换成几天几小时几分几秒,每秒刷新

    //js将秒转换成几天几小时几分几秒function getDuration(second) {var days = Math.floor(second / 86400);var hours = Ma ...

  7. 如何用js将日期转换成时间戳

    一.日期转换成时间戳 js字符串转化成时间戳可以使用自带函数Date(要转化的时间字符串)先转化为Date类型,之后再将Date类型转化为时间戳类型,其中时间字符串有要求,形式必须是yyyy-MM-d ...

  8. js将中文转换成编码 java解析_JS实现的汉字与Unicode码相互转化功能分析

    本文实例讲述了JS实现的汉字与Unicode码相互转化功能.分享给大家供大家参考,具体如下: 有时候,我们在给后端传递变量的的值中有汉字,可能由于编码的原因,传递到后端后变为乱码了.所以有时候为了省事 ...

  9. js将字符串转换成数字的四种方法

    方法主要有四种 1转换函数.2强制类型转换.3利用js变量弱类型转换.4在字符串前面添加个+ 1.转换函数 js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后 ...

最新文章

  1. html css加载不了_CSS加载会阻塞页面显示?
  2. arduinowifi.send怎么获取响应_ChatterBot代码解读-获取对话
  3. matlab padarray函数零,matlab padarray函数
  4. There is insufficient memory for the Java Runtime Environment to continue. NIFI 启动时报 jvm内存溢出
  5. 年后开课 | 第 4 期临床基因组家系分析,同时解决科研和临床问题
  6. 陌生人交友IM即时聊天系统-得推交友系统v3.0源码
  7. 亲历者说:Kubernetes API 与 Operator,不为人知的开发者战争
  8. matlab显示图像的横纵坐标
  9. 在Word中自定义多级列表样式
  10. 各种绩效考核方法的区别
  11. 27_Pandas按星期,月份,季度和年份的天计算时间序列数据的总计和平均值
  12. tweenMax代码未定义问题
  13. iphone和android系统,iPhone上安装Android系统详细步骤。
  14. 前端项目发版后用户需要手动刷新页面获取的解决方案
  15. 烤鱼界头牌半天妖发文致歉,背后暴露了哪些问题?
  16. linux系统安装绿色版mysql
  17. 惊!一文看懂Java NIO读写文件
  18. STP收敛时间为什么是30S--到50S根据bpdu交互进行解析
  19. 实战三十三:STAMP算法实现商品推荐实战 代码+数据
  20. python3爬取视频原理_Python3爬虫实战:以爬取豆瓣电影为例

热门文章

  1. Ubuntu tomcat7 安装
  2. 机器学习:各种优化器Optimizer的总结与比较
  3. java判断回文字符串的方法
  4. linux的简单命令介绍2
  5. 重大调整:2023年期刊影响因子
  6. IOS数据存储 之WCDB (一)
  7. 如何删除word文件中的空白页?
  8. 前端进阶之PromiseA+规范
  9. Activiti5学习笔记(二)
  10. 深入理解setstate