譚家龍
摘 要:隨著計算機科學技術和地理信息系統以及全球定位系統(GPS)的發展,產生了一門新的應用——電子地圖。本文主要介紹了Ios電子地圖的功能模塊及其實現方法。該地圖具有操作簡單,能進行路徑規劃,反饋實時路況的特點。
關鍵詞:Ios;路徑規劃;地圖查詢
1 引言
從最初用于軍事和國家重要利益的民用領域,到現在與老百姓息息相關的生活中,電子地圖突飛猛進發展的同時,也將應用范圍擴展到了生活的每個角落。本文將描述Ios電子地圖的實現方法,并應用到交通系統中。
2 模塊的分析與設計
2.1 需求分析
本系統的目標就是將電子地圖應用到交通系統當中,在電子地圖上進行應用開發,提供可視化的人機交互界面,主要圍繞以下幾點進行展開:(1)地圖控制:能夠對地圖進行轉移、放大、縮小以及添加圖層。(2)自我定位:能夠通過手機的GPS設備進行實時定位并在地圖上標注出來,讓用戶得到準確而實時的位置信息。(3)地點搜索:根據輸入字符串進行地點匹配。(4)路徑規劃:通過起點和終點位置進行路徑選擇,并提供公交和自駕兩種模式。(5)實時路況:通過視頻或者表格方式了解某路段的實時路況信息。(6)附近搜索:能夠搜索當前位置附近的公園、學校及醫院等服務信息。(7)操作簡單:功能盡量簡單易懂、易操作。
2.2 系統功能模塊
按照系統需求,將系統劃分成5個功能模塊,每個模塊實現的功能如下所述:(1)自我定位:利用GPS提供的定位服務,確定用戶所在城市、街道的位置信息,并將具體位置信息在電子地圖界面向用戶進行展示。(2)地點搜索:通過地址解析功能解析用戶輸入的城市名或其他詳細地址信息,向用戶展示所查地址在電子地圖的詳細方位,進行地圖轉移。(3)路徑規劃:通過位置搜索功能或是地圖點擊方式來獲取起點及終點的位置信息,并且由用戶手動選擇路線的行駛方式(公交行駛或者是自駕行駛);最終在電子地圖上繪制出起點到終點的最佳路徑,供用戶查看。(4)實時路況:通過地圖點擊功能獲取用戶所查某一路段的詳細地址,并向用戶展示出該路段的實時路況視頻或者該道路的車輛密度狀況,由用戶選擇自我出行線路,有助于減少道路擁塞情況。(5)附近搜索:當用戶忘記或者不清楚所去目的地的詳細地址時,可通過該模塊搜索附近的公園、學校和醫院等服務類信息,有效地提高用戶的出行效率。
3 模塊的實現過程
3.1 界面設計
在Ios平臺的應用開發中,界面的設計是核心問題,界面不僅是人機交互的接口,還能影響用戶對整個應用程序的使用情況。本系統設計了4個界面:地圖服務界面、路徑規劃界面、實時路況視頻界面和實時路況表格界面。
(1)地圖服務界面:地圖服務界面需要一張電子地圖界面和一個“自我定位”按鈕,電子地圖界面用來實現地圖顯示功能,而“自動定位”按鈕控制監聽事件的開關。另外在菜單選擇項中添加4個子功能選項,有:“地點搜索”、“路徑規劃”、“實時路況”、“附近搜索”。
位置搜索與設計地點搜索需要兩個下拉列表、一個文本輸入框和兩個按鈕。其中兩個下拉列表用來存儲省級和省級對應的各個市級名稱,屬于市級以上地址獲取方式;一個文本輸入框讓用戶輸入某地址的詳細信息,屬于市級以下的地址信息獲取方式,文本輸入框和下拉列表的作用是等同的,一個是屬于市級以上的地址搜索,一個是市級以上的地址搜索,也可以都輸入;兩個按鈕一個是用來保證搜索的順利進行,另一個是取消本次的操作,退出位置搜索模塊。
(2)路徑規劃界面:路徑規劃界面需要兩個文本輸入框,兩個圖片按鈕和三個普通按鈕。兩個文本輸入框一個是用來獲取起點地址,另外一個是用來獲取終點地址(該地址主要指字符串地址);兩個圖片按鈕主要是用來響應地圖點擊的方式獲取起點或者終點位置的經緯度信息;三個普通按鈕,其中兩個是代表路線的駕駛模式(是公交行駛還是自駕行駛),另外一個按鈕是路徑規劃功能的正常運行并判斷所獲數據是否完整。
(3)實時路況視頻界面:實時路況視頻界面比較簡單,通過Ios的基本視頻播放界面讓用戶觀看實時的視頻路況,主要有播放、暫停兩個功能。
(4)實時路況表格界面:實時路況表格界面需要一個2維度的表格視圖。其中橫坐標代表的是時間,五個時間點代表了半個小時以內的時間段;縱坐標表示的交通車流密度,分為四個等級:順暢、正常、擁擠、阻塞;界面標題為該段的道路名稱。
3.2 定位模塊設計
自我定位模塊主要是通過GPS設備獲得位置信息并在電子地圖上向用戶展示。該定位功能是通過定位按鈕手動開啟及關閉的,在手動定位之前需要確保GPS設備是否開啟,防止定位時無法從GPS設備中獲得位置信息。定位按鈕被點擊后,對監聽事件是否存在進行判斷,如果監聽事件存在,則表示該點擊目的是關閉監聽事件;如果沒有監聽事件存在,則表示該點擊目的是創建一個監聽事件,需要設置監聽參數,打開GPS設備,最后在電子地圖上實現定位功能。
3.3 位置搜索模塊設計
位置搜索模塊主要通過手機輸入界面獲得用戶所需查詢的地址信息,再通過相關方法將字符串地址轉換為經緯度地址坐標,在電子地圖上進行位置轉移。該模塊是通過位置搜索界面獲得用戶搜索的地址信息,接著再對輸入地址信息進行判斷,如果所查地址信息是省或市級以上地址,則到本地數據中查找相關經緯度信息并實現地圖轉移功能;如果所查地址信息比較詳細屬于市級以下地址,則需要進行地址解析,將字符串地址轉為經緯度地址供用戶選擇,待用戶選擇地址后實現地圖轉移功能。
3.4 路徑規劃模塊設計
路徑規劃模塊提供了兩種輸入方式:地圖點擊與文本輸入,接著利用輸入的起點和終點坐標來估算出最佳路徑并在電子地圖上進行顯示。該模塊的輸入部分可分為兩種,地圖點擊和文本輸入。其中,地圖點擊是從當前地圖上直接獲得起點和終點經緯度坐標,而文本輸入是利用相關方法將輸入的字符串地址解析成相應的經緯度坐標;最后當起點和終點信息被確認完整后,計算出最佳路徑并在電子地圖上顯示路徑信息。
3.5 實時路況模塊設計
實時路況模塊主要通過從服務器獲取相應路段的路況視頻地址和實時路況數據向用戶展示該路段的實時路況視頻或者是車輛密度信息,讓用戶精確地了解到該路段的實時狀況并做出明確的選擇,減少交通擁塞情況。通過點擊地圖的方式能獲取到目標路段信息,接著將路名與本地數據庫數據進行匹配;若匹配未成功,則只能與附近的路段進行范圍匹配,找出最合適的攝像機獲得實時路況信息;若匹配成功,讓用戶選擇數據接收方式,若是視頻播放數據,則返回相應的視頻接口地址,若是表格數據,則返回相應的車輛密度信息;最后通過視頻或者表格的方式向用戶展示實時路況信息。
3.6 附近搜索模塊設計
附近搜索模塊主要根據用戶不同的搜索類型開始搜索。該模塊提供了醫院、公園、學校三種服務類型供用戶查詢,用戶只能搜索當前位置4公里(以球面距離計算)以內的服務信息,搜索到信息后由用戶選擇,待用戶選擇后在電子地圖上繪制出的路徑信息。
該模塊提供了三種服務類型:醫院、公園和學校。首先用戶要選擇需要的服務類型,其次到數據庫中查找相應服務類型的所有位置信息,利用球面距離公式計算出當前位置與所查位置之間的空間距離,刪選出有效信息讓用戶選擇出最理想、最合適的地點;最后由電子地圖繪制出相應的路徑信息。
4 結束語
本文是基于Ios手機的電子地圖的應用開發,基本能實現便捷交通、方便用戶出行的目的,有一定的實用性和先進性。但是本系統還存在一些不足之處,比如自動定位的精度有待提高,系統的擴充性有待加強,隨著后續工作的進行,我相信一定可以完善的更好。
[參考文獻]
[1]張彩霞,高穎.iPhone開發秘籍(第2版)[J].北京:人民郵電出版社, 2010.
[2]漆振.iPhone開發實戰[J].北京:人民郵電出版社,2009.
[3]Bill Dudney.iPhone SDK3開發指南[J].北京:電子工業出版社, 2010.