地图经纬度转换(百度,高德,谷歌,Leaflet)

-----因项目需求,要把百度地图的经纬度转换成Leaflet经纬度,感谢leaflet群里一个老哥提供的坐标转换插件(gcoord)-----

常用地图的经纬度一般为这几种格式:GCJ02BD09WGS84(既EPSG:4326)EPSG:3857(基于墨卡托坐标系)

高德、腾讯(使用GCJ02)

  1. GCJ-02坐标系,也称火星坐标系,由中国国家测绘局在02年发布,是在GPS坐标(WGS-84坐标系)基础上经加密后而来。

谷歌(使用GCJ02和WGS84)

  1. 谷歌国内版经纬度用的 GCJ02(又名 国测局 或 火星坐标 )。

    国外版用的是WGS84,通常【GPS设备获取到的原始经纬度和国外的地图厂商使用的都是WGS-84坐标系】,此外它的EPSG编号为EPSG:4326

百度(使用BD09)

  1. BD09坐标,是在的GCJ02基础上再加密得到

Leaflet(默认使用EPSG:3857,也可以使用WGS84)

  1. EPSG:3857是平面坐标系,单位是米,它基于墨卡托投影,例如: [12914838.35, 4814529.9]
  2. 详细解释:GCJ02BD09WGS84都是地理坐标系,球面坐标,单位为,这种坐标方便在地球上定位,但是不方便展示和进行面积距离计算,我们印象中的地图都是平面的,所以就有了另外一种平面坐标系,平面坐标系是通过投影的方式从地理坐标系中转换过来,所以也称为投影坐标系,通常单位为,投影坐标系根据投影方式的不同存在多种,在Web开发的场景里通常使用的是Web墨卡托投影,编号为EPSG:3857,它基于墨卡托投影,把WGS-84坐标系投影成正方形,这是通过舍弃了南北85.051129纬度以上的地区实现的,因为它是正方形,所以一个大的正方形可以很方便的被分割为更小的正方形。

如何将xy轴坐标与经纬度坐标互转

  1. 在一般情况下,想要把EPSG:3857的坐标在球面坐标系上使用时,必须转换成经纬度坐标,方法如下:

    //  EPSG3857 xy轴坐标 转 经纬度坐标
    const Convert_EPSG3857_To_Default3857 = (lat, lng) => {let tempLng = lng/20037508.34*180;let tempLat = lat/20037508.34*180;tempLat = 180/Math.PI*(2*Math.atan(Math.exp(tempLat*Math.PI/180))-Math.PI/2);return {lng: lng == 0 ? 0 : tempLng,lat: lat == 0 ? 0 : tempLat};
    };
    //  经纬度坐标 转 EPSG3857 xy轴坐标
    const Convert_Default3857_To_EPSG3857 = (lat, lng) => {let mercator = {};let x = lng * 20037508.34 / 180;let y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);y = y * 20037508.34 / 180;mercator.x = x;mercator.y = y;return {lng: lng == 0 ? 0 : mercator.x,lat: lat == 0 ? 0 : mercator.y};
    };
    

各种经纬度坐标互转

  1. 通过插件进行转换

    // 百度 转 EPSG3857
    const Convert_BD09_To_EPSG3857 = (lat, lng) => {// 使用工具将百度经纬度直接转成EPSG:3857let result = gcoord.transform([lng, lat],        // 经纬度坐标gcoord.BD09,       // 当前坐标系gcoord.EPSG3857    // 目标坐标系);return {lng: lng == 0 ? 0 : result[0],lat: lat == 0 ? 0 : result[1]};
    };
    // EPSG3857 转 百度
    const Convert_EPSG3857_To_BD09 = (lat, lng) => {// 使用工具将EPSG:3857经纬度直接转成百度经纬度let result = gcoord.transform([lng, lat],            // 经纬度坐标gcoord.EPSG3857,    // 当前坐标系gcoord.BD09         // 目标坐标系);return {lng: lng == 0 ? 0 : result[0],lat: lat == 0 ? 0 : result[1]};
    };
    

    注:如想要 leaflet 地图使用源码可私信我或评论区留邮箱

坐标转换(插件 gcoord )

插件使用方法:

// 引入插件 gcoord,(摘自插件文档)
let result = gcoord.transform([116.403988, 39.914266],    // 经纬度坐标gcoord.WGS84,               // 当前坐标系gcoord.BD09                 // 目标坐标系
);
console.log(result);  // [116.41661560068297, 39.92196580126834]
// 当前坐标和目标坐标就是下面的 CRS,找到对应的值,进行转换即可

附gcoord文档内,各种经纬度说明:

CRS 坐标格式 说明
gcoord.WGS84 [lng,lat] WGS-84坐标系,GPS设备获取的经纬度坐标
gcoord.GCJ02 [lng,lat] GCJ-02坐标系,google中国地图、soso地图、aliyun地图、mapabc地图和高德地图所用的经纬度坐标
gcoord.BD09 [lng,lat] BD-09坐标系,百度地图采用的经纬度坐标
gcoord.BD09LL [lng,lat] 同BD09
gcoord.BD09MC [x,y] BD-09米制坐标,百度地图采用的米制坐标,单位:米
gcoord.BD09Meter [x,y] 同BD09MC
gcoord.Baidu [lng,lat] 百度坐标系,BD-09坐标系别名,同BD-09
gcoord.BMap [lng,lat] 百度地图,BD-09坐标系别名,同BD-09
gcoord.AMap [lng,lat] 高德地图,同GCJ-02
gcoord.WebMercator [x,y] Web Mercator投影,墨卡托投影,同EPSG3857,单位:米
gcoord.WGS1984 [lng,lat] WGS-84坐标系别名,同WGS-84
gcoord.EPSG4326 [lng,lat] WGS-84坐标系别名,同WGS-84
gcoord.EPSG3857 [x,y] Web Mercator投影,同WebMercator,单位:米
gcoord.EPSG900913 [x,y] Web Mercator投影,同WebMercator,单位:米

