• 国际定位标准: WGS84  公用转化的坐标系,一般保存在后端数据库
  • 火星坐标系: GCJ-02  国测局标准,中国使用,在国际定位标准上加密生成的. 高德地图,腾讯地图以及谷歌中国区地图使用该坐标系
  • 百度坐标系: BD-09  百度坐标系,在火星坐标系上再次加密生成的. 百度地图使用该坐标系

同一个地点在不同坐标系的经纬度是不一样的,所以需要转化坐标系

wgs84  ---》 gcj02  ---》 bd09   三种坐标系只能一层一层转化,百度和国际要通过火星坐标系转化

小工具代码如下(html文件):

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>经纬度转换</title><!-- 引入vue --><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.11/vue.min.js"></script><!-- 引入样式 --><link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"><!-- 引入组件库 --><script src="https://unpkg.com/element-ui/lib/index.js"></script><style>.el-button{margin: 5px !important;}.el-form-item{margin-bottom: 8px;}</style>
</head><body>
<div id="main"><el-form ref="form" :model="form" label-width="88px"><el-form-item label="转换前经度"><el-input type="number" v-model="form.lng"></el-input></el-form-item><el-form-item label="转换前纬度"><el-input type="number" v-model="form.lat"></el-input></el-form-item><el-form-item><el-button type="primary" size="small" @click="change(1)">百度转高德</el-button><el-button type="primary" size="small" @click="change(2)">高德转百度</el-button><el-button type="primary" size="small" @click="change(3)">高德转国际</el-button><el-button type="primary" size="small" @click="change(4)">国际转高德</el-button><el-button type="primary" size="small" @click="change(5)">百度转国际</el-button><el-button type="primary" size="small" @click="change(6)">国际转百度</el-button></el-form-item><el-form-item label="转换后经度"><el-input type="number" v-model="form.rlng"></el-input></el-form-item><el-form-item label="转换后纬度"><el-input type="number" v-model="form.rlat"></el-input></el-form-item></el-form><div class="tips"><br /><br />国际定位标准: WGS84  公用转化的坐标系,一般保存在后端数据库<br /><br />火星坐标系: GCJ-02  国测局标准,中国使用,在国际定位标准上加密生成的. 高德地图,腾讯地图以及谷歌中国区地图使用该坐标系<br /><br />百度坐标系: BD-09  百度坐标系,在火星坐标系上再次加密生成的. 百度地图使用该坐标系</div>
</div>
</body>
<script>/*** Created by Wandergis on 2015/7/8.* 提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换*///定义一些常量var x_PI = 3.14159265358979324 * 3000.0 / 180.0;var PI = 3.1415926535897932384626;var a = 6378245.0;var ee = 0.00669342162296594323;/*** 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换* 即 百度 转 谷歌、高德* @param bd_lon* @param bd_lat* @returns {*[]}*/var bd09togcj02 = function bd09togcj02(bd_lon, bd_lat) {var x_pi = 3.14159265358979324 * 3000.0 / 180.0;var x = bd_lon - 0.0065;var y = bd_lat - 0.006;var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);var gg_lng = z * Math.cos(theta);var gg_lat = z * Math.sin(theta);return [gg_lng, gg_lat]};/*** 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换* 即谷歌、高德 转 百度* @param lng* @param lat* @returns {*[]}*/var gcj02tobd09 = function gcj02tobd09(lng, lat) {var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);var bd_lng = z * Math.cos(theta) + 0.0065;var bd_lat = z * Math.sin(theta) + 0.006;return [bd_lng, bd_lat]};/*** WGS84转GCj02* @param lng* @param lat* @returns {*[]}*/var wgs84togcj02 = function wgs84togcj02(lng, lat) {if (out_of_china(lng, lat)) {return [lng, lat]} else {var dlat = transformlat(lng - 105.0, lat - 35.0);var dlng = transformlng(lng - 105.0, lat - 35.0);var radlat = lat / 180.0 * PI;var magic = Math.sin(radlat);magic = 1 - ee * magic * magic;var sqrtmagic = Math.sqrt(magic);dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);var mglat = lat + dlat;var mglng = lng + dlng;return [mglng, mglat]}};/*** GCJ02 转换为 WGS84* @param lng* @param lat* @returns {*[]}*/var gcj02towgs84 = function gcj02towgs84(lng, lat) {if (out_of_china(lng, lat)) {return [lng, lat]} else {var dlat = transformlat(lng - 105.0, lat - 35.0);var dlng = transformlng(lng - 105.0, lat - 35.0);var radlat = lat / 180.0 * PI;var magic = Math.sin(radlat);magic = 1 - ee * magic * magic;var sqrtmagic = Math.sqrt(magic);dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);var mglat = lat + dlat;var mglng = lng + dlng;return [lng * 2 - mglng, lat * 2 - mglat]}};var transformlat = function transformlat(lng, lat) {var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;return ret};var transformlng = function transformlng(lng, lat) {var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;return ret};/*** 判断是否在国内,不在国内则不做偏移* @param lng* @param lat* @returns {boolean}*/var out_of_china = function out_of_china(lng, lat) {return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false);};var vm = new Vue({el: "#main",data() {return{form:{lng:'',lat:'',rlng:'',rlat:'',}}},methods: {change(t){let form=this.formif(t==1){let arr=bd09togcj02(form.lng*1,form.lat*1)form.rlng=arr[0]form.rlat=arr[1]}else if(t==2){let arr=gcj02tobd09(form.lng*1,form.lat*1)form.rlng=arr[0]form.rlat=arr[1]}else if(t==3){let arr=gcj02towgs84(form.lng*1,form.lat*1)form.rlng=arr[0]form.rlat=arr[1]}else if(t==4){let arr=wgs84togcj02(form.lng*1,form.lat*1)form.rlng=arr[0]form.rlat=arr[1]}else if(t==5){let ary=bd09togcj02(form.lng*1,form.lat*1)let arr=gcj02towgs84(ary[0]*1,ary[1]*1)form.rlng=arr[0]form.rlat=arr[1]}else if(t==6){let ary=wgs84togcj02(form.lng*1,form.lat*1)let arr=gcj02tobd09(ary[0]*1,ary[1]*1)form.rlng=arr[0]form.rlat=arr[1]}},}})
</script></html>

