《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于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亚洲国产精品_日韩亚洲一区二区
国产精品综合网站| 亚洲视频一二| 久久综合九色| 午夜视频一区在线观看| 亚洲乱码国产乱码精品精| 日韩视频在线一区二区| 在线观看视频一区| 黄色一区二区三区| 国产综合一区二区| 国产色产综合产在线视频| 国产精品久久午夜夜伦鲁鲁| 欧美日韩1区2区| 欧美精品一区二区三区蜜桃| 欧美高清视频| 欧美国产日韩亚洲一区| 欧美福利电影网| 欧美极品欧美精品欧美视频| 欧美激情片在线观看| 欧美精彩视频一区二区三区| 欧美巨乳在线观看| 欧美日韩另类丝袜其他| 欧美猛交免费看| 欧美视频不卡| 欧美日韩一级片在线观看| 亚洲男人天堂2024| 午夜精品区一区二区三| 小嫩嫩精品导航| 久久精品三级| 免费成人小视频| 欧美freesex8一10精品| 欧美风情在线观看| 欧美日韩国产综合视频在线观看中文 | 激情久久五月天| 国产视频在线观看一区二区| 国产九九视频一区二区三区| 国产精品久久久久久久久久久久| 欧美视频一区二区三区在线观看 | 久久国产手机看片| 久久国产毛片| 久久久综合香蕉尹人综合网| 久久精品视频播放| 久久亚洲精品欧美| 久久中文字幕导航| 久久精品免费电影| 日韩一级免费观看| 亚洲剧情一区二区| 一区二区激情小说| 日韩午夜在线电影| 中文av字幕一区| 亚洲综合三区| 性做久久久久久久免费看| 一区二区欧美精品| 亚洲自拍三区| 欧美制服丝袜| 久久蜜桃精品| 蜜臀久久99精品久久久画质超高清| 久久亚洲视频| 欧美成人免费在线观看| 欧美激情综合五月色丁香| 欧美日韩精品免费观看视频完整| 国产精品扒开腿做爽爽爽视频| 国产精品毛片| 狠狠久久婷婷| 久久久亚洲综合| 欧美系列精品| 欧美福利一区二区| 欧美日韩在线三级| 国产欧美日韩另类一区| 国产精品午夜春色av| 国产欧美日韩一区二区三区在线观看| 国产精品五月天| 在线成人激情黄色| 一区二区国产日产| 西西裸体人体做爰大胆久久久| 久久精品日韩欧美| 日韩午夜中文字幕| 欧美一级视频| 六月婷婷一区| 国产精品视频yy9299一区| 在线成人小视频| 亚洲欧美另类中文字幕| 亚洲经典三级| 久久av在线看| 欧美日韩免费看| 国产亚洲欧美另类一区二区三区| 亚洲高清在线播放| 亚洲欧美国产另类| 亚洲人体影院| 午夜日韩电影| 欧美顶级大胆免费视频| 国产精品伊人日日| 激情视频一区二区| 国产情侣久久| 亚洲三级网站| 久久成人免费电影| 一区二区三区精品视频| 久久激情婷婷| 久久亚洲一区| 久久久久成人精品免费播放动漫| 欧美日韩高清在线| 国内成人精品视频| 正在播放欧美一区| 亚洲国产高清高潮精品美女| 亚洲欧美日韩人成在线播放| 美女久久一区| 国产女主播一区| 99精品欧美| 欧美中文字幕不卡| 亚洲尤物在线| 欧美黄网免费在线观看| 国产主播一区二区| 亚洲一区二区三区四区中文 | 久久久久九九九| 欧美日韩不卡合集视频| 国产精品视频一区二区高潮| 亚洲自拍都市欧美小说| 亚洲福利视频三区| 午夜日韩视频| 欧美亚洲第一区| 91久久精品一区| 久久精品二区亚洲w码| 香蕉久久精品日日躁夜夜躁| 欧美日韩国产页| 亚洲黄一区二区三区| 欧美主播一区二区三区| 欧美亚洲在线观看| 欧美视频一区二区| 亚洲人成网站影音先锋播放| 亚洲国产精品电影在线观看| 欧美一级片久久久久久久| 欧美日韩在线免费观看| 日韩天堂av| 一区二区欧美精品| 欧美另类一区| 亚洲人成在线播放网站岛国| 91久久久亚洲精品| 久久中文字幕导航| 国内外成人在线| 欧美一区深夜视频| 欧美一区激情| 国产伦精品一区二区三区照片91| 欧美在线看片a免费观看| 欧美在线免费观看| 亚洲毛片在线| 欧美大片免费观看在线观看网站推荐| 国产欧美一区二区三区国产幕精品| 国产一区二区精品久久91| 性欧美暴力猛交69hd| 久久精品国产2020观看福利| 国产日韩精品一区二区| 亚洲免费在线看| 亚洲永久免费精品| 国产精品久久久一区二区三区| 亚洲免费精彩视频| 亚洲视频免费在线| 国产精品h在线观看| 中文亚洲视频在线| 欧美一区二区三区免费观看视频| 国产精品亚洲片夜色在线| 亚洲欧美国产毛片在线| 欧美一区免费| 国产一区二区久久精品| 久久精品视频播放| 欧美激情a∨在线视频播放| 亚洲国产婷婷| 亚洲日本aⅴ片在线观看香蕉| 欧美黄色成人网| 在线观看视频一区二区欧美日韩| 亚洲国产日韩一区二区| 免费毛片一区二区三区久久久| 国产一区自拍视频| 久久精品国产免费看久久精品| 久热精品视频在线观看| 91久久极品少妇xxxxⅹ软件| 在线视频你懂得一区| 国产精品久久久久婷婷| 欧美淫片网站| 欧美成人免费播放| 妖精成人www高清在线观看| 亚洲一区在线观看免费观看电影高清| 国产精品久久久久久久久久久久久久 | 亚洲国产一区在线观看| 欧美精品国产一区| 亚洲天堂av高清| 久久精品免视看| 亚洲激情国产精品| 亚洲一区二区综合| 国产精品国产福利国产秒拍| 亚洲国产日韩精品| 亚洲线精品一区二区三区八戒| 国产精品一区二区在线| 亚洲国产天堂久久综合网| 欧美另类专区| 亚洲欧美国产三级| 女女同性精品视频| 在线综合+亚洲+欧美中文字幕| 久久se精品一区二区| 亚洲电影免费| 午夜精品国产更新| 亚洲第一区在线观看|