JS 实现地图坐标相互转换,采用百度地图API的 BMap.Convertor(),所以使用时需要引入百度地图 v3 / v2 API,转换精准,无偏移!

GPS ( wgs84 )  转 百度(bd09ll)

百度 ( bd09ll )  转 高德/腾讯/MapABC ( gcj02 )

高德/腾讯/MapABC ( gcj02 ) 转 百度 ( bd09ll )

搜狗,图吧,51地图 转  百度 ( bd09ll )

搜狗,图吧,51地图 转  高德/腾讯/MapABC ( gcj02 )

1. 引入百度地图API v3 /v2

<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=秘钥"></script>

2. 引入JS代码片段(  wgs84 转 bd09ll )

//坐标系转换  @author qiyulin  @date 2022.10.17
var converMap = {i:0,groups:[],arr:[],init:function(points){console.log("初始化点:",points);var total = 0;var groupCount = 0;if (points.length % 10 > 0) {groupCount = (points.length / 10) + 1;}else {groupCount = (points.length / 10);}for(var i=0;i<groupCount;i++){var pos = [];for(var j=0;j<10;j++){if(total<points.length){var point = new BMap.Point(points[(i * 10) + j].lng,points[(i * 10) + j].lat);pos.push(point);}total++;}converMap.groups.push(pos);}},start:function(cb){if(converMap.i<converMap.groups.length){var pos = converMap.groups[converMap.i];if(pos.length>0){var convertor = new BMap.Convertor();/*** 地图转换函数* translate( points, form, to, callback )** points : 坐标点数量,1次不能超过10个** from : 参数说明* 1:GPS标准坐标;* 2:搜狗地图坐标;* 3:火星坐标(gcj02),即高德地图、腾讯地图和MapABC等地图使用的坐标;* 4:3中列举的地图坐标对应的墨卡托平面坐标;* 5:百度地图采用的经纬度坐标(bd09ll);* 6:百度地图采用的墨卡托平面坐标(bd09mc);* 7:图吧地图坐标;* 8:51地图坐标;** to : 参数说明* 3:火星坐标(gcj02),即高德地图、腾讯地图及MapABC等地图使用的坐标;* 5:百度地图采用的经纬度坐标(bd09ll);* 6:百度地图采用的墨卡托平面坐标(bd09mc);** 这里:from = 1 , to =  5 是从 wgs84 坐标转 Bd09ll* */convertor.translate(pos, 1, 5, function(data){for (var i = 0; i < data.points.length; i++) {converMap.arr.push( data.points[i] );}converMap.i++;//递归converMap.start(cb);});}else{converMap.i++;//递归converMap.start(cb);}}else{console.log("转换结果:",converMap.arr);cb(converMap.arr)}}
}

3. 使用方式

//arrP =  {lng:92.32101749,lat:39.25321963} = new BMap.Point(92.32101749,39.25321963)
var arrP = [{lng:92.32101749,lat:39.25321963}, {lng:92.32381195,lat:39.23467412}, {lng:92.33689469,lat:39.18944389}, {lng:92.33462026,lat:39.16550173}, {lng:92.32438307,lat:39.14640229}, {lng:92.34150646,lat:39.12996929}, {lng:92.36486257,lat:39.12714225},{lng:92.78888514,lat:39.19405955}, {lng:92.84311121,lat:39.18927591}, {lng:92.88139011,lat:39.20919785}, {lng:92.90605774,lat:39.21617208}
]// 初始化,加载需要转换的点 arrP
converMap.init(arrP);
// 执行转换,并返回转换结果  arrP2
converMap.start(function(arrP2){//conver resultconsole.log(arrP2);
});

4. 输出结果

感谢您的支持,写的文章如对您有所帮助,开源不易,请您打赏,谢谢啦~

JS实现坐标系转换(wgs84、bd09ll、gcj02)百度、GPS、高德、腾讯地图相互转换相关推荐

  1. 转换WGS84、GCJ02、BD09坐标,解决百度高德坐标偏移

    转换WGS84.GCJ02.BD09坐标,解决百度高德坐标偏移 做过地图相关开发的同学肯定会遇到这样一个问题:同样的经纬度坐标,在百度地图和高德地图上位置不一样. 关于坐标系 我们通常用经纬度来表示一 ...

  2. three.js中坐标系转换以及camera的position、lookAt与up属性理解

    为了更好的理解camera的position.lookAt与up属性,文章最开始我们先来阐述three.js的坐标系转换的概念. 1.监听event的事件获得屏幕坐标 文章的最开始首先讨论在哪里进行点 ...

  3. gcoord: 转换WGS84、GCJ02、BD09坐标,转换百度高德地图坐标系

    做过地图相关开发的同学肯定会遇到这样一个问题:同样的经纬度坐标,在百度地图和高德地图上位置不一样. 关于坐标系 我们通常用经纬度来表示一个地理位置,但是由于一些原因,我们从不同渠道得到的经纬度信息可能 ...

  4. gcoord: 转换WGS84、GCJ02、BD09坐标,解决百度地图高德地图坐标系不统一的问题

    做过地图相关开发的同学肯定会遇到这样一个问题:同样的经纬度坐标,在百度地图和高德地图上位置不一样. 关于坐标系 我们通常用经纬度来表示一个地理位置,但是由于一些原因,我们从不同渠道得到的经纬度信息可能 ...

  5. 在线下载离线地图瓦片 (支持百度、高德和谷歌地图)

    制作离线地图,下载百度矢量数据制作3D地图,下载离线地图数据,下载离线地图瓦片.支持三个主流地图数据(百度.高德和谷歌). 下载网址:http://wmksj.com/ 1. 点击"地图下载 ...

  6. 百度经纬度转腾讯地图经纬度

    也是参照的别人的,实际开发中使用的这个函数,传入百度的经纬度,输出腾讯地图经纬度 const bMapTransqqMap = (lng, lat) => {let x_pi = (3.1415 ...

  7. android开发游记:APP内部调启百度、高德、web地图导航

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 使用方法 下面解释主要代码 一些地图相关的app一般都需要集成导航的功能方便用户使用,但实际上我们很多时候仅仅只是希望提供这样一 ...

  8. 微信小程序地图定位GPS转腾讯地图的坐标系

    //svar GPS = {PI: 3.14159265358979324,x_pi: 3.14159265358979324 * 3000.0 / 180.0,delta: function (la ...

  9. Python3 Wgs84\gcj02\bd09\mercator\bd09mc坐标系转换与投影

    最基础的一组经纬度坐标转换,在网上找到过JavaScript和java版本的,但是没有找到python版本的,把JavaScript版本的改成了python版本的,能凑合用. "" ...

最新文章

  1. ADAS虚拟车道边界生成
  2. imagenet 测试精度记录
  3. 知识管理系统Data Solution研发日记之六 窗体设计器
  4. 处理目录的常用命令---Linux
  5. MacOS Apple M1 安装ARM架构的JDK及动态切换版本
  6. 2019年CSDN博客前十排名
  7. centos7 yun安装mysql,CentOS7 yum方式安装MySQL5.7
  8. 关系型数据库(Relational Database)与非关系型数据库(NoSQL)的区别:(MySQL,Redis,Memcache,MongoDB)
  9. Java优先队列 Priority Queue
  10. 菜鸟学习Spring——SpringMVC注解版解析不同格式的JSON串
  11. linux下远程桌面连接工具,linux远程连接windows工具(tsclient 远程桌面)
  12. 智能工厂ERP解决方案
  13. 低级格式化软件测试,低级格式化,几款优秀的低级格式化工具对比制作步骤
  14. 亚马逊自然语言NLP 商品评论智能分析 demo及开发过程 【1 总体API介绍】【持续更新中】
  15. 2017计算机办公自动化试题,【2017年整理】计算机办公自动化试题.doc
  16. 大数据——Hadoop3.1.3安装与配置
  17. 基于python实现resnet_【Tensorflow系列】使用Inception_resnet_v2训练自己的数据集并用Tensorboard监控...
  18. 今天在淘宝网购物,保证你省钱!又见系统升级Bug?(看图片)
  19. STM32F411 Discovery学习笔记(二)点亮你的第一个LED
  20. 网络安全就业前景怎么样?好找工作吗?

热门文章

  1. 利用logbook模块管理日志
  2. 水电图纸——照明平面图-5
  3. java队列的取出队首_Java队列Queue的使用
  4. 金融帝国实验室(Capitalism Lab)官方正版游戏『优惠活动政策』
  5. html怎么让两个div重叠,两个DIV或多个DIV顺序重叠加
  6. 发明专利实质审查需要多久?
  7. 致命的逆行,危险的跟车(图)
  8. Hadoop(七)之Yarm 集群
  9. linux内核使用make编译出错,编译Linux内核出现错误:make vexpress_defconfig menuconfig...
  10. 用浪擎构建桌面备份 数据安全应用体系