三种坐标系经纬度转化小工具相关推荐

  1. 三种web性能压力测试工具

    三种web性能压力测试工具http_load webbench ab小结 题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种 http_load 下载地址:http://w ...

  2. 三种web性能压力测试工具http_load webbench apache benc

    题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种 http_load 下载地址:http://www.acme.com/software/http_load/http_l ...

  3. Spark不是唯一,三种新兴的开源数据分析工具

    2019独角兽企业重金招聘Python工程师标准>>> 物联网带来了众多传感器及其他设备,它们在生成源源不断的数据流,而物联网只是推动市场需要新型分析工具的重大趋势之一.比如需要流数 ...

  4. 安装软件包的三种方法rpm包rpm工具yum工具

    7.1 安装软件包的三种方法 rpm工具 rpm(Redhat Package Manager)RPM软件包管理器,是以一种数据库记录的方式来将我们所需要的套件安装到Linux主机的一套管理程序.rp ...

  5. 3.2 三种灵活的套索选择工具 [Ps教程]

    原文:http://coolketang.com/staticPhotoshop/5a98d382ee920a7880871d8c.html 1. 本节课将使用三种套索选择工具,来优化图片中的玉石的色 ...

  6. C、C++、C# 三种汇编语言之间的小故事

    转载原创作者[关于编程哪些事]:https://zhuanlan.zhihu.com/p/130360966 故事1:把大象装到冰箱里 ● C C语言是一个极其高冷的人,因此回答都是冷冷的: 我:你好 ...

  7. QTranslate 3.1.1:整合7种在线翻译的小工具

    QTranslate 更新至3.1.1,此次更新和往常一样QTranslate在先前已经整合了6种在线翻译的情况下又增加了Babylon在线翻译服务,现在 QTranslate是一款一共整合了7种在线 ...

  8. Windows的三种坐标系:屏幕坐标系,非客户区坐标系,客户区坐标系

    1. 屏幕坐标系:以屏幕的左上角为原点,如图所示 GetWindowRect() 函数获得的 RECT 就是以屏幕坐标系算的. 2. 非客户区坐标系(窗口坐标系) 包括标题栏的部分.GetWindow ...

  9. python中multiply函数_python中numpy库内multiply()、dot()和 * 三种乘法运算的区别小计...

    首先,导入函数包: import numpy as np 1.np.multiply()函数: 数组:(点对点)对应位置元素相乘 矩阵:对应位置元素相乘 示例: A = np.array([[1,2] ...

  10. hibernate 的三种状态 如何转化的。

    1. 临时状态  由 new命令开辟内存空间的java对象,例如: User user=new User(); 临 时对象在内存孤立存在,它是携带信息的载体,不和数据库的数据有任何关联关系.   2. ...

最新文章

  1. 如何实现一个可复用的分布式事务消息架构方案?
  2. JQuery 文本框高亮显示插件
  3. 小米手环4 NFC版将全渠道开售:垃圾分类超智能
  4. ~~求欧拉函数(附模板题)
  5. MongoDB 凉了?
  6. 32位存储字长存储double_1GB多大?1GB与1MB的关系?详细数据存储单位转换来了...
  7. [OpenJDK]native.java.lang.UNIXProcess_md.c
  8. 视频教程-思科CCNP专题系列②:EIGRP路由协议-思科认证
  9. 离线强化学习(Offline RL)系列3: (算法篇) TD3+BC 算法详解与实现(经验篇)
  10. 普歌-码上鸿鹄团队:在Nuxt(vue)渲染模板中使用mock.js随机生成数据
  11. excel表格怎么换行?单元格内换行的4个方法
  12. python pyd_python pyd 加密相关
  13. Unity Json存档读档操作
  14. 一台计算机有两个用户怎样共享,两台计算机如何共享一台打印机?
  15. Css3实现背景毛玻璃效果
  16. python读书心得体会范文_读书心得体会范文(通用3篇)
  17. python编程大数据_学习Python编程挨着大数据什么事
  18. 2天3夜开发了一个微信小程序,用它挣了10.7万
  19. 入侵oracle数据库时常用的操作命令整理
  20. Python爬虫实战: 爬取网易云歌单

热门文章

  1. STM32RTC唤醒功能配置(基于LL库)
  2. webflux解决get请求中文乱码问题
  3. matlab 图例legend中实现换行
  4. 链路聚合的配置(思科)
  5. python网址解码_python用于url解码和中文解析的小脚本(python url decoder)
  6. pip 安装 sklearn 教程
  7. hcfax2e伺服驱动器说明书_交流伺服电机驱动器使用说明书.-共14页
  8. 使用IDEA反编译class文件
  9. 程序猿必看10本好书推荐
  10. java opencv 模板匹配算法_浅谈opencv模板匹配算法原理