基于Android平臺的北斗和GPS雙模在線定位方法
【技術領域】
[0001]本發明涉及一種北斗和GPS雙模在線定位方法,特別是一種基于Android平臺的北斗和GPS雙模在線定位方法。
【背景技術】
[0002]衛星定位、導航等技術的研究和探索在國外起源的比較早,在20世紀80年代中期就有相關研究課題了,在國內起步相對比較晚并且發展緩慢,2000年以來,我國第一次成功發射4顆“北斗衛星”以建立第一代北斗定位、導航測試系統。該系統擁有在我國本土和周邊其他區域的實時定位、授時和報文以及GPS廣域差分等功能,并已經在勘察、通訊、水利、交通、漁業和叢林火災預防以及國土安全等大部分范疇逐漸展現出明顯的效益,尤其在2008年是在我國發生的一些重大事件如汶川地震搶險救災、雪災以及具有歷史意義的北京奧運會等中北斗系統發揮了強大的功能,起到了很重要的作用。接著在2007年我國開始建設和完善北斗系統,于是推出了功能更為強大的北斗第二代系統,于2012年實現北斗系統覆蓋整個亞太地區,如今我國研發的北斗衛星定位、導航系統的空間端由5顆靜止軌道衛星和30顆非靜止軌道衛星組成,其中可供給兩種服務模式,一種開放服務和另一種授權服務(屬于第二代系統)。授時精度達到10個ns,測速精度達到0.2米/秒。我們國家正在實施研制的斗極衛星定位系統,已完成十六顆斗極衛星安全的發射到相應的軌道。根據工程項目研發的三步走總體規劃,于2020年前后,在功能上實現全球化、大眾化,性能上相當穩定的、服務周期長的定位、導航系統。
[0003]我們看到我國自主研發的北斗定位系統有其他三種定位系統不能及的優勢,以及廣闊的發展前景和市場應用,更重要的是它對我國國土安全等有重大貢獻,我們在看到它的優勢之后,也認識到它的一些不足。首先現在我們的定位系統有一定的局限性,只能為我國和附近區域供給一些穩定可靠的服務,北斗定位、導航系統覆蓋區域只在東經約70° -140°和北瑋5° ~55°內。而GPS是覆蓋全地球全天候的系統,可以保證在地球任何位置、任何時間能同時觀測到6到9顆衛星。同時北斗系統是在赤道上設有2顆同步衛星,衛星的赤道角距約為60°。GPS導航的衛星軌道是在準同步軌道上,繞地球一周需要時間為11小時58分。其次我們國家的第一代定位系統是有一定的依賴性的,再加上系統容量受到限制并且由于定位、導航的設備的操作相對比較難、復雜。
【發明內容】
[0004]本發明要解決的技術問題是:提供一種種基于Android平臺的北斗和GPS雙模在線定位方法,能夠穩定、可靠、精確的進行在線定位。
[0005]解決上述技術問題的技術方案是:一種基于Android平臺的北斗和GPS雙模在線定位方法,包括能夠接受衛星發出的信息的移動定位終端、遠端云服務器、移動web網頁客戶端、android手機客戶端,所述的移動定位終端通過Internet與遠端云服務器連接,所述的遠端云服務器通過Internet分別與移動web網頁客戶端和android手機客戶端連接,所述的移動定位終端為飛思卡爾1.mx6q平臺中能獲取到定位數據的硬件;具體步驟為:
(1)通過app應用調用Android系統的定位API來發出定位請求,然后Android應用層把請求指令發送給FrameWork層,FrameWork層對應的接口 API獲取到指令后,再把請求指令傳送給下一層的JNI動態庫層,通過調用JNI的接口函數來調用Iinux內核的驅動文件,Iinux內核的驅動文件驅動硬件獲取到定位數據;
(2)通過D2030C北斗/GPS雙模模塊通過衛星定位,獲取到原始位置信息和時間,然后通過串口,把數據傳送到飛思卡爾1.mx6q平臺中,在飛思卡爾1.mx6q平臺中運行Android系統,Android系統通過Iinux內核的串口驅動來從串口中讀取到位置定位信息,在驅動程序中獲取到定位信息后,接著把定位數據信息傳給Android系統的JNI動態庫層,該JNI動態庫層的作用是通過調用Iinux內核驅動文件來和硬件進行交互;
(3)數據傳送到Android系統的JNI層后,Android系統的FrameWork層通過調用JNI層的接口,從JNI層中獲取到定位數據,然后app應用通過FrameWork層中API接口來獲取到定位數據,此時,數據就從最底層的硬件傳送到了最上層的軟件中,軟件就可以對獲取到的定位數據進行處理;
(4)在app應用中對定位數據進行處理,先把定位數據進行解析,GPS的定位數據采用的是NMEA數據協議,通過遵守NMEA數據協議把經瑋度數據解析出來,然后使用一種叫做JSON的輕量級網絡數據協議把經瑋度進行封裝,打包成一個JSON數據包,接下來再通過調用Android系統的Http接口,并采用POST方法來把JSON數據包發送到遠端云服務器中。
[0006](5)通過一個android客戶端,通過Http的POST方式,從遠端云服務器上把JSON數據格式的定位數據獲取下來,通過Android端的百度地圖API,來把定位數據中經瑋度對應的地理位置顯示在百度地圖上。
[0007]本發明的進一步技術方案是:遠端云服務器為使用ubuntul2.04,使用php語言來搭建實現,并采用mysql數據庫來保存數據,當獲取到JSON數據包之后,把經瑋度數據解析出來,并且保存在mysql中的一張定位數據表中,然后通過調用百度地圖的WebserverAPI,把定位數據轉換成地址位置,并且在百度地圖中顯示出來。
[0008]由于采用上述技術方案,本發明之種基于Android平臺的北斗和GPS雙模在線定位方法,具有以下有益效果:
1.本發明為在底層硬件采用飛思卡爾1.mx6q系列移動平臺,在這個平臺使用Android系統,來實時接受北斗/GPS雙模模塊的實時位置信息,同時通過連接wifi/網卡/3G運用HTTP的POST方式將數據傳送到由PHP、Mysql和Apache搭建的遠端云服務器進行存儲。移動客戶端需要移動物體的實時位置信息時,系統會主動通過有線與無線網絡運用HTTP的GET方式從服務器請求數據,這樣移動客戶端如web網頁客戶端和android客戶端就可以調用百度地圖的API把從服務器獲得的經瑋度等位置信息刷到百度地圖上實時顯示,并且有2D、三維和衛星地圖幾種形式來選擇顯示。解決了一些偏遠地區由于通信基站覆蓋少,信息傳送難度大等問題,為有需要的人或者企事業單位提供相應的服務。
[0009]2.本發明中用到的android、php、mysql、http、javaScript以及互聯網的相關技術都比較成熟,目標明確,開發周期也很短,同時后期維護的次數少并周期也很短,再加上以后系統有很大空間的功能拓展和升級的空間,系統開發成本比較低,客戶需求比較大,同時產品的使用均是大眾化的。可以創造一定的經濟效益和價值。
[0010]3.北斗定位系統我國擁有完全的自主知識產權,不受限于其他國家,北斗定位系統是我國大力扶持的國家項目,發展前景大,北斗定位系統因為是我國自主研發的系統,所以使用成本比GPS低,android系統發展迅速,和android相結合可擴展性高,符合科技發展需要,云服務是當前最主流的企業服務器解決方案,可很大程度的節省服務器運營成本。
【具體實施方式】
[0011]—種基于Android平臺的北斗和GPS雙模在線定位方法,包括在線定位系統,該系統包括能夠接受衛星發出的信息的移動定位終端、遠端云服務器、移動web網頁客戶端、android手機客戶端,所述的移動定位終端通過Internet與遠端云服務器連接,所述的遠端云服務器通過Internet分別與移動web網頁客戶端和android手機客戶端連接,所述的移動定位終端為飛思卡爾1.mx6q平臺中能獲取到定位數據的硬件。
[0012]在線定位方法的具體步驟為:
(1)通過app應用調用Android系統的定位API來發出定位請求,然后Android應用層把請求指令發送給FrameWork層,FrameWork層對應的接口 API獲取到指令后,再把請求指令傳送給下一層的JNI動態庫層,通過調用JNI的接口函數來調用Iinux內核的驅動文件,Iinux內核的驅動文件驅動硬件獲取到定位數據;
(2)通過D2030C北斗/GPS雙模模塊通過衛星定位,獲取到原始位置信息和時間,然后通過串口,把數據傳送到飛思卡爾1.mx6q平臺中,在飛思卡爾1.mx6q平臺中運行Android系統,Android系統通過Iinux內核的串口驅動來從串口中讀取到位置定位信息,在驅動程序中獲取到定位信息后,接著把定位數據信息傳給Android系統的JNI動態庫層,該JNI動態庫層的作用是通過調用Iinux內核驅動文件來和硬件進行交互;
(3)數據傳送到Android系統的JNI層后,Android系統的FrameWork層通過調用JNI層的接口,從JNI層中獲取到定位數據,然后app應用通過FrameWork層中API接口來獲取到定位數據,此時,數據就從最底層的硬件傳送到了最上層的軟件中,軟件就可以對獲取到的定位數據進行處理;
(4)在app應用中對定位數據進行處理,先把定位數據進行解析,GPS的定位數據采用的是NMEA數據協議,通過遵守NMEA數據協議把經瑋度數據解析出來,然后使用一種叫做JSON的輕量級網絡數據協議把經瑋度進行封裝,打包成一個JSON數據包,接下來再通過調用Android系統的Http接口,并采用POST方法來把JSON數據包發送到遠端云服務器中。
[0013](5)通過一個android客戶端,通過Http的POST方式,從遠端云服務器上把JSON數據格式的定位數據獲取下來,通過Android端的百度地圖API,來把定位數據中經瑋度對應的地理位置顯示在百度地圖上。
[0014]遠端云服務器為使用ubuntul2.04,使用php語言來搭建實現,并采用mysql數據庫來保存數據,當獲取到JSON數據包之后,把經瑋度數據解析出來,并且保存在mysql中的一張定位數據表中,然后通過調用百度地圖的Webserver API,把定位數據轉換成地址位置,并且在百度地圖中顯示出來。
[0015]本實施