地理位置研發二三事

2021-02-24 曲水流觴TechRill


如果你要開發一個基於 GPS 甚至 IP 地址進行地址定位的功能時,你需要了解一下這些基本知識點,本人對真正的測繪專業不在行,如有疏漏歡迎指正。

GPS 常用坐標系#1 WGS-84 國際標準: Google Earth、或者GPS模塊使用該標準

目前 GPS 的國際標準坐標系統, GPS 所發布的星曆參數就是基於此坐標系統的。WGS-84 坐標系統的全稱是World Geodical System-84(世界大地坐標系-84),它是一個地心地固坐標系統。WGS-84 坐標系統由美國國防部製圖局建立,於1987 年取代了當時GPS所採用的坐標系統―WGS-72坐標系統而成為GPS 的所使用的坐標系統。WGS-84 坐標系的坐標原點位於地球的質心,Z 軸指向BIH1984.0 定義的協議地球極方向,X 軸指向BIH1984.0 的啟始子午面和赤道的交點,Y 軸與X 軸和Z 軸構成右手系。

Google Earth屬於衛星照片,它不是地圖,所以不受天朝測繪法的約束,因此Google Earth的坐標是真實坐標。

#2 GCJ-02 中國坐標偏移標準: Google Map、高德、騰訊使用

國測局02年發布的坐標體系。又稱 「火星坐標」。在中國,必須至少採用GCJ-02對地理位置進行 首次 加密。比如谷歌,騰訊,高德都在用這個坐標體系。GCJ-02是國內最廣泛使用的坐標體系,也是在正常坐標系下經過加入隨機誤差進行脫密處理後的坐標系。

偏移的起因:
天朝測繪局以國家安全為理由,用法律的形式對所有在天朝發行的地圖類產品加了強制性規範,要求所有地圖類產品都必須使用國家測繪局的一種加偏移的算法,對地圖的真實坐標進行加偏移處理,之後才可能通過審批准許上市。因此,天朝的所有官方及商用地圖的坐標都是偏移的,這種偏移屬於非線性的,偏移量在300至500米不等,偏移方向也不定。這種加過偏移的地圖坐標就是所謂「火星坐標」。

但是實際上,這種偏移的算法已經被破解了,隨便可以搜索得到,那為什麼還要這個偏移,豈不是掩耳盜鈴?
知乎上一位同學說的在理:

「因為這是原則問題,就比如說,有人開發了軟體,別人破解了,然後你問了,既然有破解的為什麼大家還要買收費的,一個道理。你破解是你的事情,這件事情犯法了,不要把犯法的事情當作理所應當。」

#3 BD-09 百度坐標偏移標準: Baidu Map / Baidu SDK 使用

百度自己定義的坐標體系,其實就是在火星坐標上來個二次加密而已。

如果使用的是百度sdk那麼可以獲得百度坐標(BD-09)或者火星坐標(GCJ-02), 默認是BD-09
如果使用的是ios的原生定位庫,那麼獲得的坐標是WGS-84
如果使用的是高德sdk,那麼獲取的坐標是GC-J02

註:搜狗、圖吧等也是自己的坐標體系標準,和百度類似。

上面三種坐標體系是按照偏移加密來分別的,開發需要特別關心互相之間的轉換,如果有多重數據來源的話。
接下來的分類是球面和平面坐標:

#1 經緯度

球面坐標,對於北京來說,就是(116.38817139.935961)這樣的坐標。比如騰訊、高德、百度都是這樣的經緯度坐標。谷歌是經緯度順序寫反的經緯度坐標。
如果是度分秒坐標,需要進行轉換,才能得到上方的經緯度坐標。

這裡可以看到經緯度http://api.map.baidu.com/lbsapi/getpoint/index.html


#2 墨卡託坐標

平面坐標,相當於是直線距離,數字一般都比較大,像這樣的。(215362.00021333335 99526.00034912192)
墨卡託坐標,主要用於程序的後臺計算。直線距離嘛,加加減減幾乎計算方便。
搜狗地圖API就是直接使用的墨卡託坐標。

什麼是墨卡託投影?
墨卡託(Mercator)投影,又名「等角正軸圓柱投影」,荷蘭地圖學家墨卡託(Mercator)在1569年擬定,假設地球被圍在一個中空的圓柱裡,其赤道與圓柱相接觸,然後再假想地球中心有一盞燈,把球面上的圖形投影到圓柱體上,再把圓柱體展開,這就是一幅標準緯線為零度(即赤道)的「墨卡託投影」繪製出的世界地圖。從球到平面,有個轉換公式,這裡就不再羅列。

做個小實驗,以東方明珠為參照物,對比下百度地圖,騰訊地圖,Google Map和Google Earth的經緯度偏差:

百度拾取坐標系統

