基于WM 6.0 OS的智能手機(jī)定位監(jiān)控系統(tǒng)設(shè)計(jì)
(2)地圖顯示
任給一個(gè)經(jīng)緯度,要將其代表的位置在地圖上顯示出來(lái),就要將該經(jīng)緯度轉(zhuǎn)換為對(duì)應(yīng)放大因子的tile坐標(biāo)。本系統(tǒng)采用一種近似的方法轉(zhuǎn)換,經(jīng)過(guò)分析發(fā)現(xiàn),經(jīng)度與x坐標(biāo)呈線(xiàn)性對(duì)應(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)緯度對(duì)應(yīng)的位置在地圖上顯示出來(lái)。
本系統(tǒng)采用的Windows Mobile Pocket PC的窗體客戶(hù)區(qū)寬度和高度分別為240像素和268像素,每個(gè)tile為256×256像素,這樣客戶(hù)區(qū)就需要4個(gè)或6個(gè)tile拼接而成,如圖2和圖3所示。
(3)地圖拖動(dòng)
地圖移動(dòng)相當(dāng)于改變地圖的中心坐標(biāo)。本系統(tǒng)實(shí)現(xiàn)地圖拖動(dòng)的方法為:當(dāng)在觸摸屏上點(diǎn)擊地圖某一點(diǎn)時(shí),將地圖的中心坐標(biāo)移到點(diǎn)擊處。如圖4所示,設(shè)點(diǎn)O為窗口客戶(hù)區(qū)中心,點(diǎn)P為點(diǎn)擊處,計(jì)算點(diǎn)P與點(diǎn)O的水平和垂直像素距離△Px和△Py,然后將地圖中心分別沿水平方向和垂直方向移動(dòng)△Px和△Py像素,即可實(shí)現(xiàn)地圖的拖動(dòng)功能,拖動(dòng)后地圖如圖5所示。
(4)地圖放大/縮小
Google地圖的放大因子z的取值為0~17,分別代表0~17級(jí)不同比例尺的地圖。0~17級(jí)地圖分別用18張不同詳細(xì)程度的地圖實(shí)現(xiàn),故實(shí)現(xiàn)地圖的放大/縮小功能只需要改變放大因子的大小,將當(dāng)前現(xiàn)實(shí)的地圖切換到改變后的放大因子所對(duì)應(yīng)的比例尺的地圖上,中心點(diǎn)經(jīng)緯度不變。
評(píng)論