《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Android系統的避難場所查詢軟件開發
基于Android系統的避難場所查詢軟件開發
來源:電子技術應用2014年第3期
趙士達, 張 楠, 楊 爽
(天津市地震局, 天津300201)
摘要: 介紹了一種基于Android操作系統的應急避難場所查詢軟件。應急避難場所的位置信息存儲在百度云端,軟件通過云檢索獲得相應的信息。軟件將檢索到的信息以列表和地圖的形式展現出來,并提供條件篩選、周邊檢索和定位等功能。通過Android SDK模擬器仿真和手機終端測試,驗證了該軟件的各項功能全部達到預期目標。
中圖分類號: TP393
文獻標識碼: A
文章編號: 0258-7998(2014)03-0133-04
Development of emergency shelters query software based on Android
Zhao Shida, Zhang Nan, Yang Shuang
Tianjin Seismological Bureau, Tianjin 300201, China
Abstract: Introducing a query software that based on Android. The location information of emergency shelter was stored in Baidu Cloud. The software get the information by Cloud research. The researched information was displayed in list form a map form. The software has screening, periphery searching, positioning function. The software has passed the test and each function has achieved the expected target.
Key words : Android; emergency shelter; Cloud storage; Cloud search; Baidu map API; Baidu positioning

    近年來,全球地震災害多發,給人類造成巨大損失。應急避難場所是應對突發公共事件的一項災民安置措施,是現代化大城市用于民眾躲避地震、火災、爆炸、洪水、疫情等重大突發公共事件的安全避難場所[1]。應急避難場所具有應急避難指揮中心、獨立供電系統、應急直升機停機坪、應急消防措施、應急避難疏散區、應急供水等11種應急避險功能,形成了一個集通信、電力、物流、人流、信息流等為一體的完整網絡。
    隨著移動通信技術的快速發展和Android智能終端的迅速普及,人們對信息的獲取有了更高的要求[2]。開發一款基于Android系統的應急避難場所的軟件顯得非常必要。Android系統是谷歌公司推出的一套智能開源手機平臺,由操作系統、中間件、用戶友好界面和應用軟件組成[3]。
 應急避難場所查詢涉及到每個避難場所的位置信息,而百度LBS云服務可以解決這一問題。LBS云是百度地圖針對LBS開發者推出的平臺級服務,結合已有的地圖API和SDK服務,通過開放服務端存儲和計算能力,提供海量位置數據存儲、檢索及展示一體化解決方案[4]。
    本文針對Android系統,使用百度地圖Android SDK、定位API和LBS云服務開發了一款可以篩選、定位、地圖顯示和周邊檢索的應急避難場所查詢軟件。
1 總體設計方案
1.1 Android開發介紹

    Android是以Linux為核心的開放源碼操作系統,可以運行在手機、平板電腦、GPS、播發器等各種手持終端上[5-6]。
    Android主流的開發環境是Java,開發平臺是Eclipse(一種基于Java的開源、可擴展平臺)。Eclipse安裝安卓開發工具ADT(Android Development Tools)后即可直接使用Android的軟件開發工具包SDK(Software Development Kit)。同時SDK還提供可視化的模擬器,以及Dalvik虛擬機調試監控服務(DDMS)工具,用于實時查看軟件運行情況及本件管理、截屏等操作[7-8]。本文的軟件就在以上基礎上開發調試,并最終在手機終端上通過測試。
1.2 百度地圖Android SDK簡介
    百度地圖Android SDK是一套基于Android 2.1(v1.3.5及以前版本支持Android 1.5以上系統)及以上版本設備的應用程序接口,可適用于Android系統移動設備的地圖應用。通過調用地圖SDK接口,可以輕松訪問百度地圖服務和數據,構建功能豐富、交互性強的地圖類應用程序。
1.3 百度定位 SDK簡介
    LBS(Location Based Service)是互聯網時代的熱點,在本地搜索、定向廣告、社交網絡等眾多領域得到了廣泛應用。其核心基礎就是定位能力,為各類應用提供位置信息。百度移動定位API是一個提供基礎定位API的第三方平臺,為各類應用提供定位能力,提升用戶體驗。目前百度定位SDK支持Android平臺的免費使用。
