不同坐标体系的转换

地图坐标转化

  • 一、主流地图商使用的坐标体系
    • GCJ-02
    • GPS,WGS-84
  • 二、微信小程序中使用
    • 百度转腾讯
    • 腾讯转百度

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

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

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

GCJ-02

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

GPS,WGS-84

	原始坐标体系

二、微信小程序中使用

百度转腾讯

bdMap_to_txMap( l a t , lat, lat,lng){
let $x_pi = 3.14159265358979324 * 3000.0 / 180.0;
let $x = $lng - 0.0065;
let $y = $lat - 0.006;
let z = M a t h . s q r t ( z = Math.sqrt( z=Math.sqrt(x * $x + $y * y ) − 0.00002 ∗ M a t h . s i n ( y) - 0.00002 * Math.sin( y)0.00002Math.sin(y * $x_pi);
let t h e t a = M a t h . a t a n 2 ( theta = Math.atan2( theta=Math.atan2(y, x ) − 0.000003 ∗ M a t h . c o s ( x) - 0.000003 * Math.cos( x)0.000003Math.cos(x * $x_pi);
$lng = z ∗ M a t h . c o s ( z * Math.cos( zMath.cos(theta);
$lat = z ∗ M a t h . s i n ( z * Math.sin( zMath.sin(theta);
return array(‘lng’+ l n g , ′ l a t ′ + lng,'lat'+ lng,lat+lat);
},

腾讯转百度

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

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

txMap_to_bdMap( l a t , lat, lat,lng){
let $x_pi = 3.14159265358979324 * 3000.0 / 180.0;
let $x = $lng;
let $y = $lat;
let z = M a t h . s q r t ( z =Math.sqrt( z=Math.sqrt(x * $x + $y * y ) + 0.00002 ∗ M a t h . s i n ( y) + 0.00002 * Math.sin( y)+0.00002Math.sin(y * $x_pi);
let t h e t a = M a t h . a t a n 2 ( theta = Math.atan2( theta=Math.atan2(y, x ) + 0.000003 ∗ M a t h . c o s ( x) + 0.000003 * Math.cos( x)+0.000003Math.cos(x * $x_pi);
$lng = z ∗ M a t h . c o s ( z *Math. cos( zMath.cos(theta) + 0.0065;
$lat = z ∗ M a t h . s i n ( z * Math.sin( zMath.sin(theta) + 0.006;
return array(‘lng’+ l n g , ′ l a t ′ + lng,'lat'+ lng,lat+lat);
}

你可能感兴趣的:(微信小程序,js,javascript,百度,腾讯,搜狗)