新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于GPS&GPRS車輛實時監(jiān)控系統(tǒng)的設(shè)計

基于GPS&GPRS車輛實時監(jiān)控系統(tǒng)的設(shè)計

作者: 時間:2011-09-21 來源:網(wǎng)絡(luò) 收藏

3 服務(wù)器端關(guān)鍵技術(shù)的與實現(xiàn)
3.1 計算行車路程的方法
系統(tǒng)可以利用Google Maps API計算行車總路程。首先假設(shè)地球作為一個完美的球體,半徑為常量R=6 378.137 km。計算球面兩點間弧長的算法為半徑*弧度,而弧度可以從兩點間的經(jīng)緯度算出。此時,可以利用Google Maps API提供的四個類方法推算出行車路程。它們分別為返回角度值緯度Glatlng.lat()函數(shù)、返回角度值經(jīng)度Glatlng.lng()函數(shù)、返回弧度值緯度Glatlng.latRadians()函數(shù)和返回弧度值精度Glatlng.lngRadians()函數(shù)。
b.JPG
通過上述公式可以近似求出相鄰兩點間行車路程,遍歷所有行車點,把相鄰兩點間的行車路程進(jìn)行疊加,即可近似求出行車總路程。由于發(fā)送數(shù)據(jù)的時間間隔很短,所以通過這個算法得出的行車路程和實際行駛的路程公里數(shù)基本一致。
3.2 軌跡回放的實現(xiàn)思想
系統(tǒng)通過調(diào)用數(shù)據(jù)庫中經(jīng)度和緯度坐標(biāo)、行駛車速、時間等相關(guān)信息,可以實現(xiàn)軌跡回放功能。雖然在過程中可以采用直接讀取數(shù)據(jù)庫數(shù)據(jù)的方法進(jìn)行軌跡回放,但是考慮到其擴(kuò)展性遠(yuǎn)遠(yuǎn)不如XML文檔大,所以該系統(tǒng)采用了從XML文件中讀取數(shù)據(jù)并通過繪制Gpolyline折線來回放行車路線。實現(xiàn)該功能必須要預(yù)先定義好XML文件結(jié)構(gòu),這里令polyline為root節(jié)點下的一個子節(jié)點,在其屬性中規(guī)定相應(yīng)的顏色、邊線寬度等,Polyline節(jié)點的子節(jié)點為lat,lon,data,speed等,用于定義每個節(jié)點的經(jīng)度、緯度、行車時間以及速度等。XML文檔好后,使用PHP語言編寫了一個服務(wù)器程序動態(tài)讀取數(shù)據(jù)庫數(shù)據(jù)和自動更新XML文件。編寫一個HTML程序,利用JavaScript解析XML文檔,解析整個XML文檔就是使用GXmlHttp對象把需要處理的節(jié)點取出(創(chuàng)建GXm-lHttp對象非常簡單,直接調(diào)用GXmlHttp.create()方法即可)。利用函數(shù)getElementsByTagName()獲取polyline節(jié)點,通過函數(shù)Node.childNodes[k].node-Name()獲取polyline節(jié)點的子節(jié)點(變量k表示poly-
line節(jié)點下子節(jié)點的總數(shù)),根據(jù)兩點間確定一條直線的公理,循環(huán)讀取數(shù)據(jù)并繪制行車軌跡。


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