国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android系統(tǒng)的避難場(chǎng)所查詢軟件開發(fā)*

2014-12-07 06:19:10趙士達(dá)
電子技術(shù)應(yīng)用 2014年3期
關(guān)鍵詞:列表場(chǎng)所百度

趙士達(dá),張 楠,楊 爽

(天津市地震局,天津 300201)

近年來,全球地震災(zāi)害多發(fā),給人類造成巨大損失。應(yīng)急避難場(chǎng)所是應(yīng)對(duì)突發(fā)公共事件的一項(xiàng)災(zāi)民安置措施,是現(xiàn)代化大城市用于民眾躲避地震、火災(zāi)、爆炸、洪水、疫情等重大突發(fā)公共事件的安全避難場(chǎng)所[1]。應(yīng)急避難場(chǎng)所具有應(yīng)急避難指揮中心、獨(dú)立供電系統(tǒng)、應(yīng)急直升機(jī)停機(jī)坪、應(yīng)急消防措施、應(yīng)急避難疏散區(qū)、應(yīng)急供水等11種應(yīng)急避險(xiǎn)功能,形成了一個(gè)集通信、電力、物流、人流、信息流等為一體的完整網(wǎng)絡(luò)。

隨著移動(dòng)通信技術(shù)的快速發(fā)展和Android智能終端的迅速普及,人們對(duì)信息的獲取有了更高的要求[2]。開發(fā)一款基于Android系統(tǒng)的應(yīng)急避難場(chǎng)所的軟件顯得非常必要。Android系統(tǒng)是谷歌公司推出的一套智能開源手機(jī)平臺(tái),由操作系統(tǒng)、中間件、用戶友好界面和應(yīng)用軟件組成[3]。

應(yīng)急避難場(chǎng)所查詢涉及到每個(gè)避難場(chǎng)所的位置信息,而百度LBS云服務(wù)可以解決這一問題。LBS云是百度地圖針對(duì)LBS開發(fā)者推出的平臺(tái)級(jí)服務(wù),結(jié)合已有的地圖API和SDK服務(wù),通過開放服務(wù)端存儲(chǔ)和計(jì)算能力,提供海量位置數(shù)據(jù)存儲(chǔ)、檢索及展示一體化解決方案[4]。

本文針對(duì)Android系統(tǒng),使用百度地圖 Android SDK、定位API和LBS云服務(wù)開發(fā)了一款可以篩選、定位、地圖顯示和周邊檢索的應(yīng)急避難場(chǎng)所查詢軟件。

1 總體設(shè)計(jì)方案

1.1 Android開發(fā)介紹

Android是以Linux為核心的開放源碼操作系統(tǒng),可以運(yùn)行在手機(jī)、平板電腦、GPS、播發(fā)器等各種手持終端上[5-6]。

Android主流的開發(fā)環(huán)境是Java,開發(fā)平臺(tái)是Eclipse(一種基于 Java的開源、可擴(kuò)展平臺(tái))。Eclipse安裝安卓開發(fā)工具ADT(Android Development Tools)后即可直接使用Android的軟件開發(fā)工具包SDK(Software Development Kit)。同時(shí)SDK還提供可視化的模擬器,以及Dalvik虛擬機(jī)調(diào)試監(jiān)控服務(wù)(DDMS)工具,用于實(shí)時(shí)查看軟件運(yùn)行情況及本件管理、截屏等操作[7-8]。本文的軟件就在以上基礎(chǔ)上開發(fā)調(diào)試,并最終在手機(jī)終端上通過測(cè)試。

1.2 百度地圖Android SDK簡(jiǎn)介

百度地圖Android SDK是一套基于Android 2.1(v1.3.5及以前版本支持Android 1.5以上系統(tǒng))及以上版本設(shè)備的應(yīng)用程序接口,可適用于Android系統(tǒng)移動(dòng)設(shè)備的地圖應(yīng)用。通過調(diào)用地圖SDK接口,可以輕松訪問百度地圖服務(wù)和數(shù)據(jù),構(gòu)建功能豐富、交互性強(qiáng)的地圖類應(yīng)用程序。

1.3 百度定位 SDK簡(jiǎn)介

LBS(Location Based Service)是互聯(lián)網(wǎng)時(shí)代的熱點(diǎn),在本地搜索、定向廣告、社交網(wǎng)絡(luò)等眾多領(lǐng)域得到了廣泛應(yīng)用。其核心基礎(chǔ)就是定位能力,為各類應(yīng)用提供位置信息。百度移動(dòng)定位API是一個(gè)提供基礎(chǔ)定位API的第三方平臺(tái),為各類應(yīng)用提供定位能力,提升用戶體驗(yàn)。目前百度定位SDK支持Android平臺(tái)的免費(fèi)使用。