1.4 百度LBS云簡介
    LBS云是百度地圖針對LBS開發者推出的平臺級服務,結合已有的地圖API和SDK服務,通過開放服務端存儲和計算能力,提供海量位置數據存儲、檢索、展示一體化解決方案。LBS云包括云存儲云檢索兩個部分。
    LBS云有三個基本概念,分別是位置數據表(geotable)、自定義擴展列(column)和位置數據(poi)。位置數據表是百度LBS云提供給開發者自定義存儲位置數據的集合,類似于常見數據庫的一個表,不僅支持點線面結構還支持用戶自定義結構。自定義擴展列是開發者在創建的位置數據表基礎上根據自己的應用場景自定義擴展的列,類似于常見數據表的一個列。位置數據即為開發者在定義好屬性和擴展列的位置數據表中帶有位置屬性的業務數據記錄,類似于常見數據表下的一條記錄。
1.5 避難場所查詢軟件設計方案
    首先需要將所有的避難場所位置及相關信息存儲到百度LBS云中,軟件查詢避難場所的過程其實就是對已存儲信息的云端進行檢索的過程。云檢索必須在有網絡的條件下進行,所以當沒有無線網絡時需要打開手機自身的移動網絡。如圖1所示,當檢測到可用網絡后要劃分網絡類型,因為不同網絡的接口設置不同。通過百度定位API對終端用戶當前所在位置進行定位。通過云檢索將云端的避難場所信息調出并計算避難場所與當前位置的距離。軟件有兩種工作模式:一種是篩選模式,另一種是附近模式。在篩選模式下可以按照行政區、避難場所分類和關鍵字檢索對避難場所進行查找;在附近模式可以按照距離查找當前位置周邊的避難場所。

2 軟件設計
    系統分為2個數據包(package),一個是com.bd.lbs.yj用來完成軟件的主體功能;另一個是com,bd.lbs.api用來完成百度定位、云檢索和百度地圖顯示等功能。這2個數據包共包括了7個程序模塊,如圖2所示。

2.1 ContentModel模塊設計
    ContentModel類用來定義列表內容,包括避難場所的名稱、地址、類型、避難場所與當前設備的距離、圖片外連接地址、專題頁地址、經度和緯度。此外該類還定義了獲取這些信息的成員函數。
2.2 LBSListActivity模塊設計
    LBSListActivity類繼承了ListActivity類并實現了對OnScrollListener的接口。實現了列表顯示,同時還監控焦點是否為列表最后一行。本文的列表頁為單頁10條列表,當頁面翻滾到最后一行時點擊“讀取更多”按鈕,即可再打開10條列表。
    要在列表底部添加“讀取更多”按鈕并顯示讀取的進度就要在重寫父類Activity時添加“讀取更多(loadMoreView)”按鈕和進度條(progressBar)的layout設置。
    本設計需要在列表中顯示每個避難場所的照片,這些照片被保存在網絡相冊中,系統解析網絡照片地址并將照片轉換為Bit圖片顯示。這個過程通過getBitmapFromUrl函數來完成。該函數首先建立與網絡相冊的連接,接收來自相冊的數據流并將全部數據流保存在緩存中,最后將緩存中的數據重新編碼成比特圖片。
2.3 DApplication模塊設計
    Android中的Application類是為了需要保存全局變量而設計的基本類,該類在package創建時就存在。程序中的DApplication類是從Application類繼承下來的,用于保存本設計的全局變量。
    本設計中的百度地圖SDK使用ak驗證和網絡類型的劃分也是在DApplication類中完成的。網絡類型主要分為中國移動CMWAP、中國聯通UNIWAP、中國電信CTWAP和3G網絡3GWAP。
2.4 MainActivity模塊設計
    MainActivity類主要完成可用網絡的檢測、篩選/附近模式的切換,地圖/列表模式的切換和篩選按鈕功能的實現。
    篩選/附近模式的切換通過ToggleButton按鈕實現,地圖/列表模式的切換通過getTabHost函數來完成,各種篩選條件通過設置Spinner控件來完成。
