一種智能手機(jī)定位監(jiān)控系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
?。?)地圖顯示
任給一個經(jīng)緯度,要將其代表的位置在地圖上顯示出來,就要將該經(jīng)緯度轉(zhuǎn)換為對應(yīng)放大因子的tile坐標(biāo)。本系統(tǒng)采用一種近似的方法轉(zhuǎn)換,經(jīng)過分析發(fā)現(xiàn),經(jīng)度與x坐標(biāo)呈線性對應(yīng)關(guān)系,其計(jì)算公式為:
其中,longitude為經(jīng)度值,其范圍為-180~+180,西經(jīng)用負(fù)值表示,東經(jīng)用正值表示;0.0063為校正值;z為放大因子。
緯度與y坐標(biāo)轉(zhuǎn)換公式為:
其中,latitude為緯度值,其范圍為-90~+90,北緯用正值表示,南緯用負(fù)值表示;z為放大因子。將經(jīng)緯度轉(zhuǎn)化為tile坐標(biāo)后,就能將經(jīng)緯度與地圖匹配了,這樣就可以將經(jīng)緯度對應(yīng)的位置在地圖上顯示出來。
本系統(tǒng)采用的Windows Mobile Pocket PC的窗體客戶區(qū)寬度和高度分別為240像素和268像素,每個tile為256×256像素,這樣客戶區(qū)就需要4個或6個tile拼接而成,如圖2和圖3所示。
?。?)地圖拖動
地圖移動相當(dāng)于改變地圖的中心坐標(biāo)。本系統(tǒng)實(shí)現(xiàn)地圖拖動的方法為:當(dāng)在觸摸屏上點(diǎn)擊地圖某一點(diǎn)時,將地圖的中心坐標(biāo)移到點(diǎn)擊處。如圖4所示,設(shè)點(diǎn)O為窗口客戶區(qū)中心,點(diǎn)P為點(diǎn)擊處,計(jì)算點(diǎn)P與點(diǎn)O的水平和垂直像素距離△Px和△Py,然后將地圖中心分別沿水平方向和垂直方向移動△Px和△Py像素,即可實(shí)現(xiàn)地圖的拖動功能,拖動后地圖如圖5所示。
評論