直接搜索東方明珠,顯示的經緯度值在右上角:
121.506271,31.245414

騰訊坐標拾取系統

選擇上海,搜索東方明珠,顯示的經緯度為:
31.239780,121.499680

Google Map

搜索東方明珠,在地圖上右鍵,選擇「這裡有什麼?」,會顯示經緯度值為(谷歌的經緯度是顛倒的):
31.239900,121.499723

Google Earth

搜索到東方明珠,在下方顯示的經緯度是以度分秒顯示的,31° 14′ 30.63″ 121° 29′ 42.61 ″ 找個轉換工具變為如下的經緯度數:
31.241841666666666,121.49516944444444

將經緯度分別放到對方的系統裡搜索,可以發現是有偏移的


Google經緯度 In Baidu.PNG


Baidu經緯度 In Google.PNG


Google Earth in Google Map.PNG

結論:百度地圖自己的偏移加密方式, 谷歌地圖和騰訊地圖都是GCJ-02標準,谷歌Earth是國標的原始GPS經緯度。

IP 地址定位技術
# IP定位的原理

簡而言之就是通過IP位址來確定地理位置,它的基本原理是,利用IP設備的名字、註冊信息或時延信息等來估計其地理位置。

定位算法設計的基本原則是:在保證定位精度的前提下,儘量減少測量開銷,同時兼具良好的擴展性,並能保護用戶隱私。
最初的定位算法通過向DNS伺服器查詢或者挖掘隱含在主機名中的信息來推測IP設備的地理位置之後,一些定位算法根據時延與地理距離之間的線性關係來估測主機位置,並通過拓撲信息來減小定位誤差。近年來,基於概率的定位算法重新成為一個研究熱點,通過尋找時延與地理距離的分布規律來進行定位。雖經不斷改進,但這兩類算法都不能精確地定位,因此,一些綜合的定位算法使用了上述兩類方法來進行交叉驗證以提高精度.

通常來說,IP定位最早是通過運營商實現,每個運營商申請到的IP段,在某個範圍內使用。因此早期只能是國家為單位的基礎數據。
對於比較大的國家,就進一步劃分,比如,中國電信固定將某些IP分配某些機房使用,而這些機房則具備地域屬性,因此就可以知道某些IP的位置是哪個省市區。再進一步,網上有種測算路由的方式進行定位,就是由大範圍逐個跳轉,跟蹤路由。從而對比找出IP所在的小範圍。

# IP定位的精度

隨著大數據發展,像百度收集了大量數據,數據實時分析。因此可以將手機收集到的精準GPS數據和當前所用IP數據成對上報給後端伺服器,運算過之後,就可以得出某個IP的分布範圍數據。

如今,網絡鋪設已經有個相當多的特性,比如:
直接給用戶分配公網IP;
為了緩解IP資源不足問題,給到用戶的是私網IP,用戶最終用代理的IP池的IP訪問公網;
IP資源利用率過低,幾乎是一個省份用一個IP池進行代理給用戶的手機網絡上網;

因此定位的誤差從幾十米到整個省份不等,但就目前類似百度的實力來說,定位到行政市一級理論上是完全沒有問題的,甚至很多情況已經可以精準到幾十米的程度了。

# IP定位的API

類似的免費IP定位服務有很多成熟API,比如 阿里雲市場,淘寶IP庫,百度開發者平臺/百度API Store,純真IP庫等等,若希望穩定服務,也有對應的收費企業版,可選範圍很多,精度都是到行政市一級的。

目前個人傾向於阿里雲市場的免費IP庫 + 百度開發者平臺雙渠道接入,隨時可以切換。

