失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > JS实现坐标系转换(wgs84 bd09ll gcj02)百度 GPS 高德 腾讯地图相互转换

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

时间:2024-03-08 10:14:46

相关推荐

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

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./api?v=3.0&ak=秘钥"></script>

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

//坐标系转换 @author qiyulin @date .10.17var 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}]// 初始化,加载需要转换的点 arrPconverMap.init(arrP);// 执行转换,并返回转换结果 arrP2converMap.start(function(arrP2){//conver resultconsole.log(arrP2); });

4. 输出结果

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

如果觉得《JS实现坐标系转换(wgs84 bd09ll gcj02)百度 GPS 高德 腾讯地图相互转换》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。