在這個神奇的國度里,我們總得學習一些有中國特色的東東,例如“火星坐標”。也許有人還不知道這是什么玩意,我就簡要介紹一下吧。 如果你有帶GPS模塊的智能手機,打開定位功能,然后訪問Google地圖。只要你身處中國大陸,你就會發現定位不準,大概有幾百米的偏差。然而運行一些導航軟件,你又會發現定位很準確,說明手機的GPS模塊確實是正常的。
這種現象是怎么造成的呢?答案是人為造成的。簡單來說,GPS模塊獲取到的坐標是WGS84坐標系的,中國政府出于種種目的的考慮,不允許中國的地圖使用國際通用的WGS84坐標系,而非要加上一些偏移,這樣的坐標系就俗稱“火星坐標系”。而Google地圖采用的也是加偏移過的火星坐標系,但GPS模塊傳給它的坐標卻沒有加偏移,于是就出現幾百米的偏差了。這樣的后果就是沒法做需要很高精度的地理位置的應用了,就像那個悲劇的Google地圖一樣,你迷路時無法指望它告訴你正確的位置。
經過不懈的努力, 終于發現一位牛人用C語言寫了一個算法, 不過他要用到一個數據文件, 而且比較大, 放在手機客戶端一跑就內存崩潰了, 所以覺得不可取, 于是把他的C代碼轉化為C#的WebService服務. 代碼如下, 供大家參考.希望對大家有所幫助!
OK,大功告成,火星人民歡迎您!!
參考資料: 原C語言帖 http://xcodev.com/Wordpress/?p=131
新聞熱點
疑難解答