下方的一個在線系統就調用了百度開發平臺的IP精準定位服務,在PC端打開瀏覽器就可以定位到你的具體位置,偏差很小。
https://www.opengps.cn/Data/IP/IPHighAccuracy.aspx
可惜的是,目前該服務已關閉(http://lbsyun.baidu.com/index.php?title=webapi/ip-api)。

參考文獻:
[IP定位技術的研究]:
http://www.jos.org.cn/html/2014/7/4621.htm
[openGPS.cn - 高精度IP定位原理,定位誤差說明]:
http://blog.csdn.net/cuitang1031/article/details/52787772

如果覺得有用,歡迎打賞

相關焦點

  • 世界上有哪些國家地理位置非常差?
    有很多國家由於地理位置差,極大的阻礙了其發展,而這是在很多歷史事件中得到了證實的。俄羅斯俄羅斯最為嚴重的問題就是缺乏出海口,尋找到一個合適的出海口,早在彼得大帝時期就是其夢想。這也是後來俄羅斯不斷追求的戰略目標之一。但即使是在現在,俄羅斯的出海口依然很不理想。
  • 印度和中國這兩個國家,你覺得哪個國家的地理位置更好?
    地理位置是指地理事物的空間和時間關係,包括絕對位置和相對位置,地理位置其實無所謂好壞,不過從不同的角度來看,還是可以來比較一下事物之間的地理位置差異
  • 臺灣島的地理位置如何?適合大型海軍基地建設嗎?
    單從地理角度來講,臺灣島的位置優勢在整個亞太地區都能排得上行,這樣的位置優勢對於大型海軍基地建設的意義是非常大的。圖註:臺灣島地形剖面圖,東部海域的水深可達上千米,非常有利於戰略核潛艇基地的建設就臺灣島的具體地理環境來說的話,同樣十分適合建設大型海軍基地。
  • 技術乾貨 | 關於AV放大器購買和調校的二三事
    本期的「技術乾貨」欄目,我們採訪了在AV放大器領域擁有豐富工作經驗、對AV放大器的方方面都了解深入的專業人士——安橋資深培訓講師玄立翔Andy,來重點談談關於AV放大器購買和調校的二三事。PART 1 | 關於購買首先,AV放大器和音箱的搭配要優先考慮功率,通常AV放大器功率要大於音箱的功率。一般情況下,功放功率的一半+30W去搭配喇叭即可發揮出一定的效果。
  • 世界戰略位置最好的三個國家,誕生了三個超級大國
    對於一個國家來說,國家發展的前景大小,以及整個未來,很多時候,就在於其誕生時所獲得的基礎條件和戰略位置。如果基礎條件不好,戰略位置也不好,那麼基本上再怎麼努力,也是很難發展的。但是如果基礎條件優越,加上戰略位置優越,那麼國家很容易強大,很容易崛起。最典型下面這三個國家,堪稱世界戰略位置最好的三個國家了,為此都成為了超級大國。
  • 臺灣的地理位置到底有多麼重要?沒有臺灣,中國這隻雄雞就會瘸
    如今港澳臺三地,也只有臺灣還沒有回歸大陸,不過我相信未來會有這麼一天的。自古以來,中國就有一個統一的理念存在,準確來說,應該是從秦國一統六國開始,從那時候起,歷朝歷代莫不以統一天下為最終目標,如今我們同樣如此,我們現在之所以還叫做解放軍,其中一個重要的原因就是臺灣還沒有解放。
  • 《豎版世界地圖》改變你中美地理位置認知
    在郝曉光看來,北鬥二代覆蓋範圍的決策主要依據傳統橫版世界地圖展現的中美地理位置。在橫版地圖上,中美兩國位於太平洋兩岸,連接兩國的最短線路要跨越太平洋。事實上,兩國之間的最短線路要橫穿北極。郝曉光在論文中提到,北鬥二代是為了戰時當美國GPS系統對我國失效時用於我軍戰略武器的導航,所以北鬥二代覆蓋範圍向北擴展,關係到國家安全。2013年4月,在郝曉光第一次對北鬥二號方案提出建議七年後,他收到一份有關部門出具的應用證明:「……以獨特的視角,準確表達了中國與世界的地理關係。
  • 高中人文地理知識點:世界政治經濟地理格局
    著重表示各個國家的地理位置、管轄範圍、國界和領土輪廓。政治地圖演變的主要原因:國家間的政治和經濟衝突以及國際競爭。⑵第一次世界大戰及其影響(1914~1918):①大戰原因: 後起的美、德、日等國要求按實力重新瓜分世界。
  • 國際瞭望|GEOINT的地理原子 ——採用地理原子可以提高GEOINT決策支持能力
    這種地理空間數據通常使用不同的數據模型收集、處理和共享,從而導致了GEOINT社區中許多持久的挑戰,例如確保系統互操作性、執行數據融合以及向最終用戶提供通用作戰圖(COP)。地理原子(Geo-Atom)是一種地理空間數據模型,它定義了時空位置和屬性之間的關聯[1]。這個簡單的模型包含了離散對象(即矢量)和連續場(即光柵)數據,並且可以擴展為表示地球表面上幾乎任何特徵或現象[2]。
  • 臺灣島的軍事地理位置重要性,5個航母戰鬥群也比不了
    從全球地理位置影響力看,或許不能抵上10艘核航母,但是區域影響力至少抵上5個航母戰鬥群的影響力。最後,無論你的火力如何強大,你永遠無法擊沉一座島嶼。
  • 獨特的地理環境與英國民族國家的形成
    [3]二、地理環境對民族國家形成的影響在人類社會歷史早期的發展中,地理環境的影響可以說是決定性的。馬克思、恩格斯指出:「自然界起初是作為一種完全異己的、有無限威力的和不可制服的力量與人們對立的,人們同它的關係完全像動物同它的關係一樣,人們就像牲畜一樣服從它的權力。」[4]隨著生產力的發展,人類改造和認識自然能力的提高,自然環境的影響力削弱,但是其對人類社會發展的影響仍然不可忽視。
  • 國防部:臺灣的事是中國的事,不關日本什麼事
    日臺地理位置接近,臺若出事,日亦無法置身事外。日防衛副大臣中山泰秀稱,臺灣有事就是日本有事。請問中方對此有何評論?國防部新聞發言人吳謙回應稱,日本防務高官一再炒作所謂「中國軍事威脅」,粗暴幹涉中國內政,危害中國主權,中方對此表示強烈不滿和堅決反對。中國堅持國防建設和經濟建設協調發展方針,國防支出公開透明,開支水平合理適度。
  • 海南島的軍事地理(續1:海南島戰役)
    一、共軍的林彪自陷廣州之後,以迅雷不及掩耳的神速進軍,兩個地區均陷於敵,敵決乘我之不備,迅速渡海作戰,解決戰局;二、海南現為川、滇、黔我軍的戰略空運基地,形成了軍事上重要的戰略地位,林軍為了迅速進軍佔領海南,以策劉伯承共軍進入川、滇、黔的聲援;三、據報共軍於沿海大徵船舶,集中於湛江、外羅、海安、烏石沿海,有積極渡海作戰的準備,利用季候,伺機渡海,此為必然之勢;四、瓊州海峽最近距離為由徐聞之海安、烏石至海口
  • 如果只考慮地理位置,全世界哪個國家最難入侵?你可能猜測不到
    這樣來看,只有這個國家最符合了,它既是世界上地理位置最危險的國家,同時也是最安全的國家,這個國家就是蒙古。網上有一句話很經典,世界上有兩個國家誰也打不過,一個是美國一個是蒙古,美國是誰也打不過,蒙國同樣也是誰也打不過。美國是超級強國,軍事實力一騎絕塵,誰也打不過。但是,僅有7名海軍的蒙古,怎麼就誰也打不過了?
  • 回味高考題 | 我國1955年地理高考試題
    三、(每題15分,共45分)(東北區本屆高中畢業生只做兩題,中國地理題    25分,外國地理題20分,共45分) 二、填圖:(每個地名2分,共30分)    1.在中國空白圖內適當的位置上填出:(中國空白圖,與正題同,此處略)
  • 高三地理模擬訓練46答案及解析
    14.依據:海上地理位置重要,飽受戰亂;木質結構與易燃紅瓦易引發火災;位於西太平洋沿岸,常年受颱風和地震的威脅;時間久遠工匠稀少,技術傳承困難;特殊木材與紅漆等維修村料日益缺乏。第9題,依雲小鎮位於湖南岸,雪山應該位於勃朗峰或阿爾卑斯山上,小鎮、雪山都位於圖中的湖的南側;要拍攝到湖水、小鎮、雪山,拍攝者的位置應該在湖北岸甲、乙處;陽光夏季更充足,因此最佳的時間和角度是夏季、乙處。B正確。
  • 二代機如何改成三代機?— 臺灣一張戰機研發圖片展示一切秘密
    文 | 大水來戰鬥機有多難研製,這是很多中小國家難於體會的,尤其是經濟實力不足,工業基礎的薄弱國家來說,更是難於頂天,原因很簡單,研發一款戰鬥機需要在氣動
  • 臺灣首顆自主研發衛星赴美 未來靠它監視大陸?
    「中央大學」太空所副教授趙吉光還稱,過去「福衛一號」到「三號」都是發包給境外,再運回臺灣進行整合測試,而「福衛五號」基本上組件、次系統都是臺灣製造。他透露,臺灣下一顆升空的將是有12顆小衛星與一顆主衛星的「福衛七號」,預計明年升空。「福衛五號」將延續「福衛二號」的遙測任務。
  • 距離赤瓜礁僅4公裡的鬼喊礁地理位置有多重要?為什麼當年不一起收回?
    赤瓜礁和鬼喊礁我們先來看看赤瓜礁和鬼喊礁的地理位置,赤瓜礁位於南沙九章群礁的西南端,是一座為幹出礁,赤瓜礁也位於南沙九章群礁的西南端,是一座珊瑚礁。不過赤瓜礁在九章群礁西南端的南邊,而鬼喊礁在九章群礁西南端的北邊,赤瓜礁西北邊距鬼喊礁約為1.7海裡,相當於3.1484公裡,非常之近。近到什麼程度呢?
  • 二代機如何改成三代機?對岸一張戰機研發圖片,展示一切秘密
    戰鬥機有多難研製,這是很多中小國家難於體會的,尤其是經濟實力不足,工業基礎的薄弱國家來說,更是難於頂天,原因很簡單,研發一款戰鬥機需要在氣動