欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

不同坐标体系的转换

程序员文章站 2024-03-13 23:30:40
...

一、主流地图商使用的坐标体系

腾讯、高德:GCJ-02
百度:BD-09坐标,只适用于百度地图相关产品,在GCJ-02坐标系的基础上再次加密偏移后形成的坐标系
搜狗:搜狗坐标,只适用于搜狗地图相关产品
谷歌地球:GPS坐标,是度分秒形式的经纬度坐标。在国内不允许使用。必须转换为GCJ-02坐标。

所有坐标体系的原点,都是非洲。

GCJ-02

国测局02年发布的坐标体系。又称“火星坐标”。在中国,必须至少使用GCJ-02的坐标体系。比如谷歌,腾讯,高德都在用这个坐标体系。GCJ-02也是国内最广泛使用的坐标体系。

GPS,WGS-84

	原始坐标体系

二、微信小程序中使用

百度转腾讯

bdMap_to_txMap(lat,lat,lng){
let $x_pi = 3.14159265358979324 * 3000.0 / 180.0;
let $x = $lng - 0.0065;
let $y = $lat - 0.006;
let z=Math.sqrt(z = Math.sqrt(x * $x + $y * y)0.00002Math.sin(y) - 0.00002 * Math.sin(y * $x_pi);
let theta=Math.atan2(theta = Math.atan2(y, x)0.000003Math.cos(x) - 0.000003 * Math.cos(x * $x_pi);
$lng = zMath.cos(z * Math.cos(theta);
$lat = zMath.sin(z * Math.sin(theta);
return array(‘lng’+lng,lat+lng,'lat'+lat);
},

腾讯转百度

/* 腾讯地图---->百度地图

  • @param $lat 纬度
  • @param $lng 经度
    */

txMap_to_bdMap(lat,lat,lng){
let $x_pi = 3.14159265358979324 * 3000.0 / 180.0;
let $x = $lng;
let $y = $lat;
let z=Math.sqrt(z =Math.sqrt(x * $x + $y * y)+0.00002Math.sin(y) + 0.00002 * Math.sin(y * $x_pi);
let theta=Math.atan2(theta = Math.atan2(y, x)+0.000003Math.cos(x) + 0.000003 * Math.cos(x * $x_pi);
$lng = zMath.cos(z *Math. cos(theta) + 0.0065;
$lat = zMath.sin(z * Math.sin(theta) + 0.006;
return array(‘lng’+lng,lat+lng,'lat'+lat);
}

相关标签: 微信小程序 js