亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ArcGIS For Android的地震信息發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)

        2016-03-25 06:13:42楊哲
        微型電腦應(yīng)用 2016年1期
        關(guān)鍵詞:應(yīng)用程序文檔標簽

        楊哲

        ?

        基于ArcGIS For Android的地震信息發(fā)布系統(tǒng)的設(shè)計與實現(xiàn)

        楊哲

        摘 要:利用ArcGIS For Android,結(jié)合計算機互聯(lián)網(wǎng)絡(luò)技術(shù)、智能手機技術(shù)。設(shè)計并實現(xiàn)了Android地震信息發(fā)布系統(tǒng)的原型,這個原型可以在智能手機平臺上有效的展現(xiàn)可視化的地震信息數(shù)據(jù)。實現(xiàn)了向社會公眾及政府部門提供地震信息服務(wù)的設(shè)計目標。

        關(guān)鍵詞:ArcGIS For Android;XML;地震信息發(fā)布;地理信息系統(tǒng)

        0 引言

        地震是由地殼下巖層的斷層發(fā)生位移所引起的,地球每時每刻都在發(fā)生只有儀器才能測量到的小型地震(全球每年會發(fā)生1450000次以上的里氏2級以下地震),斷層的位移往往發(fā)生在幾十或者數(shù)百公里深的地下。但是當(dāng)發(fā)生大型的斷層位移時,其所釋放的巨大能量會以地震波的形式傳播到地表,造成人員傷亡和財產(chǎn)損失。中國的建筑物特別是農(nóng)村地區(qū)的建筑物防震性能較差,而且人口密度高,如果發(fā)生里氏5級以上的淺源地震就有可能造成巨大人員傷亡。

        中國屬于地震多發(fā)國之一,準確快速的測地震數(shù)據(jù)以及急時向社會公眾發(fā)布地震信息,是政府相關(guān)部門的主要職責(zé)之一。隨著互聯(lián)網(wǎng)技術(shù)以及智能手機等相關(guān)技術(shù)的發(fā)展,用戶對地震信息發(fā)布服務(wù)的時效性以及準確性要求也越來越高。近年來,地理信息系統(tǒng)(GIS)技術(shù)發(fā)展迅速,自互聯(lián)網(wǎng)以及智能手機問世以來GIS的所有方面都出現(xiàn)了范式轉(zhuǎn)變。GIS的概念模型從孤立的架構(gòu)轉(zhuǎn)變?yōu)橐粋€可互操作的框架,從孤立的解決方案轉(zhuǎn)變?yōu)榉植际降慕鉀Q方案,從封閉的專用數(shù)據(jù)格式轉(zhuǎn)變?yōu)橐?guī)范的開放格式,運行環(huán)境由桌面環(huán)境變?yōu)榫W(wǎng)絡(luò)以及移動環(huán)境。隨著GIS范式的轉(zhuǎn)變,把ArcGIS for Android等最新的移動GIS應(yīng)用程序編程接口技術(shù)應(yīng)用到地震信息發(fā)布系統(tǒng)中是完全可行的[1]。

        本程序使Android Studio基于ArcGIS For Android開發(fā),程序利用美國地質(zhì)調(diào)查局提供的實時地震信息XML文件作為數(shù)據(jù)源,自動解析XML文檔,獲得地震信息,并將地震信息顯示于MapView控件上。用戶可以隨時隨地了解地震信息。同時,本程序使用Android servers于手機后臺運行,若地震發(fā)生時用戶處于危險區(qū)域時系統(tǒng)會發(fā)出報警。

        1 系統(tǒng)的總體設(shè)計

        地震信息發(fā)布系統(tǒng)所發(fā)布的數(shù)據(jù)類型比較少,但是對于數(shù)據(jù)的實時性要求很高,不能夠及時準確的提供地震信息就會延誤抗震救災(zāi)工作,帶來不必要的生命和財產(chǎn)損失。根據(jù)地震信息發(fā)布系統(tǒng)用戶的具體需求,結(jié)合ArcGIS For Android的技術(shù)特點,將整個系統(tǒng)分成兩大功能模塊,分別是:地震信息發(fā)布模塊與后臺報警模塊。整個系統(tǒng)的構(gòu)架如圖1所示:

        圖1 地震信息發(fā)布系統(tǒng)框圖

        根據(jù)系統(tǒng)工程設(shè)計的思想,系統(tǒng)需要滿足滿實時性、實用性、可靠性、完備性、科學(xué)性、規(guī)范性、經(jīng)濟性、可擴展性和開放性等設(shè)計原則。本系統(tǒng)自動獲取地震數(shù)據(jù)、發(fā)布地震信息。其數(shù)據(jù)類型、編碼和圖形符號符合現(xiàn)有的國家和行業(yè)規(guī)范,能夠?qū)崿F(xiàn)空間數(shù)據(jù)和屬性數(shù)據(jù)的無縫鏈接,符合社會公眾的操作習(xí)慣,不僅實現(xiàn)地震信息管理的科學(xué)化、規(guī)范化和自動化的管理要求,又滿足社會公眾及政府部門對地震信息發(fā)布服務(wù)的需求,從而達到多方受益的目標。

        2 系統(tǒng)的實現(xiàn)

        本系統(tǒng)使用ArcGIS for Android開發(fā),ArcGIS for Android 是美國ESRI 公司的移動端GIS解決方案,將GIS的適用范圍從桌面以及Web平臺擴展到移動平臺。ArcGIS for Android 使開發(fā)人員能夠使用Java 語言在Android系統(tǒng)上構(gòu)建多種與地圖相關(guān)的應(yīng)用程序,這些應(yīng)用程序可以使用ArcGIS Server 提供的強大制圖、地理編碼、地理處理和自定義功能。

        Android Studio使用Gradle腳本來編譯APK應(yīng)用程序[2],要在加載ArcGIS for Android所提供的MapView控件首先需引入ESRI提供的二進制Maven文件,只需在工程的build.gradle (Module: app)文件內(nèi)dependencies的標簽下添加一個compile 'com.esri.arcgis.android:arcgis-android:10.2.5'值即可[3]。

        2.1 XML簡介與解析

        為了實時的獲取地震點的信息,本程序解析由美國地質(zhì)調(diào)查局提供的實時地震信息XML文件,文件的地址為: http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary

        /1.0_hour.atom

        2.1.1 XML簡介

        XML是一種可擴展標記語言,它為人類可讀以及機器可讀的文檔格式定義了一系列的編碼規(guī)則。XML的設(shè)計目的是為了在互聯(lián)網(wǎng)上不同系統(tǒng)之間傳遞大量的結(jié)構(gòu)化數(shù)據(jù)。XML是一種文本化的數(shù)據(jù)格式,由于使用了Unicode編碼,XML支持世界上的每一種語言。截至2009年,開發(fā)者們開發(fā)了數(shù)百種基于XML的語言,例如RSS,Atom,SOAP以及XHTML。

        一個完整的XML文檔包括Unicode字符、標記、內(nèi)容、標簽、元素、屬性以及XML聲明。下面是美國地質(zhì)調(diào)查局提供的實時地震信息XML文件的部分內(nèi)容。

        幾乎每一個合法的Unicode字符都可以出現(xiàn)在XML文檔中,應(yīng)用程序可以通過簡單的規(guī)則區(qū)分標記和內(nèi)容。標記由“<”開始,以“>”結(jié)束,或者由“&”開始,以“,”結(jié)束,不是標記的字符串都是內(nèi)容。標簽一種標記結(jié)構(gòu),由“<”開始,以“>”結(jié)束。標簽有開始標簽,例如:<time>;結(jié)束標簽,例如:</time>, XML 元素指的是從(且包括)開始標簽直到(且包括)結(jié)束標簽的部分,元素可包含文本、其他元素(稱之為子元素)、或者同時包含兩者。元素也可以擁有屬性。XML 元素可以在開始標簽中包含屬性,屬性(Attribute) 提供關(guān)于元素的額外(附加)信息。例如在<img src="photo.jpg" alt='kmust, by yz' />中,img元素有src和alt兩個屬性,屬性值分別為photo.jpg以及kmust, by yz。XML文檔聲明也是XML文檔中必不可少的一部分,XML聲明區(qū)分了XML文檔與HTML文檔。每個XML文檔的開頭便是XML聲明,例如:<xml version="1.0" encoding="UTF-8">指定了XML文件的版本以及編碼字符集。美國地質(zhì)調(diào)查局提供的實時地震信息XML文件的每個元素的含義如表1所示:

        表1 XML文件中每個標簽的含義

        2.1.2 XML文件的解析

        為了解析XML文件,本程序先通過網(wǎng)絡(luò)將XML文件讀入一個輸入流InputStream。Android系統(tǒng)中解析XML文件可以使用XmlPullParser。XML文件實質(zhì)上是一棵遞歸定義的樹,此文件的首、末兩個標簽實質(zhì)上就是這棵樹的樹根。Parser函數(shù)用于處理命名空間,并將輸入流作為輸入,調(diào)用nextTag函數(shù)后程序就讀取了XML文件的首標簽,相當(dāng)于找到了這棵樹的根節(jié)點,找到根節(jié)點以后就可以遞歸的處理根節(jié)點的子樹,根節(jié)點的每一棵標簽為entry的子樹都是一個地震點的實體信息。下面的代碼用于尋找entry標簽,在找到entry標簽之后,readEntry函數(shù)將用同樣的方法處理entry標簽內(nèi)部的title,updated,georss:point,georss:elev標簽。

        private List readXML(XmlPullParser parser) throws XmlPullParserException, IOException {

        List entries = new ArrayList();

        parser.require(XmlPullParser.START_TAG, ns, "feed");

        while (parser.next() != XmlPullParser.END_TAG) {

        if (parser.getEventType() != XmlPullParser.START_TAG)

        {

        continue;

        }

        String name = parser.getName();

        if (name.equals("entry")) {

        entries.add(readEntry(parser));

        } else {

        skip(parser);

        }

        }

        return entries;

        }

        這段代碼中的skip函數(shù)用于跳過不需要的標簽,當(dāng)它檢測到下一個標簽不是一個開始標簽時拋出異常,否則跳過與這個開始標簽配對的結(jié)束標簽之間的所有內(nèi)容(包括開始標簽與結(jié)束標簽)。由于XML文件中的標簽可以嵌套定義,為了保證skip方法在檢測到正確的結(jié)束標簽時終止,方法內(nèi)部會維護一個局部變量depth用于記錄嵌套的深度,depth的值被初始化為1。depth的值為0時表示函數(shù)成功的跳過了一個標簽,否則如果當(dāng)前處理的標簽內(nèi)出現(xiàn)一個另一個開始標簽,depth的值增加1,直道遇到一個結(jié)束標簽時depth的值才會減少1。

        處理XML文件的最后一步是用readEntry函數(shù)所獲取的地震實體的所有屬性構(gòu)造一個Earthquake類的對象,將這個對象加入一個列表的末尾,最后將這個列表返回。

        2.2 地震信息的發(fā)布。

        地震信息發(fā)布模塊是本系統(tǒng)最重要的功能。用戶打開應(yīng)用程序后首先就會進入到本模塊,在MapView地圖控件上用戶可以看到顯示地震地點的紅色圓點,點擊圓點以后用戶可以在彈出的信息窗口內(nèi)查看到震級、發(fā)震時間等地震的具體信息。

        為了防止訪問網(wǎng)絡(luò)時的延時對程序UI模塊加載時的影響,Android程序推薦用多線程的方式訪問網(wǎng)絡(luò),可以使用一個繼承自AsyncTask類的子類DownloadXML實現(xiàn)這種多線程的網(wǎng)絡(luò)訪問。DownloadXML類需要重寫基類的doInBackground與onPostExecute兩個方法。在doInBackground方法內(nèi)使用上一節(jié)所介紹的方法解析XML文件。解析的結(jié)果是一個包含地震點信息的List。在onPostExecute方法內(nèi),首先接受結(jié)果List,并且使用com.esri.core.geometry.Point對象接收地震信息點的位置屬性。震級以及發(fā)震時間等其它屬性則需要使用HashMap傳入Point對象。具體實現(xiàn)代碼如下:

        eq = (Earthquake) result.get(i);

        Point point = new Point();

        point.setXY(eq.longitude, eq.latitude);

        java.util.Map<java.lang.String, java.lang.Object> cc = new HashMap<String, java.lang.Object>();

        cc.put("title", eq.M);

        cc.put("time", eq.updated);

        cc.put("location", eq.point);

        cc.put("elev", eq.elev);

        由于arcgisonline提供的基礎(chǔ)地圖服務(wù)使用Web墨卡托坐標,而XML文件所獲取的地震點使用WGS84坐標,要將地震點信息正確的顯示到地圖上需要用GeometryEngine.project(point,SpatialReference.create(4326),SpatialReference.create(3857));函數(shù)進行空間參考轉(zhuǎn)換,SpatialReference.create(4326)代表輸入點使用的WGS84坐標系,SpatialReference.create(3857))代表基地圖使用的Web墨卡托坐標系。

        實現(xiàn)用戶點擊地震點以后彈出地震的詳細信息可用map.setOnSingleTapListener回調(diào)函數(shù)進行監(jiān)聽,這個函數(shù)獲取用戶點擊時的x,y屏幕坐標,自動將屏幕坐標轉(zhuǎn)換為地理坐標,并且在一定的容差范圍內(nèi)查找地震點信息,如果查找成功會在Callout對象中顯示地震詳細信息。地震信息的顯示如圖2所示:

        圖2 地震信息的顯示

        2.3 后臺警報服務(wù)的實現(xiàn)

        本模塊使用Android Service在后臺運行,通過android系統(tǒng)獲取用戶的位置[4],實時計算用戶與震中的距離,當(dāng)距離小于一個閥值時系統(tǒng)會發(fā)出警報。由于不需要計算精確的距離以及節(jié)省后臺進程的內(nèi)存,本模塊不使用ArcGIS For Android提供的精確距離計算方法。而是將地球橢球體近似為球體,利用如下公式[5]就可以計算出用戶位置與震中位置兩點之間的弧長。

        其中s表示弧長,latitude1,longitude1 表示用戶位置的經(jīng)緯度,latitude2,longitude2 表示震中位置的經(jīng)緯度,a= latitude 1 - latitude 2 為兩點緯度之差 b= longitude1 -longitude 2 為兩點經(jīng)度之差,6378.137為地球半徑的近似。

        3 總結(jié)

        通過使用ArcGIS For Android提供的應(yīng)用程序編程接口,本文所提出地震信息發(fā)布系統(tǒng)的原型被證明可以在智能手機上有效的展現(xiàn)可視化的地震信息數(shù)據(jù)。此外,ArcGIS For Android以及XML等技術(shù)在構(gòu)建其他客戶端服務(wù)器型智能手機應(yīng)用時也具有一定的參考價值。

        參考文獻

        [1] 敖杰剛,王志紅. 基于 ArcGIS Server 的 REST 技術(shù)綜述[J].測繪標準化, 2012,4 :13-15.

        [2] Android SDK[EB/OL]. https://developer.android.com/tra ining/index.html

        [3] Create an Offline Map[EB/OL].

        [4] https://developers.arcgis.com/android/guide/create-an-offl ine-map.htm

        [5] 黃志勇.基于Android平臺的移動位置信息服務(wù)開發(fā)研究[J].自動化技術(shù)與應(yīng)用,2011,30 (12): 22-26.

        [6] 劉軍偉.地球表面上兩點之間距離的幾種求算方法[J].許昌學(xué)院學(xué)報,2007, 26(5) : 126-129.

        Design and Implementation of Earthquake Information Publish System Based on ArcGIS for Android

        Yang Zhe
        (Kunming University of Science and Technology, Kunming650093, China)

        Abstract:By using the ArcGIS for Android and combining with computer network and smartphone technology, this paper designs and implements a system prototype for earthquake information publish. This prototype is proved to be effective on the smartphone to show the visualization of earthquake information and data. Achieve the goal of the design to provide the public and government departments with earthquake information.

        Key words:ArcGIS For Android; XML; Earthquake Information Publish; GIS

        收稿日期:(2015.04.27)

        作者簡介:楊 哲(1990),男,白族,云南昆明,昆明理工大學(xué),碩士,研究方向:地理信息系統(tǒng)二次開發(fā)。昆明,郵編650093

        文章編號:1007-757X(2016)01-0054-03

        中圖分類號:TP311

        文獻標志碼:A

        猜你喜歡
        應(yīng)用程序文檔標簽
        有人一聲不吭向你扔了個文檔
        刪除Win10中自帶的應(yīng)用程序
        電腦報(2019年12期)2019-09-10 05:08:20
        無懼標簽 Alfa Romeo Giulia 200HP
        車迷(2018年11期)2018-08-30 03:20:32
        不害怕撕掉標簽的人,都活出了真正的漂亮
        海峽姐妹(2018年3期)2018-05-09 08:21:02
        基于RI碼計算的Word復(fù)制文檔鑒別
        標簽化傷害了誰
        Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
        基于多進制查詢樹的多標簽識別方法
        計算機工程(2015年8期)2015-07-03 12:20:27
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        不讓他人隨意下載Google文檔
        電腦迷(2012年4期)2012-04-29 06:12:13
        2019nv天堂香蕉在线观看| 久久精品国产亚洲AⅤ无码剧情 | 午夜精品人妻中字字幕| 中文字幕本久久精品一区| 国产精品久久久久乳精品爆| 在线观看免费午夜大片| 亚洲精品综合在线影院| 在线日本国产成人免费精品| 精品成在人线av无码免费看| 少妇厨房愉情理伦片bd在线观看| 亚洲AV日韩AV高潮喷潮无码| 手机在线免费观看av不卡网站| 亚洲av永久无码天堂网小说区| 少妇的肉体k8经典| 欧美亚洲国产精品久久久久| 高潮精品熟妇一区二区三区| 国产精品欧美久久久久久日本一道| 公和我做好爽添厨房| 日韩人妻无码精品-专区| 亚洲亚洲网站三级片在线| 午夜国产在线精彩自拍视频| 日本饥渴人妻欲求不满| 欧美国产精品久久久乱码| 亚洲成a人片在线观看导航| 在线观看av不卡 一区二区三区| 玩弄少妇人妻中文字幕| 亚洲精品一区二区三区大桥未久| 亚洲色四在线视频观看| 亚洲av老熟女一区二区三区 | 久久99国产精品久久99| 亚洲成人小说| 亚洲av套图一区二区| 一区二区国产av网站| 男女啪啪无遮挡免费网站| 亚洲精品aⅴ无码精品丝袜足| 三级网站亚洲三级一区| 中国人妻与老外黑人| 国产人成精品免费视频| 一本久道在线视频播放| 免费国产在线精品一区| 四虎影院在线观看|