2.5 LBSLocation模塊設計
 LBSLocation類主要完成終端的定位功能。編寫這個類需要用到百度定位API,所以在該文件前添加如下程序來導入百度程序包:
    import com.baidu.location.BDLocation;
    import com.baidu.location.BDLocationListener;
    import com.baidu.location.LocationClient;
    import com.baidu.location.LocationClientOption;
    首先要在啟動定位函數中配置定位信息,將定位經緯度設置為百度經緯度。然后編寫定位監聽函數并實現對百度定位監聽函數的接口。在定位監聽函數中實現定位并計算當前位置與每個避難場所的距離。
2.6 LBSCloudSearch模塊設計
    LBSCloudSearch類通過http post方式訪問百度云,利用百度云檢索API查找百度云存儲數據,返回JSON數據供移動應用顯示。
    云檢索前需要做好兩項準備工作:(1)根據劃分的網絡類型進行網絡接口配置; (2)設置百度云的databox及對應ak的校驗。
2.7 LBSMapActivity模塊設計
     LBSMapActivity類主要用于實現百度地圖的顯示功能。編寫這個類需要用到百度定位API,所以在該文件前添加以下程序來導入百度程序包:
 import com.baidu.mapapi.BMapManager;
 import com.baidu.mapapi.MKGeneralListener;
 import com.baidu.mapapi.map.ItemizedOverlay;
 import com.baidu.mapapi.map.LocationData;
   import com.baidu.mapapi.map.MKEvent;
   import com.baidu.mapapi.map.MapController;
   import com.baidu.mapapi.map.MapView;
   import com.baidu.mapapi.map.MyLocationOverlay;
   import com.baidu.mapapi.map.OverlayItem;
   import com.baidu.mapapi.map.PopupClickListener;
   import com.baidu.mapapi.map.PopupOverlay;
    程序中使用initMapView()函數來完成初始化地圖,包括設置地圖中心坐標、地圖縮放參數和地圖控制控件等。使用addAllMarker()和removeAllMarker()兩個函數,實現在地圖中添加避難場所位置麻點和刪除這些麻點。
    在LBSMapActivity類中定義了MyGeneralListener和OverlayIcon兩個類,分別用于監控網絡和定義麻點樣式。
3 軟件測試
3.1 云存儲

 


   百度云存儲接口支持單個geotable億級數據及數百GB大小的存儲,每天支持百萬量級讀寫,每秒支持萬量級讀寫,完全滿足本設計的需求。在進行軟件測試前,通過批量上傳的方式將應急避難場所的信息存到百度云端。除了百度云自帶的字段外還需要自定義擴展字段image、type和shelterurl。其中image為string類型,用來存儲展示在終端的避難場所圖片地址;type為double類型,用來區分避難場所類型;shelterurl為string類型,用來存儲避難場所專輯頁面地址。
3.2 手機測試
    軟件通過Android SDK模擬器仿真后進入到手機實物測試,本次測試所用的手機為華為G520。手機測試步驟為:
    (1)檢測在無網絡情況下程序是否退出;
    (2)在無線WiFi網絡下,打開程序在列表模式下瀏覽避難場所列表,檢查列表中的避難場所能否與百度云端存儲的數據對應;
    (3)檢查列表中的內容和圖片是否與設計一致,列表中的定位以及距離計算是否準確;
    (4)按照行政區和避難場所分類逐一進行篩選測試,檢測篩選是否有誤;
    (5)切換到周邊模式進行周邊檢索,檢查周邊檢索是否準確;
    (6)將列表模式切換到地圖模式,檢查地圖上麻點能否與列表對應;
    (7)將WiFi網絡換成GSM網絡,重復步驟(2)~步驟(6)進行檢測。
   經過上述測試,應急避難場所查詢軟件所有功能工作正常,達到了預期目標。圖3、圖4為篩選模式和附近模式下列表/地圖的測試照片。

    本文設計了一個基于Android操作系統的應急避難場所查詢方案,實現了對應急避難場所的查詢、篩選和地圖展示等功能。本設計的創新點是使用了百度LBS云技術,將避難場所的位置信息存儲到百度云端,并通過云檢索獲取信息。與傳統方式相比省去了架設服務器保存信息和維護信息的開銷。同時使用百度地圖API和定位API,將定位所得到的百度經緯度和避難場所的經緯度顯示在百度地圖上。手機測試結果表明,本設計完成了預期的全部功能。