1.4 百度LBS云簡(jiǎn)介

LBS云是百度地圖針對(duì)LBS開發(fā)者推出的平臺(tái)級(jí)服務(wù),結(jié)合已有的地圖API和SDK服務(wù),通過開放服務(wù)端存儲(chǔ)和計(jì)算能力,提供海量位置數(shù)據(jù)存儲(chǔ)、檢索、展示一體化解決方案。LBS云包括云存儲(chǔ)和云檢索兩個(gè)部分。

LBS云有三個(gè)基本概念,分別是位置數(shù)據(jù)表(geotable)、自定義擴(kuò)展列(column)和位置數(shù)據(jù)(poi)。位置數(shù)據(jù)表是百度LBS云提供給開發(fā)者自定義存儲(chǔ)位置數(shù)據(jù)的集合,類似于常見數(shù)據(jù)庫(kù)的一個(gè)表,不僅支持點(diǎn)線面結(jié)構(gòu)還支持用戶自定義結(jié)構(gòu)。自定義擴(kuò)展列是開發(fā)者在創(chuàng)建的位置數(shù)據(jù)表基礎(chǔ)上根據(jù)自己的應(yīng)用場(chǎng)景自定義擴(kuò)展的列,類似于常見數(shù)據(jù)表的一個(gè)列。位置數(shù)據(jù)即為開發(fā)者在定義好屬性和擴(kuò)展列的位置數(shù)據(jù)表中帶有位置屬性的業(yè)務(wù)數(shù)據(jù)記錄,類似于常見數(shù)據(jù)表下的一條記錄。

1.5 避難場(chǎng)所查詢軟件設(shè)計(jì)方案

圖1 軟件設(shè)計(jì)流程圖

首先需要將所有的避難場(chǎng)所位置及相關(guān)信息存儲(chǔ)到百度LBS云中,軟件查詢避難場(chǎng)所的過程其實(shí)就是對(duì)已存儲(chǔ)信息的云端進(jìn)行檢索的過程。云檢索必須在有網(wǎng)絡(luò)的條件下進(jìn)行,所以當(dāng)沒有無線網(wǎng)絡(luò)時(shí)需要打開手機(jī)自身的移動(dòng)網(wǎng)絡(luò)。如圖1所示,當(dāng)檢測(cè)到可用網(wǎng)絡(luò)后要?jiǎng)澐志W(wǎng)絡(luò)類型,因?yàn)椴煌W(wǎng)絡(luò)的接口設(shè)置不同。通過百度定位API對(duì)終端用戶當(dāng)前所在位置進(jìn)行定位。通過云檢索將云端的避難場(chǎng)所信息調(diào)出并計(jì)算避難場(chǎng)所與當(dāng)前位置的距離。軟件有兩種工作模式:一種是篩選模式,另一種是附近模式。在篩選模式下可以按照行政區(qū)、避難場(chǎng)所分類和關(guān)鍵字檢索對(duì)避難場(chǎng)所進(jìn)行查找;在附近模式可以按照距離查找當(dāng)前位置周邊的避難場(chǎng)所。

2 軟件設(shè)計(jì)

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

圖2 軟件程序的主體結(jié)構(gòu)

2.1 ContentModel模塊設(shè)計(jì)

ContentModel類用來定義列表內(nèi)容,包括避難場(chǎng)所的名稱、地址、類型、避難場(chǎng)所與當(dāng)前設(shè)備的距離、圖片外連接地址、專題頁(yè)地址、經(jīng)度和緯度。此外該類還定義了獲取這些信息的成員函數(shù)。

2.2 LBSListActivity模塊設(shè)計(jì)

LBSListActivity類繼承了ListActivity類并實(shí)現(xiàn)了對(duì)OnScrollListener的接口。實(shí)現(xiàn)了列表顯示,同時(shí)還監(jiān)控焦點(diǎn)是否為列表最后一行。本文的列表頁(yè)為單頁(yè)10條列表,當(dāng)頁(yè)面翻滾到最后一行時(shí)點(diǎn)擊“讀取更多”按鈕,即可再打開10條列表。

要在列表底部添加“讀取更多”按鈕并顯示讀取的進(jìn)度就要在重寫父類Activity時(shí)添加 “讀取更多(load-MoreView)”按鈕和進(jìn)度條(progressBar)的 layout設(shè)置。

本設(shè)計(jì)需要在列表中顯示每個(gè)避難場(chǎng)所的照片,這些照片被保存在網(wǎng)絡(luò)相冊(cè)中,系統(tǒng)解析網(wǎng)絡(luò)照片地址并將照片轉(zhuǎn)換為Bit圖片顯示。這個(gè)過程通過get-BitmapFromUrl函數(shù)來完成。該函數(shù)首先建立與網(wǎng)絡(luò)相冊(cè)的連接,接收來自相冊(cè)的數(shù)據(jù)流并將全部數(shù)據(jù)流保存在緩存中,最后將緩存中的數(shù)據(jù)重新編碼成比特圖片。

