日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

百度、谷歌高德等网络地图经纬度偏差纠正以及相关坐标系问题

發(fā)布時間:2023/12/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 百度、谷歌高德等网络地图经纬度偏差纠正以及相关坐标系问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

百度、谷歌高德等網(wǎng)絡(luò)地圖經(jīng)緯度偏差糾正以及相關(guān)坐標系問題

? (2014-04-29 21:41:23) 轉(zhuǎn)載
標簽:?

谷歌地圖

?

百度地圖

?

坐標偏移計算

?

火星坐標

分類:?GIS
根據(jù)經(jīng)驗得到的: (1)百度地圖的差別是(0.01185,-0.00328)
如果百度地圖的經(jīng)緯度是(x,y)實際的應(yīng)該是(x,y)+(-0.01185,-0.00328)=(x-0.01185,y-0.00328
(2)google Map的差別是(0.0143,-0.014) 如果用getscreen截圖,如果要截的范圍為(x,y),輸入getscreen的為(x-0.0143,y+0.014). 參見:http://blog.sina.com.cn/s/blog_47522f7f0101e43b.html 后來經(jīng)過自己驗證,的卻差不多。 下面講一下網(wǎng)絡(luò)發(fā)布的地圖的偏差問題: 參見微信上高德LBS應(yīng)用開發(fā),原創(chuàng)的一篇帖子:http://mp.weixin.qq.com/s?__biz=MzA5MDE4MDMyOQ==&mid=200196710&idx=1&sn=1c455262dc9164b50d9af279b39fc689&uin=MjEzNjQ5MzMwMQ==

摘要:各種坐標體系之間如何轉(zhuǎn)換?到底有哪些坐標體系?什么是火星坐標?為什么我的坐標在地圖上顯示會有偏移?本文詳細解答以上問題。最后給出坐標拾取工具。

一、坐標體系
首先我們要明白,開發(fā)者能接觸到哪些坐標體系呢?
第一種分類:
1、GPS,WGS-84,原始坐標體系。一般用國際標準的GPS記錄儀記錄下來的坐標,都是GPS的坐標。很可惜,在中國,任何一個地圖產(chǎn)品都不允許使用GPS坐標,據(jù)說是為了保密。GPS坐標形式如圖,度分秒形式的經(jīng)緯度:

2、GCJ-02,國測局02年發(fā)布的坐標體系。又稱“火星坐標”。在中國,必須至少使用GCJ-02的坐標體系。比如谷歌,騰訊,高德都在用這個坐標體系。GCJ-02也是國內(nèi)最廣泛使用的坐標體系

3、其他坐標體系。一般都是由GCJ-02進過偏移算法得到的。這種體系就根據(jù)每個公司的不同,坐標體系都不一樣了。比如,百度和搜狗就使用自己的坐標體系,與其他坐標體系不兼容。


第二種分類:

首先明白,所有坐標體系的原點,都是非洲。

1、經(jīng)緯度。這個是球面坐標,對于北京來說,就是(116.38817139.935961)這樣的坐標。比如騰訊、高德、百度都是這樣的經(jīng)緯度坐標。谷歌是經(jīng)緯度順序?qū)懛吹慕?jīng)緯度坐標。

如果是度分秒坐標,需要進行轉(zhuǎn)換,才能得到這樣的經(jīng)緯度坐標。詳見坐標轉(zhuǎn)換。

2、墨卡托坐標。平面坐標,相當于是直線距離,數(shù)字一般都比較大,像這樣的。(215362.0002133333599526.00034912192)

墨卡托坐標,主要用于程序的后臺計算。直線距離嘛,加加減減幾乎計算方便。

搜狗地圖API就是直接使用的墨卡托坐標。


二、坐標轉(zhuǎn)換

在各種web端平臺,或者高德、騰訊、百度上取到的坐標,都不是GPS坐標,都是GCJ-02坐標,或者自己的偏移坐標系。