注:[插件github地址](GitHub - hujiulong/gcoord: 地理坐标系转换工具)

参考:[墨卡托坐标系与经纬度坐标系互相转换](墨卡托坐标系与经纬度坐标系互相转换 - 简书 (jianshu.com))

地图经纬度转换(百度,高德,谷歌,Leaflet)相关推荐

  1. js处理腾讯地图经纬度转换百度地图经纬度

    })          /**          * 坐标转换,腾讯地图转换成百度地图坐标          * lng 腾讯经度(pointy)          * lat 腾讯纬度(pointx ...

  2. 百度地图与腾讯/高德地图经纬度转换

    //将腾讯/高德地图经纬度转换为百度地图经纬度 //将腾讯/高德地图经纬度转换为百度地图经纬度 function qqMapTransBMap(lng, lat) {let x_pi = 3.1415 ...

  3. 腾讯地图api php经纬度转换地址,腾讯地图经纬度转换为百度地图经纬度

    ‍ 利用微信来获取用户当前的详细地址是非常方便的,但是利用微信获取到用户的经纬度转换为具体地址时,老是出现误差很大,因此,决心把腾讯地图经纬度转换城百度地图经纬度,然后再‍利用百度地图api来获取详细 ...

  4. python 地图偏移_python 地图经纬度转换、纠偏的实例代码 百度地图经纬度web纠偏怎么用...

    天地图的经纬度 经过纠偏了么 给个例子证明下 如何用python实现百度地图墨卡托坐标跟经纬度坐标互转 麦哲伦机器: 系统设置 地图单位 自定义坐标系 横向墨卡托 原点纬度0 原点经度126(通化) ...

  5. 百度地图经纬度转换腾讯地图经纬度

    百度地图经纬度转腾讯地图经纬度 function  bMapTransQQMap(lng,lat){         let x_pi = 3.14159265358979324 * 3000.0 / ...

  6. python 地图偏移_python 地图经纬度转换、纠偏的实例代码

    python 地图经纬度转换.纠偏的代码如下所示: # -*- coding: utf-8 -*- import json import urllib import math x_pi = 3.141 ...

  7. 高德地图经纬度和百度地图经纬度互相转换

    高德经纬度转百度经纬度 http://api.map.baidu.com/geoconv/v1/?coords=113.9609047719607,22.537714359860125&fro ...

  8. android 经纬度 转换成地址,Android 百度地图经纬度转换成地址

    1.地理编码查询接口是单列模式的,我们需要调用让它自己实例化 // 在OnCreate方法里创建地理编码检索实例 GeoCoder geoCoder = GeoCoder.newInstance(); ...

  9. 移动端地图技术分享 百度高德SDK

    移动端地图技术分享 字数4797 阅读8121 评论7 喜欢16 http://www.jianshu.com/p/41179be5893a 该文章属于<简书 - 刘小壮>原创,转载请注明 ...

  10. java 百度地图 经纬度_Java百度地图经纬度纠偏

    在国内使用电子地图获取到的经纬度都不是真实的经纬度,而是经过一定的算法在真实的经纬度上添加了一个偏移量,且不同的地图有不同的算法.现在告诉大家在java中怎样对百度地图进行纠偏,主要实现将真实的经纬度 ...

最新文章

  1. asp.net2.0如何加密数据库联接字符串
  2. Java Mail 邮件发送(一):入门Demo
  3. linux视频教程 iptables 跟踪,linux – 了解iptables中的连接跟踪
  4. 一种JPG/PNG在线转EPS/PDF的方法
  5. 杀掉php所有进程,杀死某个用户的所有进程
  6. Bootstrap 表单的扩展控件
  7. Linux 根文件系统目录结构与功能,4.Linux根文件系统和目录结构及bash特性
  8. 【C++】判断指定元素是否在vector中的若干种方法小结
  9. 小蜜蜂(动态规划dp)
  10. python大数据方向_大数据行业5个职位方向指南
  11. 至将北漂或刚北漂的程序员
  12. 选计算机硬盘原则和注意事项,旧电脑升级是升内存还是SSD?按照这个原则就对了!...
  13. mysql 查询dual报错_MYSQL基础02(查询)
  14. jchdl - RTL实例 - MOS6502 ALU (Verilog)
  15. python axes3d函数_Python绘制3D图形:Axes3D
  16. 插值算法(一):各种插值方…
  17. 关于如何跟老板谈加薪
  18. 1901怀化学院KHJ错题集
  19. P1000刷机知识+获取ROOT+HDVS_ROM快速刷机教程 by fox
  20. python面向对象三大特性

热门文章

  1. 服务器对大文件传输有限制怎么办,20G、100G、200G大文件怎么通过网络远程传输,一招快速解决网络传输大文件...
  2. 技嘉主板bios怎么进入,如何进入技嘉主板的bios
  3. 微观社会调查数据:中国家庭追踪调查 CFPS
  4. python的ols_工具方法 | 6行代码教你用Python做OLS回归(内附CFPS实例)
  5. 增长研究:电子烟巨头JUUL未公开的增长启示
  6. 博弈论学习笔记——拍卖原理
  7. 2022淘宝618超级喵运会怎么玩?2022淘宝618喵运会玩法技巧
  8. 怎么写安卓手机脚本_想要挣钱创收 那就用脚本操作手机群控软件啊
  9. stuiod3t-2019030.dmg下载及studio3t macOS Cracking教程
  10. java io流类图