開篇的話
“相同的經緯度坐标在地圖上顯示會有偏移”您有沒有遇到相似的情形?各種坐标體系之間如何轉換?到底有哪些坐标體系?什麼是火星坐标?
GPS是怎麼定位坐标的
現在全球有四個衛星定位系統:美國的全球定位系統GPS(Global Positioning System),
俄羅斯的格洛納斯GIONASS,
歐盟的伽利略系統,
我國的北鬥。
每個系統都有幾個部分:星載部分、控制部分、以及用戶部分。每個衛星在運行中,發送電磁波信息、包含時間、位置等等,用戶部分根據定位裝置接收信号,然後進行方程解算,由于要更多的解因子,所以GPS系統下,一般三顆衛星信号鎖定後才能計算三差解,也就是粗略定位結果了。
一、坐标體系
常見的坐标體系有哪些:
1)GPS坐标(wgs84)
wgs84 :WorldGeodetic System 1984,(全世界最流行的基準标準系統) ,是由美國國防部制圖局建立,于1987年取代了當時GPS所采用的坐标系統(WGS-72坐标系統)。
WGS-84坐标系的坐标原點位于地球的質心,Z軸指向BIHl984.0定義的協議地球極方向,X軸指向BIHl984.0的起始子午面和赤道的交點。
GPS系統直接通過衛星定位獲得的坐标,一般由經度和緯度兩個參數組成,也叫經緯度。由0°經線和赤道确定,地球從格林尼治向東、西各劃分180個經度;從赤道起,向南、北也各劃分90個緯度。單位是六十進制(度:分:秒,字母表示方向)或十進制(正/負十進制度)的。
谷歌地球,googleearth上取到的,是GPS坐标,而且是度分秒形式,如圖:
2)GCJ02
GCJ-02是國内最廣泛使用的坐标體系。是由中國國家測繪局制訂的地理信息系統的坐标系統。
它是一種對經緯度數據的加密算法,即加入随機的偏差,就是對真實坐标系統進行人為的加偏處理,按照特殊的算法,将真實的坐标加密成虛假的坐标,而這個加偏并不是線性的加偏,所以各地的偏移情況都會有所不同。而加密後的坐标也常被人稱為火星坐标系統。
國内出版的各種地圖系統(包括電子形式),必須至少采用GCJ-02對地理位置進行首次加密。所有的電子地圖、導航設備,都需要加入國家保密插件:第一步,地圖公司測繪地圖,測繪完成後,送到國家測繪局,将真實坐标的電子地圖,加密成“火星坐标”,這樣的地圖才是可以出版和發布的,然後才可以讓GPS公司處理。第二步,所有的GPS公司,隻要需要汽車導航的,需要用到導航電子地圖的,都需要在軟件中加入國家保密算法,将COM口讀出來的真實的坐标信号,加密轉換成國家要求的保密的坐标。這樣,GPS導航儀和導航電子地圖就可以完全匹配,GPS也就可以正常工作了。
全球最強搜索引擎谷歌GOOGLE作者:Simons Lo 著
當當
比如谷歌中國,騰訊,高德都在用這個坐标體系。
3)其他坐标體系
一般都是由GCJ-02進過偏移算法得到的。
這種體系就根據每個公司的不同,坐标體系都不一樣了。
比如,圖吧、百度和搜狗就使用自己的坐标體系,與其他坐标體系不兼容。百度定位SDK可以返回三種坐标系,分别是bd09, bd09ll和gcj02,其中bd-09能無偏差地顯示在百度地圖上。bd09ll 百度又在gcj02的技術上将坐标加密就成了bd09ll坐标。
現在,您明白了嗎:
在各種web端平台,或者高德、騰訊、百度上取到的坐标,都不是GPS坐标,都是GCJ-02坐标,或者自己的偏移坐标系。
比如,你在谷歌地圖API,高德地圖API,騰訊地圖API上取到的,都是GCJ-02坐标,他們三家都是通用的,也适用于大部分地圖API産品,以及他們的地圖産品。
例外,百度API上取到的,是BD-09坐标,隻适用于百度地圖相關産品。
例外,搜狗API上取到的,是搜狗坐标,隻适用于搜狗地圖相關産品。
例外,谷歌地球,googleearth上取到的,是GPS坐标,而且是度分秒形式的經緯度坐标,在國内不允許使用,必須轉換為GCJ-02坐标。
二、坐标格式與轉換
1)坐标格式
A、經緯度。這個是球面坐标,對于北京來說,就是(116.388171,39.935961)這樣的坐标。比如騰訊、高德、百度都是這樣的經緯度坐标。谷歌是經緯度順序寫反的經緯度坐标。
所有坐标體系的原點,都是非洲,如圖:
B、墨卡托坐标。是一種投影坐标, 又稱為高斯-克呂格投影(Gauss-KrugerProjection),它不是用經緯度來表示的,數字一般都比較大,像這樣的:(215362.00021333335, 99526.00034912192),多用于航海圖航空圖。墨卡托坐标主要用于程序的後台計算。直線距離,加加減減計算方便。比如搜狗地圖API就是直接使用的墨卡托坐标。
2)度分秒坐标與經緯度的轉換
比如,在GPS記錄儀,或者google earth上采集到的是60進制度分秒形式113°50'40.45,那麼應該怎樣換算?
113.8445694444445=113 50/60 40.45/3600
反過來,知道經緯度113.844569444444怎樣換算成度分秒呢?
度=113
分=(113.8445694444445-度)*60,取整數
秒=(0.8445694444445-分*60)*3600
3)GPS點的經緯度坐标小數點後哪一位是精确到米?
小數度:
經度0.00001度(十萬分之一度,0°0'0.036"),在赤道上對應的地球表面距離約為1米稍多,但在南北極極點上,則是0米.
緯度0.00001度在地球表面任意地方對應的地球表面距離都是大約1米稍多.
度分秒:
對于緯度:一秒==30.8米,一分==1.85公裡.一度==110公裡
對于精度,精度的差值随着緯度的增加而減少在赤道附近兩者是相同的,在其他地方是30.8X緯度的餘弦
4)GPS 坐标與實際距離的轉換
我想知道google地圖中 GPS坐标的與實際距離的轉換
例如 點p1(28.18745,121.98767)到p2(28.129762,121.91891)直線段的距離在實際中沿球面是多少距離
d=sqrt((x1-x2)*(x1-x2) (y1-y2)*(y1-y2))
5)坐标偏移
如果您的坐标在轉換之後,還有偏移,那麼考慮以下幾個方面。
A、原始坐标系弄錯,比如以為自己是GPS坐标,但其實已經是GCJ-02坐标。
解決方案:請确保采集到的數據是哪個坐标體系,需要轉換到哪個坐标系,再進行坐标轉換。
B、原始坐标準确度不夠
解決方案:如果您是GPS坐标,請确保采集GPS數據時,搜到至少4顆以上的衛星。并且GPS數據準不準,還取決于周圍建築物的高度,越高越不準,因為有遮擋。
如果本來就是GCJ-02坐标,在不同地圖放大級别的時候,看到的地方可能不一樣。比如你在地圖級别4(國家)取到的坐标,放大到地圖12級(街道)時,坐标就偏了。請确保在地圖最大放大級别時,拾取坐标。
C、度分秒的概念混淆
比如,在googleearth上采集到的是39°31'20.51,那麼應該這樣換算,31分就是31/60度,20.51秒就是20.51/3600度,結果就是39 31/60 20.51/3600 度。
D、經緯度順序寫反了
有些公司(比如高德,百度,騰訊)是先經度,再緯度,即Point(lng, lat)。但谷歌坐标的順序恰好相反,是(lat, lng)。
三、常見的一些問題
1)說“經緯度投影”對嗎?
經緯度表示的是地理坐标系(單位是度),不是投影坐标系(單位是米),兩者放一起明顯不妥。
2)大地坐标系與地理坐标系有何不同?
大地坐标系和地理坐标系都是經緯度表示的坐标系,本身并不包含投影信息,很多時候,這兩種說法都是相同的。
3)為什麼有地理坐标系和投影坐标系之分?
由于經緯度的度數不對應某一标準長度,因此無法精确測量距離或面積,也難以在平面地圖或計算機屏幕上顯示數據。在使用許多(不是全部)GIS 分析和制圖應用程序時,經常需要由投影坐标系提供的更穩定的平面坐标框架。與地理坐标系不同,在二維空間範圍内,投影坐标系的長度、角度和面積恒定。投影坐标系始終基于地理坐标系,而後者則是基于球體或旋轉橢球體的。在投影坐标系中,通過格網上的 x,y 坐标來标識位置,其原點位于格網中心。
4)通常所說的西安80,北京54是指什麼?
GIS中的坐标系統定義由基準面和地圖投影兩組參數确定,基準面對應一個參考橢球體,我們常說的北京54、西安80、國家大地2000坐标系都是指其參考橢球體。基于這種橢球體,我們能定義出大地坐标系和投影坐标系。隻說一個西安80是不能确定坐标系統的,因為沒有說明有沒有投影及投影信息。如果不指明投影方式,則認為西安80、北京54的表現形式為大地坐标,而不是投影平面直角坐标。
5)什麼都是高斯投影 ?
高斯-克呂格投影屬于橫軸墨卡托投影,能小範圍内保持形狀不變,因此被國内普遍采用,但在表示小比例尺數據時,這種投影明顯不合适。就中國來說,一般50萬以上比例尺采用高斯投影,50萬以下采用蘭伯特投影。數據用途不同,具體的投影方式各有不同,有的是為了保持面積不變,有的是為了保持形狀不變。另一種世界常用的投影是UTM(通用墨卡托投影),高斯-克呂格投影是“等角橫切橢圓柱投影”,投影後**經線保持長度不變,即比例系數為1;UTM投影是“等角橫軸割圓柱投影”,圓柱割地球于南緯80度、北緯84度兩條等高圈,投影後兩條割線上沒有變形,**經線上長度比 0.9996。
6)北京54,西安80,WGS84,國家2000 有何不同?
54和80本質上是參心坐标系,大地原點分别在蘇聯和西安,原點是參考橢球的幾何中心,這類坐标難以表達高度信息,精度信息等也不夠,正被淘汰。 84和2000本質上是地心坐标系,即以地球質量中心作為坐标系原點。 54的橢球體長半軸半徑是6378245米,80為6378140米,84和2000坐标系一樣,都是6378137米。國家最新的2000坐标系和WGS84據說在厘米級都是一樣的,但和80坐标在高緯度地區誤差達十幾倍。
7) Google、Microsoft、ArcGIS提供的地圖服務分别采用了什麼坐标系?
現在都統一為了WebMercator,即正軸墨卡托投影,和UTM(常規墨卡托)投影的主要區别是為了實現上的方便,把地球模拟為球體而非橢球體,精度理論上差别0.33%,比例尺大時基本可以忽略。同時緯度範圍變成了(-85,85),南北極顯示不了,但不影響正常使用,這樣也減少了切圖數量。
8)ArcGIS的空間參考與坐标系統?
ArcGIS的空間參考信息SpatialReference,不僅包含了坐标系統的定義,還包括容差Tolerance和分辨率Resolution等,通常由Prj文件表示。ArcGIS中的坐标系統分地理坐标系和投影坐标系,其中投影坐标系也一定包含一個地理坐标系,反之不然。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!