虎嘯
【關鍵詞】Android 百度地圖 附近的人 問詢
1 系統開發所需的理論和技術支持
1.1 電子地圖
電子地圖是以計算機系統為硬件支撐,基于可視化數字地圖,結合多種媒體向用戶展示各城市、地區的地理位置信息,是傳統地圖與現代信息技術結合的產物,具有表達、分析和服務的功能。Android平臺為開發者提供了靈活便捷的地圖展示和控制功能,開發者通過調用電子地圖的接口既可以實現地圖的顯示、縮放、搜索等功能,也可以進行個性化的技術創新。
1.2 定位技術
定位技術就是基于位置的服務,通過該技術獲取用戶當前位置信息。手機應用程序要獲取定位信息一般是通過借助第三方服務,如百度地圖、高德地圖等,并按照第三方開發要求,對電子地圖相關接口進行調用,來設計實現定位功能。
1.3 經緯度的距離計算
經緯度的距離計算就是地球上任意兩點的經緯度經過轉化后,利用球體圖形來求解球面上兩點之間的弧長,以確定兩點的空間距離。將所要了解的位置坐標上傳至服務器或數據處理中心,篩選出符合“附近的人”定義的數據信息。
2 系統功能模塊設計
2.1 登錄及問詢模塊
用戶通過客戶端進行注冊和登錄,服務器端負責監聽客戶端的動作,并將客戶端上傳到服務器,將數據存儲到數據庫中。服務器端開啟Socket服務,調用ServerSocket類中accept()方法,等待客戶端的連接請求。服務器根據客戶端請求類型交給客戶端處理類ClientActionVerify來檢查新用戶注冊、用戶驗證登錄以及新注冊賬戶名是否已經存在。用戶通過地圖位置的搜索和確認后向附近的人進行問詢,當附近的用戶在線時發送即時消息,當附近的用戶離線時,則發送離線消息到服務器,服務器將離線消息保存到數據庫中,當附近離線的用戶再次上線時,服務器將離線消息從數據庫中取出發送給該用戶,同時更新消息列表。在問詢過程中,均不顯示用戶的詳細信息,只顯示問題及其回復信息,以保證用戶之間的信息隱私。
2.2 定位模塊設計
當用戶需要搜索當前位置附近的人時,就需要通過定位模塊確定用戶當前位置信息。在手機硬件支持GPS功能的條件下,借助百度地圖,并按照其開發要求對電子地圖相關接口進行調用來實現定位功能。本文通過百度地圖定位SDK來設計實現對用戶當前定位信息的顯示和記錄。當定位按鈕被點擊后,向定位SDK發起定位請求時,根據GPS、基站、WiFi信號定位SDK的實際情況來進行定位,此時將坐標設置為經緯度球面坐標,以確保以最好的精度返回定位信息。
該模塊中要使用一些用于定位、顯示、控制信息的功能類。通過BDLocation類獲取位置坐標,反編地理碼等信息。使用LocationClientOption類來設定位方式,同時通過該類來實現對GPS是否打開、是否需要定位信息以及定位操作掃描次數等參數進行設置。屏幕中的像素點和地球表面的經緯度坐標之間的對應轉化由Projection接口類來完成。地圖控制器MapController類來達到地圖的縮放、以及多角度顯示等效果。通過ItemizedOverlay向地圖添加一個自定義覆蓋物以標記用戶當前的位置。
2.3 位置搜索模塊設計
該模塊是通過位置搜索界面獲得用戶搜索的地址信息??梢酝ㄟ^移動、縮放地圖的方式對用戶所需地址進行搜索,也可以由用戶在地圖輸入界面查詢地址信息,通過相關方法將用戶輸入的信息轉換為經緯度坐標,并在電子地圖上標注出來。初始化地圖之后,并通過一個可以調用GeoCode("詳細地址","具體城市")方法的線程來實現地址到地圖位置的轉化。在地圖單擊監聽事件OnMapClickListener()中寫入要顯示到地圖上的覆蓋物作為地標和詳細地址信息,以便用戶確認位置搜索結果。當用戶通過拖動地圖上表示所需位置的覆蓋物進行位置搜索時,在setOnMapTouchListener(touchListener)觸摸監聽事件中通過getMapStatus()獲取覆蓋物在屏幕上的物理坐標,由getPeojection()將物理坐標轉化為地理坐標,再通過反地理編碼獲取周邊信息,并由列表顯示以便用戶進一步確認位置搜索結果。
2.4 獲取附近用戶的位置信息模塊
獲取所需地址附近用戶的位置信息模塊就需要一個服務器獲取所有用戶的經緯度,然后將用戶當前位置的經緯度或用戶位置搜索的經緯度數據送至服務器進行計算,篩選出500米范圍內的用戶。通過設置定位操作的掃描次數來記錄當前在線用戶的最新位置信息,當查看所需位置附近的人時,首先向服務器發送請求,服務器根據所需位置處最新位置信息返回附近的人的經緯度,再通過ItemizedOverlay類批量添加覆蓋物顯示在地圖上。
3 結束語
在信息技術和數據分析技術高速發展的今天,人們獲取信息的渠道也更加豐富,基于Android平臺的實時定位與問詢系統在用戶、所需地理位置附近的用戶之間建立起信息交流的橋梁,有助于用戶對相關的信息進一步了解,為用戶的出行、計劃、決策提供了可參考信息。
參考文獻
[1]龍毅,蔣成環,張亮.電子地圖的基礎理論與框架體系[J].現代測繪,2005(03):7-11.
[2]崔和宏.移動定位技術概述[J].科技信息,2008(20):402-402.
[3]尚金金.Android平臺下移動終端與PC機的通信系統設計[D].天津:河北工業大學,2013:18-20.
[4]馬獲蕾,湯海鳳.Android系統中SQLite數據庫的研究[J].電腦知識與技術,2013,23(7).