找回密码
 立即注册
搜索
查看: 2231|回复: 0

[基础语法] 主流地图 坐标系转换,百度、腾讯、高德等

[复制链接]

581

主题

110

回帖

4066

积分

管理员

积分
4066

众神之神

发表于 2017-5-11 11:58:37 | 显示全部楼层 |阅读模式
在我国,为了国家安全,电子地图不可以使用地球坐标系WGS84,必须经过偏转。面前主流的几款地图都有其对应的坐标系。
例如
高德、腾讯、图灵、阿里地图等都是 GCJ-02坐标系(也称火星坐标系)
而百度则使用BD-09坐标系。

那么这3个常用坐标系直接如何转换呢。
参照这个连接我总结了一下。http://blog.csdn.NET/meegomeego/article/details/39927017
1,GCJ-02(火星)转BD-09(百度地图)
  1. function MapabcEncryptToBdmap(gg_lat, gg_lon)   
  2. {   
  3.         
  4.      var point=new Object();  
  5.      var x_pi = 3.14159265358979324 * 3000.0 / 180.0;  
  6.      var x = new Number(gg_lon);  
  7.      var y = new Number(gg_lat);   
  8.      var z =  Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);   
  9.      var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);   
  10.      var bd_lon = z * Math.cos(theta) + 0.0065;   
  11.      var bd_lat = z * Math.sin(theta) + 0.006;   
  12.      point.lng=bd_lon;  
  13.      point.lat=bd_lat;  
  14.      //alert("-1:"+point.lng+","+point.lat);  
  15.      return point;  
  16. }   
复制代码

2,BD-09(百度地图)转 GCJ-02(火星)

  1. function BdmapEncryptToMapabc(bd_lat,bd_lon)  
  2. {  
  3. var point=new Object();  
  4. var x_pi = 3.14159265358979324 * 3000.0 / 180.0;  
  5.     var x = new Number(bd_lon - 0.0065);  
  6.     var y = new Number(bd_lat - 0.006);  
  7.     var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);  
  8.     var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);  
  9.     var Mars_lon = z * Math.cos(theta);  
  10.     var Mars_lat = z * Math.sin(theta);  
  11.     point.lng=Mars_lon;  
  12.     point.lat=Mars_lat;  
  13.     return point;  
  14. }  
复制代码


3,WGS84(地球坐标系)转BD-09(百度坐标系)
  1. function GPSToBaidu(lngX,latY){  
  2.     var gps_point=new BMap.Point(lngX,latY);  
  3.     BMap.Convertor.translate(gps_point,0,function(bd_point){         
  4.          alert("lng:"+bd_point.lng+" lat:"+bd_point.lat);  
  5.     });  
  6. }  
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|十三博客 ( 鲁ICP备2023000528号 )

GMT+8, 2026-6-1 16:15 , Processed in 0.091593 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表