2.3 DApplication模塊設(shè)計(jì)

Android中的Application類是為了需要保存全局變量而設(shè)計(jì)的基本類,該類在package創(chuàng)建時(shí)就存在。程序中的DApplication類是從Application類繼承下來的,用于保存本設(shè)計(jì)的全局變量。

本設(shè)計(jì)中的百度地圖SDK使用ak驗(yàn)證和網(wǎng)絡(luò)類型的劃分也是在DApplication類中完成的。網(wǎng)絡(luò)類型主要分為中國(guó)移動(dòng)CMWAP、中國(guó)聯(lián)通UNIWAP、中國(guó)電信CTWAP和3G網(wǎng)絡(luò)3GWAP。

2.4 MainActivity模塊設(shè)計(jì)

MainActivity 類主要完成可用網(wǎng)絡(luò)的檢測(cè)、篩選/附近模式的切換,地圖/列表模式的切換和篩選按鈕功能的實(shí)現(xiàn)。

篩選/附近模式的切換通過ToggleButton按鈕實(shí)現(xiàn),地圖/列表模式的切換通過getTabHost函數(shù)來完成,各種篩選條件通過設(shè)置Spinner控件來完成。

2.5 LBSLocation模塊設(shè)計(jì)

LBSLocation類主要完成終端的定位功能。編寫這個(gè)類需要用到百度定位API,所以在該文件前添加如下程序來導(dǎo)入百度程序包:

首先要在啟動(dòng)定位函數(shù)中配置定位信息,將定位經(jīng)緯度設(shè)置為百度經(jīng)緯度。然后編寫定位監(jiān)聽函數(shù)并實(shí)現(xiàn)對(duì)百度定位監(jiān)聽函數(shù)的接口。在定位監(jiān)聽函數(shù)中實(shí)現(xiàn)定位并計(jì)算當(dāng)前位置與每個(gè)避難場(chǎng)所的距離。

2.6 LBSCloud Search模塊設(shè)計(jì)

LBSCloudSearch類通過http post方式訪問百度云,利用百度云檢索API查找百度云存儲(chǔ)數(shù)據(jù),返回JSON數(shù)據(jù)供移動(dòng)應(yīng)用顯示。

云檢索前需要做好兩項(xiàng)準(zhǔn)備工作:(1)根據(jù)劃分的網(wǎng)絡(luò)類型進(jìn)行網(wǎng)絡(luò)接口配置;(2)設(shè)置百度云的databox及對(duì)應(yīng)ak的校驗(yàn)。

2.7 LBSMap Activity模塊設(shè)計(jì)

LBSMapActivity類主要用于實(shí)現(xiàn)百度地圖的顯示功能。編寫這個(gè)類需要用到百度定位API,所以在該文件前添加以下程序來導(dǎo)入百度程序包:

程序中使用initMapView()函數(shù)來完成初始化地圖,包括設(shè)置地圖中心坐標(biāo)、地圖縮放參數(shù)和地圖控制控件等。使用 addAllMarker()和 removeAllMarker()兩個(gè)函數(shù),實(shí)現(xiàn)在地圖中添加避難場(chǎng)所位置麻點(diǎn)和刪除這些麻點(diǎn)。

在LBSMapActivity類中定義了MyGeneralListener和OverlayIcon兩個(gè)類,分別用于監(jiān)控網(wǎng)絡(luò)和定義麻點(diǎn)樣式。

3 軟件測(cè)試

3.1 云存儲(chǔ)

百度云存儲(chǔ)接口支持單個(gè)geotable億級(jí)數(shù)據(jù)及數(shù)百GB大小的存儲(chǔ),每天支持百萬量級(jí)讀寫,每秒支持萬量級(jí)讀寫,完全滿足本設(shè)計(jì)的需求。在進(jìn)行軟件測(cè)試前,通過批量上傳的方式將應(yīng)急避難場(chǎng)所的信息存到百度云端。除了百度云自帶的字段外還需要自定義擴(kuò)展字段image、type和 shelterurl。其中 image為 string類型,用來存儲(chǔ)展示在終端的避難場(chǎng)所圖片地址;type為double類型,用來區(qū)分避難場(chǎng)所類型;shelterurl為string類型,用來存儲(chǔ)避難場(chǎng)所專輯頁(yè)面地址。

3.2 手機(jī)測(cè)試