比如,你在谷歌地圖API,高德地圖API,騰訊地圖API上取到的,都是GCJ-02坐標,他們?nèi)叶际峭ㄓ玫?#xff0c;也適用于大部分地圖API產(chǎn)品,以及他們的地圖產(chǎn)品。

例外,百度API上取到的,是BD-09坐標,只適用于百度地圖相關(guān)產(chǎn)品。

例外,搜狗API上取到的,是搜狗坐標,只適用于搜狗地圖相關(guān)產(chǎn)品。

例外,谷歌地球,googleearth上取到的,是GPS坐標,而且是度分秒形式的經(jīng)緯度坐標。在國內(nèi)不允許使用。必須轉(zhuǎn)換為GCJ-02坐標。


1、度分秒坐標轉(zhuǎn)換為經(jīng)緯度

比如,在GPS記錄儀,或者googleearth上采集到的是39°31'20.51,那么應(yīng)該這樣換算,31分就是31/60度,20.51秒就是20.51/3600度,結(jié)果就是39+ 31/60 + 20.51/3600 度。


2、GPS轉(zhuǎn)換為GCJ-02坐標

谷歌,高德,騰訊的地圖API官網(wǎng)上,都不直接提供這樣的坐標轉(zhuǎn)換。如果要得到GCJ-02坐標,最好在他們的地圖上直接取點,或者通過地址解析得到。(這個工具我后續(xù)會貼出來的。我就愛干這樣的事情,哈哈。)


不過,在網(wǎng)上搜到了這樣的接口,該接口的type=1就是GPS轉(zhuǎn)到GCJ-02的墨卡托坐標。請大家對接口保密,哈哈。詳見:

http://map.sogou.com/api/documentation/javascript/api2.5/interface_translate.html#late_intro


3、GCJ-02與BD-09之間互轉(zhuǎn)

國測局GCJ-02坐標體系(谷歌、高德、騰訊),與百度坐標BD-09體系的轉(zhuǎn)換,在CSDN上有很詳細的講解:

http://blog.csdn.net/coolypf/article/details/8569813