參考文獻
[1] 趙士達,張楠,楊爽. 地震時人口疏散模型研究[J]. 軟件導刊,2013(5):6-8.
[2] 馬志強.基于Android平臺即時通信系統的設計與實現[D].北京:北京交通大學, 2009.
[3] 李寧. Android應用開發實戰[M].北京:機械工業出版社, 2012.
[4] 豆瑞星.百度成立LBS事業部[J].互聯網周刊, 2012,11(21):56-57.
[5] 鄭云卿,黃琦.基于Android平臺的軟件自動化監控工具的設計開發[J].計算機應用與軟件,2013,30(2):235-238.
[6] 彭璇,吳肖. Google Map API在網絡地圖服務中的應用[J].  測繪信息與工程,2010,35(1):25-27.
[7] BURNETTE E. Hello, Android: introducing google’s mobile development platform[M]. American Pragmatic Bookshelf,  2009.
[8] 江燕良.基于Android智能終端的遠程控制系統[J].電子技術應用,2012,38(8):129-132.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
性久久久久久久久久久久| 日韩一区二区福利| 亚洲免费观看高清在线观看 | 伊人精品久久久久7777| 国产午夜精品久久久| 国产视频丨精品|在线观看| 国产精品久久久久婷婷| 国产精品久久久久高潮| 国产精品porn| 国产精品免费看| 国产欧美日韩亚洲精品| 国产日韩欧美另类| 国内成+人亚洲| 在线观看中文字幕亚洲| 亚洲高清中文字幕| 亚洲精品影院| 一本综合久久| 亚洲免费视频在线观看| 亚洲欧美精品suv| 香蕉久久夜色精品| 久久精品国产v日韩v亚洲| 久久精品成人一区二区三区| 亚洲福利一区| 亚洲精品中文字幕在线| 日韩一级片网址| 亚洲愉拍自拍另类高清精品| 亚洲欧美中文在线视频| 校园激情久久| 久久久久久久999| 免费精品99久久国产综合精品| 欧美激情综合网| 欧美日韩在线视频首页| 国产精品伊人日日| 激情久久综艺| 日韩亚洲欧美一区二区三区| 在线中文字幕不卡| 欧美一级片一区| 91久久精品网| 中日韩高清电影网| 欧美亚洲网站| 欧美不卡激情三级在线观看| 欧美日韩免费在线| 国产麻豆日韩欧美久久| 在线看成人片| 亚洲视频在线二区| 久久国产一区| 亚洲私拍自拍| 久久久国产成人精品| 欧美激情综合五月色丁香| 国产精品乱人伦一区二区| 国产一区二区三区直播精品电影| 亚洲国产精品t66y| 亚洲一区在线观看免费观看电影高清| 久久精品女人| 中文国产成人精品| 久久久91精品国产| 欧美日韩福利视频| 国产一区亚洲| 日韩视频在线免费| 久久精品国产第一区二区三区| 9人人澡人人爽人人精品| 欧美亚洲在线视频| 欧美精品免费看| 国产日韩视频| 日韩视频在线免费观看| 久久精品国产69国产精品亚洲| 亚洲视频专区在线| 久久综合网hezyo| 国产精品午夜久久| 亚洲激情社区| 欧美一区网站| 亚洲一区尤物| 欧美高清成人| 国产一区二区三区久久精品| av成人激情| 亚洲国产专区校园欧美| 欧美亚洲一区| 欧美视频在线一区二区三区| 亚洲丁香婷深爱综合| 午夜精品一区二区三区在线| 亚洲无线观看| 欧美激情在线免费观看| 黄色成人av在线| 亚洲免费伊人电影在线观看av| 亚洲精品一品区二品区三品区| 久久疯狂做爰流白浆xx| 欧美三区视频| 亚洲国产mv| 亚洲二区免费| 欧美怡红院视频| 国产精品v亚洲精品v日韩精品 | 亚洲欧美韩国| 亚洲无毛电影| 欧美另类69精品久久久久9999| 影音先锋在线一区| 欧美在线免费一级片| 午夜精品久久久久久99热| 欧美日韩亚洲一区二区三区四区| 在线日韩日本国产亚洲| 欧美一区二区三区啪啪| 香蕉久久精品日日躁夜夜躁| 欧美日韩一区二区三区在线看 | 亚洲午夜久久久久久久久电影网| 欧美丰满少妇xxxbbb| 伊人狠狠色j香婷婷综合| 欧美在线一级va免费观看| 性感少妇一区| 国产精品久久久久99| 99视频有精品| 亚洲特级毛片| 欧美视频在线观看免费网址| 亚洲精品欧美在线| 亚洲最新在线| 欧美日韩免费区域视频在线观看| 亚洲三级视频| 99国产精品自拍| 欧美精品久久一区| 日韩视频不卡| 亚洲一级黄色| 国产精品日韩欧美一区二区三区| 亚洲一二三区在线| 亚洲欧美视频一区| 国产精品毛片在线| 午夜精品福利在线| 久久av一区| 国产亚洲一区二区三区在线观看| 亚洲欧美日韩在线观看a三区| 午夜视频久久久| 国产日韩一区二区三区| 欧美一区二区三区视频在线| 久久婷婷成人综合色| 在线欧美日韩| 99视频有精品| 欧美婷婷久久| 亚洲欧美激情精品一区二区| 久久精品亚洲| 在线播放日韩欧美| 99精品免费视频| 国产精品ⅴa在线观看h| 午夜精品久久久久久久久久久久久| 久久精品国产99国产精品澳门| 狠狠色伊人亚洲综合成人| 91久久精品国产91性色tv| 欧美另类久久久品| 亚洲一区二区三区精品动漫| 久久久91精品| 亚洲国产美女精品久久久久∴| 一本一本久久a久久精品综合麻豆| 欧美性色视频在线| 性伦欧美刺激片在线观看| 免费观看亚洲视频大全| 9i看片成人免费高清| 午夜精品亚洲一区二区三区嫩草| 国产日韩欧美视频在线| 亚洲国产一区二区a毛片| 欧美日韩国产电影| 亚洲影院高清在线| 久久久久国内| 亚洲日韩第九十九页| 欧美亚洲三区| 亚洲国产成人一区| 亚洲欧美在线aaa| 激情懂色av一区av二区av| 9色porny自拍视频一区二区| 国产美女一区二区| 亚洲精选一区二区| 国产精品色一区二区三区| 亚洲高清一二三区| 欧美四级剧情无删版影片| 久久爱www久久做| 欧美日韩在线第一页| 香蕉国产精品偷在线观看不卡| 欧美激情精品久久久久久久变态| 亚洲午夜在线视频| 免费高清在线视频一区·| 亚洲午夜高清视频| 乱人伦精品视频在线观看| 在线综合亚洲| 欧美sm视频| 亚洲欧美日韩系列| 欧美日韩国产免费观看| 欧美中文日韩| 国产精品国产三级国产普通话99| 亚洲国产精品一区二区第四页av| 欧美图区在线视频| 亚洲欧洲精品天堂一级| 国产精品自在在线| 一本一本久久| 伊人成人网在线看| 欧美一区二区三区四区视频| 日韩一区二区精品视频| 免费观看一区| 欧美一级淫片播放口| 欧美小视频在线| 亚洲精品国产系列| 国产一区二区三区免费观看| 亚洲一区在线看| 亚洲国产精品成人综合| 久久精品人人| 亚洲小说欧美另类婷婷|