軟件通過Android SDK模擬器仿真后進(jìn)入到手機(jī)實(shí)物測(cè)試,本次測(cè)試所用的手機(jī)為華為G520。手機(jī)測(cè)試步驟為:

(1)檢測(cè)在無網(wǎng)絡(luò)情況下程序是否退出;

(2)在無線 WiFi網(wǎng)絡(luò)下,打開程序在列表模式下瀏覽避難場(chǎng)所列表,檢查列表中的避難場(chǎng)所能否與百度云端存儲(chǔ)的數(shù)據(jù)對(duì)應(yīng);

(3)檢查列表中的內(nèi)容和圖片是否與設(shè)計(jì)一致,列表中的定位以及距離計(jì)算是否準(zhǔn)確;

(4)按照行政區(qū)和避難場(chǎng)所分類逐一進(jìn)行篩選測(cè)試,檢測(cè)篩選是否有誤;

(5)切換到周邊模式進(jìn)行周邊檢索,檢查周邊檢索是否準(zhǔn)確;

(6)將列表模式切換到地圖模式,檢查地圖上麻點(diǎn)能否與列表對(duì)應(yīng);

(7)將 WiFi網(wǎng)絡(luò)換成 GSM網(wǎng)絡(luò),重復(fù)步驟(2)~步驟(6)進(jìn)行檢測(cè)。

經(jīng)過上述測(cè)試,應(yīng)急避難場(chǎng)所查詢軟件所有功能工作正常,達(dá)到了預(yù)期目標(biāo)。圖3、圖4為篩選模式和附近模式下列表/地圖的測(cè)試照片。

本文設(shè)計(jì)了一個(gè)基于Android操作系統(tǒng)的應(yīng)急避難場(chǎng)所查詢方案,實(shí)現(xiàn)了對(duì)應(yīng)急避難場(chǎng)所的查詢、篩選和地圖展示等功能。本設(shè)計(jì)的創(chuàng)新點(diǎn)是使用了百度LBS云技術(shù),將避難場(chǎng)所的位置信息存儲(chǔ)到百度云端,并通過云檢索獲取信息。與傳統(tǒng)方式相比省去了架設(shè)服務(wù)器保存信息和維護(hù)信息的開銷。同時(shí)使用百度地圖API和定位API,將定位所得到的百度經(jīng)緯度和避難場(chǎng)所的經(jīng)緯度顯示在百度地圖上。手機(jī)測(cè)試結(jié)果表明,本設(shè)計(jì)完成了預(yù)期的全部功能。

[1]趙士達(dá),張楠,楊爽.地震時(shí)人口疏散模型研究[J].軟件導(dǎo)刊,2013(5):6-8.

圖3 篩選模式下的測(cè)試照片

圖4 附近模式下的測(cè)試照片

[2]馬志強(qiáng).基于Android平臺(tái)即時(shí)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2009.

[3]李寧.Android應(yīng)用開發(fā)實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2012.

[4]豆瑞星.百度成立 LBS事業(yè)部[J].互聯(lián)網(wǎng)周刊,2012,11(21):56-57.

[5]鄭云卿,黃琦.基于 Android平臺(tái)的軟件自動(dòng)化監(jiān)控工具的設(shè)計(jì)開發(fā)[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(2):235-238.

[6]彭璇,吳肖.Google Map API在網(wǎng)絡(luò)地圖服務(wù)中的應(yīng)用[J].測(cè)繪信息與工程,2010,35(1):25-27.

[7]BURNETTE E.Hello,Android:introducing google’s mobile development platform[M].American Pragmatic Bookshelf,2009.

[8]江燕良.基于Android智能終端的遠(yuǎn)程控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2012,38(8):129-132.

猜你喜歡
列表場(chǎng)所百度
巧用列表來推理
學(xué)習(xí)運(yùn)用列表法
聽的場(chǎng)所
Robust adaptive UKF based on SVR for inertial based integrated navigation
擴(kuò)列吧
遠(yuǎn)離不良場(chǎng)所
百度年度熱搜榜
戀愛場(chǎng)所的變化
百度遭投行下調(diào)評(píng)級(jí)
百度“放衛(wèi)星”,有沒有可能?
太空探索(2014年4期)2014-07-19 10:08:58
永春县| 静宁县| 石阡县| 肇州县| 公主岭市| 临漳县| 县级市| 乐昌市| 中方县| 客服| 弋阳县| 民勤县| 汝阳县| 灵台县| 精河县| 南康市| 通河县| 海林市| 武川县| 阿拉善左旗| 江川县| 珠海市| 汪清县| 新竹市| 龙陵县| 含山县| 棋牌| 麟游县| 万载县| 根河市| 连平县| 奎屯市| 长宁区| 思南县| 娱乐| 安义县| 碌曲县| 海原县| 日土县| 仪陇县| 胶州市|