轉(zhuǎn)換算法如下:

  • #include???
  • ??
  • const?double?x_pi?=?3.14159265358979324?*?3000.0?/?180.0;??
  • ??
  • void?bd_encrypt(double?gg_lat,?double?gg_lon,?double?&bd_lat,?double?&bd_lon)??
  • {??
  • ????double?x?=?gg_lon,?y?=?gg_lat;??
  • ????double?z?=?sqrt(x?*?x?+?y?*?y)?+?0.00002?*?sin(y?*?x_pi);??
  • ????double?theta?=?atan2(y,?x)?+?0.000003?*?cos(x?*?x_pi);??
  • ????bd_lon?=?z?*?cos(theta)?+?0.0065;??
  • ????bd_lat?=?z?*?sin(theta)?+?0.006;??
  • }??
  • ??
  • void?bd_decrypt(double?bd_lat,?double?bd_lon,?double?&gg_lat,?double?&gg_lon)??
  • {??
  • ????double?x?=?bd_lon?-?0.0065,?y?=?bd_lat?-?0.006;??
  • ????double?z?=?sqrt(x?*?x?+?y?*?y)?-?0.00002?*?sin(y?*?x_pi);??
  • ????double?theta?=?atan2(y,?x)?-?0.000003?*?cos(x?*?x_pi);??
  • ????gg_lon?=?z?*?cos(theta);??
  • ????gg_lat?=?z?*?sin(theta);??
  • }??

  • 不過也有更簡單的算法,線性算法(lat和lng是經(jīng)緯度,球面坐標):

    To_B是轉(zhuǎn)到百度,To_G是轉(zhuǎn)到GCJ-02。

    var TO_BLNG =function(lng){return lng+0.0065;};

    var TO_BLAT =function(lat){return lat+0.0060;};

    var TO_GLNG =function(lng){return lng-0.0065;};

    var TO_GLAT =function(lat){return lat-0.0060;};


    4、經(jīng)緯緯度轉(zhuǎn)成墨卡托

    網(wǎng)上也有詳細講解:

    http://bbs.esrichina-bj.cn/esri/viewthread.php?tid=78245

    內(nèi)容如下:

    在WebGIS的開發(fā)中經(jīng)常用到的地圖投影為Web墨卡托和WGS84,故歌地圖,bingmaps,百度地圖,mapabc,mapbar,以及ArcGISonline上的大部分地圖為Web墨卡托地圖,ArcGIS online上最開始發(fā)布的地圖投影為WGS84。
    在開發(fā)過程中很多時候會遇到不同坐標系之間互轉(zhuǎn)的問題,特別是底圖使用Web墨卡托,定位(GPS,wifi等)信號坐標為WGS84坐標的時候,那么通用解決方案就是寫一個坐標參考系的轉(zhuǎn)換庫,類似于proj4,但一般情況下很少用到那么多的參考系之間的互轉(zhuǎn),并且在客戶端實現(xiàn)或者調(diào)用proj4都是一件很困難或者麻煩的事情,大多數(shù)情況下我們實現(xiàn)Web墨卡托坐標與WGS84坐標互轉(zhuǎn)就可以了。
    下面是使用objective-c實現(xiàn)的Web墨卡托坐標與WGS84坐標互轉(zhuǎn)程序,當然也可以使用其他語言來實現(xiàn),使用起來比較簡單和方便。

    ?

    //經(jīng)緯度轉(zhuǎn)墨卡托
    -(CGPoint )lonLat2Mercator:(CGPoint ) lonLat
    {
    ???CGPoint? mercator;
    ??? double x =lonLat.x *20037508.34/180;
    ??? double y =log(tan((90+lonLat.y)*M_PI/360))/(M_PI/180);
    ??? y = y*20037508.34/180;
    ??? mercator.x =x;
    ??? mercator.y =y;
    ??? returnmercator ;
    }
    //墨卡托轉(zhuǎn)經(jīng)緯度
    -(CGPoint )Mercator2lonLat:(CGPoint ) mercator
    {
    ??? CGPointlonLat;
    ??? double x =mercator.x/20037508.34*180;
    ??? double y =mercator.y/20037508.34*180;
    ??? y=180/M_PI*(2*atan(exp(y*M_PI/180))-M_PI/2);
    ??? lonLat.x =x;
    ??? lonLat.y =y;
    ??? returnlonLat;
    }


    三、坐標偏移
    如果您的坐標在轉(zhuǎn)換之后,還有偏移,那么考慮以下幾個方面。
    A、原始坐標系弄錯,比如以為自己是GPS坐標,但其實已經(jīng)是GCJ-02坐標。
    解決方案:請確保采集到的數(shù)據(jù)是哪個坐標體系,需要轉(zhuǎn)換到哪個坐標系,再進行坐標轉(zhuǎn)換。
    B、原始坐標準確度不夠
    解決方案:如果您是GPS坐標,請確保采集GPS數(shù)據(jù)時,搜到至少4顆以上的衛(wèi)星。并且GPS數(shù)據(jù)準不準,還取決于周圍建筑物的高度,越高越不準,因為有遮擋。
    如果本來就是GCJ-02坐標,在不同地圖放大級別的時候,看到的地方可能不一樣。比如你在地圖級別4(國家)取到的坐標,放大到地圖12級(街道)時,坐標就偏了。請確保在地圖最大放大級別時,拾取坐標。
    C、度分秒的概念混淆
    比如,在googleearth上采集到的是39°31'20.51,那么應(yīng)該這樣換算,31分就是31/60度,20.51秒就是20.51/3600度,結(jié)果就是39+ 31/60 + 20.51/3600 度。
    D、經(jīng)緯度順序?qū)懛戳?br /> 有些公司(比如高德,百度,騰訊)是先經(jīng)度,再緯度,即Point(lng lat)。但谷歌坐標的順序恰好相反,是(latlng)。

    四、坐標拾取工具
    既然在國內(nèi)必須至少使用GCJ-02的坐標系,而GCJ-02,“火星坐標”是在國內(nèi)最廣泛使用的坐標體系。那么,我們就來看看,如何直接獲取到GCJ-02坐標唄。
    請大家把這段代碼保存到記事本里,然后后綴名改為.html,記得用UTF-8編碼來保存。然后雙擊這個文件,就能打開網(wǎng)頁了。

    火星坐標:?

    地址:?


    說明:

    1、鼠標滾輪可以縮放地圖,拖動地圖。

    2、點擊地圖,即可獲得GCJ-02的經(jīng)緯度坐標,地址。


    打開之后,是這樣的:


    點擊一下地圖,即可獲得GCJ-02坐標,地址:


    demo地址:http://zhaoziang.com/amap/picpoint.html

    總結(jié)

    以上是生活随笔為你收集整理的百度、谷歌高德等网络地图经纬度偏差纠正以及相关坐标系问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 无码gogo大胆啪啪艺术 | 成人一区在线观看 | 96在线视频 | 天天玩天天操 | 国产精品久久久久久久久久妞妞 | 男女一起插插插 | 日韩高清毛片 | 男人午夜剧场 | 久久精品a亚洲国产v高清不卡 | 久久精品免费观看 | 国产高清精品软件丝瓜软件 | 熟妇人妻中文字幕 | 亚洲av综合色区无码一区 | 久久亚洲AV无码 | 99热在线观看 | 九九精品在线视频 | 欧美成人三级在线视频 | 日本一区二区三区免费视频 | 一区二区三区亚洲 | 乡村性满足hd | 中国免费一级片 | 男生操女生逼逼 | 伊人丁香| www.白白色| 欧美a∨ | av黄色大片| 啪啪免费av | 亚洲精品乱码久久久久久蜜桃不卡 | 国产午夜精品一区二区三区四区 | 国产麻豆一精品一av一免费 | 性囗交免费视频观看 | 四川少妇xxx奶大xxx | 原来神马电影免费高清完整版动漫 | 中文字幕在线播放一区二区 | 日韩视频中文 | 欧洲亚洲女同hd | 91一区| 毛片链接| 少妇人妻丰满做爰xxx | 污网站在线观看免费 | 午夜寂寞福利 | jizz毛片| 亚洲不卡视频在线观看 | 亚洲区免费 | 色网站在线观看 | 亚洲第一精品在线 | 国产激情视频网站 | 亚洲欧洲无码一区二区三区 | 美女脱裤子让男人捅 | 国产精品久久国产愉拍 | 精品国精品国产 | 正在播放亚洲 | 中文字幕一区二区在线观看 | 美女毛片在线 | 懂色av一区二区三区四区五区 | 色视频免费看 | 在线观看黄av | 日少妇视频 | caoporen在线| 天堂中文网 | 亚洲国产成人久久 | 99精品视频免费在线观看 | 午夜偷拍福利 | 免费无码不卡视频在线观看 | 野外做受又硬又粗又大视频√ | 日韩一区三区 | 国产极品久久 | 少妇视频在线播放 | 大陆熟妇丰满多毛xxxⅹ | 亚洲香蕉在线观看 | 久久人人添人人爽添人人片 | 99这里有精品视频 | 欧美一区二区区 | 综合久久av | 日本一区二区欧美 | 国产精品国产精品国产专区蜜臀ah | 欧美男人又粗又长又大 | www.av在线播放 | 撸啊撸av | 中国字幕av| 好吊操这里只有精品 | 日本无遮挡边做边爱边摸 | 欧美一区不卡 | 日本伦理一区 | 国产毛片毛片毛片毛片毛片毛片 | 美女隐私无遮挡 | 欧美色视频在线观看 | 久久久久久av无码免费网站下载 | 久久伊人热| 韩日成人 | 色涩网站 | 欧美精品黄色 | 午夜久久福利 | 亚洲一区二区欧美 | 黄色网址链接 | 美女张开腿流出白浆 | 影音先锋波多野结衣 | 特大巨交吊性xxxx | 国产精品无码成人片 |