關于前端地圖開發(fā)的坐標系轉化

關鍵詞:百度圖片坐標和騰訊地圖坐標轉換 | 關于坐標系的學習
時間:2016-6-2 10:13
作者:三月懶驢

認識坐標系

什么叫做坐標系塞弊?地理學得一般般岩睁。唯有在網(wǎng)上隨便找一篇文章糊弄一下大家

地球是一個不規(guī)則橢圓體,GIS中的坐標系定義由基準面和地圖投影兩組參數(shù)確定绝淡,而基準面的定義則由特定橢球體及其對應的轉換參數(shù)確定靠娱。
基準面是利用特定橢球體對特定地區(qū)地球表面的逼近,因此每個國家或地區(qū)均有各自的基準面阴孟。
基準面是在橢球體基礎上建立的晌纫,橢球體可以對應多個基準面税迷,而基準面只能對應一個橢球體。
意思就是無論是谷歌地圖锹漱、搜搜地圖還是高德地圖箭养、百度地圖區(qū)別只是針對不同的大地地理坐標系標準制作的經(jīng)緯度,不存在準不準的問題哥牍,大家都是準的只是參照物或者說是標準不一樣毕泌。
*copy from:haotsp.com *

看完這段長長的文字其實說,你只需要知道地圖的坐標系有很多標準嗅辣!那我們來看看有哪些標準:

  1. WGS84 :谷歌地圖非中國地區(qū)使用這個標準(地球坐標系)
  2. GCJ02:騰訊 谷歌 高德地圖中國地圖使用這個標準(火星坐標系)
  3. BD09:只有百度在用撼泛,因為是百度自己在GCJ02的標準上加密的

這里插一句話。很多GPS芯片獲取經(jīng)緯度都是使用WGS84標準的澡谭,但是中國地理繪測總局規(guī)定了愿题,出版的地圖要按照GCJ02的標準來做。那么很多時候我們吐槽地圖地位不好,其實不能怪硬件設備差潘酗,只不過有一些地圖木有對獲取的坐標系進行轉化就定位造就的超過民用GPS偏差10米的標準杆兵。

解決實際問題

在項目中遇到一個很奇葩的需求,用到百度地圖里面的數(shù)據(jù)仔夺,但是卻要在騰訊地圖去顯示琐脏,于是乎,對于這個坐標系的轉換的必需的缸兔。

用戶面向騰訊地圖日裙,獲取到的坐標系是GCJ02,但是騰訊地圖的API里面惰蜜,只能把BD09坐標系轉換為GCJ02坐標系阅签,而沒有把GCJ02坐標系轉換為BD09坐標系去。因此蝎抽,這個得自己手動寫個轉換政钟。

PS:有的童鞋說,百度地圖的API支持把GCJ02轉成BD09的API啊樟结,但是作為一個有理想的前端养交,當然不希望為了這么一個接口而引入多一個SDK。

以下為轉換算法瓢宦,是不是很簡單……比起引入一個龐大的SDK方便多了吧碎连。

var GCJ02_To_BD09 = function(lng,lat){
  var x_pi = 3.14159265358979324 * 3000.0 / 180.0
  var x = lng, y = lat
  var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi)
  var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi)
  var newLng = z * Math.cos(theta) + 0.0065
  var newLat = z * Math.sin(theta) + 0.006
}

隨手再寫個BD09轉化回去GCJ02的

var BD09_To_GCJ02 = function(lng,lat){
  var x = lng - 0.0065, y = lat - 0.006
  var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi)
  var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi)
  lng = z * Math.cos(theta)
  lat = z * Math.sin(theta)
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市驮履,隨后出現(xiàn)的幾起案子鱼辙,更是在濱河造成了極大的恐慌,老刑警劉巖玫镐,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倒戏,死亡現(xiàn)場離奇詭異,居然都是意外死亡恐似,警方通過查閱死者的電腦和手機杜跷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來矫夷,“玉大人葛闷,你說我怎么就攤上這事∷海” “怎么了淑趾?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長忧陪。 經(jīng)常有香客問我扣泊,道長驳概,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任旷赖,我火速辦了婚禮顺又,結果婚禮上,老公的妹妹穿的比我還像新娘等孵。我一直安慰自己稚照,他們只是感情好,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布俯萌。 她就那樣靜靜地躺著果录,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咐熙。 梳的紋絲不亂的頭發(fā)上弱恒,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音棋恼,去河邊找鬼返弹。 笑死,一個胖子當著我的面吹牛爪飘,可吹牛的內容都是我干的义起。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼师崎,長吁一口氣:“原來是場噩夢啊……” “哼默终!你這毒婦竟也來了?” 一聲冷哼從身側響起犁罩,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤齐蔽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后床估,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體含滴,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年顷窒,在試婚紗的時候發(fā)現(xiàn)自己被綠了蛙吏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片源哩。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡鞋吉,死狀恐怖,靈堂內的尸體忽然破棺而出励烦,到底是詐尸還是另有隱情谓着,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布坛掠,位于F島的核電站赊锚,受9級特大地震影響治筒,放射性物質發(fā)生泄漏。R本人自食惡果不足惜舷蒲,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一耸袜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧牲平,春花似錦堤框、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至昂儒,卻和暖如春沟使,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背渊跋。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工腊嗡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拾酝。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓叽唱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親微宝。 傳聞我的和親對象是個殘疾皇子棺亭,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內容