999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ArcGIS For Android的地震信息發布系統的設計與實現

2016-03-25 06:13:42楊哲
微型電腦應用 2016年1期
關鍵詞:用戶信息系統

楊哲

?

基于ArcGIS For Android的地震信息發布系統的設計與實現

楊哲

摘 要:利用ArcGIS For Android,結合計算機互聯網絡技術、智能手機技術。設計并實現了Android地震信息發布系統的原型,這個原型可以在智能手機平臺上有效的展現可視化的地震信息數據。實現了向社會公眾及政府部門提供地震信息服務的設計目標。

關鍵詞:ArcGIS For Android;XML;地震信息發布;地理信息系統

0 引言

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

中國屬于地震多發國之一,準確快速的測地震數據以及急時向社會公眾發布地震信息,是政府相關部門的主要職責之一。隨著互聯網技術以及智能手機等相關技術的發展,用戶對地震信息發布服務的時效性以及準確性要求也越來越高。近年來,地理信息系統(GIS)技術發展迅速,自互聯網以及智能手機問世以來GIS的所有方面都出現了范式轉變。GIS的概念模型從孤立的架構轉變為一個可互操作的框架,從孤立的解決方案轉變為分布式的解決方案,從封閉的專用數據格式轉變為規范的開放格式,運行環境由桌面環境變為網絡以及移動環境。隨著GIS范式的轉變,把ArcGIS for Android等最新的移動GIS應用程序編程接口技術應用到地震信息發布系統中是完全可行的[1]。

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

1 系統的總體設計

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

圖1 地震信息發布系統框圖

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

2 系統的實現

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

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

2.1 XML簡介與解析

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

/1.0_hour.atom

2.1.1 XML簡介

XML是一種可擴展標記語言,它為人類可讀以及機器可讀的文檔格式定義了一系列的編碼規則。XML的設計目的是為了在互聯網上不同系統之間傳遞大量的結構化數據。XML是一種文本化的數據格式,由于使用了Unicode編碼,XML支持世界上的每一種語言。截至2009年,開發者們開發了數百種基于XML的語言,例如RSS,Atom,SOAP以及XHTML。

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

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

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

2.1.2 XML文件的解析

為了解析XML文件,本程序先通過網絡將XML文件讀入一個輸入流InputStream。Android系統中解析XML文件可以使用XmlPullParser。XML文件實質上是一棵遞歸定義的樹,此文件的首、末兩個標簽實質上就是這棵樹的樹根。Parser函數用于處理命名空間,并將輸入流作為輸入,調用nextTag函數后程序就讀取了XML文件的首標簽,相當于找到了這棵樹的根節點,找到根節點以后就可以遞歸的處理根節點的子樹,根節點的每一棵標簽為entry的子樹都是一個地震點的實體信息。下面的代碼用于尋找entry標簽,在找到entry標簽之后,readEntry函數將用同樣的方法處理entry標簽內部的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函數用于跳過不需要的標簽,當它檢測到下一個標簽不是一個開始標簽時拋出異常,否則跳過與這個開始標簽配對的結束標簽之間的所有內容(包括開始標簽與結束標簽)。由于XML文件中的標簽可以嵌套定義,為了保證skip方法在檢測到正確的結束標簽時終止,方法內部會維護一個局部變量depth用于記錄嵌套的深度,depth的值被初始化為1。depth的值為0時表示函數成功的跳過了一個標簽,否則如果當前處理的標簽內出現一個另一個開始標簽,depth的值增加1,直道遇到一個結束標簽時depth的值才會減少1。

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

2.2 地震信息的發布。

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

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

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提供的基礎地圖服務使用Web墨卡托坐標,而XML文件所獲取的地震點使用WGS84坐標,要將地震點信息正確的顯示到地圖上需要用GeometryEngine.project(point,SpatialReference.create(4326),SpatialReference.create(3857));函數進行空間參考轉換,SpatialReference.create(4326)代表輸入點使用的WGS84坐標系,SpatialReference.create(3857))代表基地圖使用的Web墨卡托坐標系。

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

圖2 地震信息的顯示

2.3 后臺警報服務的實現

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

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

3 總結

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

參考文獻

[1] 敖杰剛,王志紅. 基于 ArcGIS Server 的 REST 技術綜述[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平臺的移動位置信息服務開發研究[J].自動化技術與應用,2011,30 (12): 22-26.

[6] 劉軍偉.地球表面上兩點之間距離的幾種求算方法[J].許昌學院學報,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),男,白族,云南昆明,昆明理工大學,碩士,研究方向:地理信息系統二次開發。昆明,郵編650093

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

中圖分類號:TP311

文獻標志碼:A

猜你喜歡
用戶信息系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 国产在线一二三区| 亚洲综合亚洲国产尤物| 亚洲青涩在线| 凹凸精品免费精品视频| 欧美日韩免费观看| 日本欧美精品| 亚洲av无码成人专区| 国产一区在线视频观看| 91国内在线观看| 毛片视频网| 久久综合伊人77777| 精品少妇人妻一区二区| 国产在线精品美女观看| 日本黄色a视频| 国产精品午夜电影| 无码AV高清毛片中国一级毛片| 一级爆乳无码av| 亚洲欧美成aⅴ人在线观看| 成人91在线| 亚洲精品黄| 国产精品不卡片视频免费观看| 欧美成人日韩| 亚洲国产精品国自产拍A| 天堂av高清一区二区三区| 欧美性精品| 亚洲三级a| www.国产福利| 中文字幕色在线| 国产一二三区视频| 日韩久草视频| 成人免费午夜视频| 亚洲侵犯无码网址在线观看| 91久久夜色精品国产网站| 2020久久国产综合精品swag| 91久久精品日日躁夜夜躁欧美| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产精品55夜色66夜色| 无码电影在线观看| 欧美日本在线| 色婷婷成人| 国内精品小视频福利网址| 毛片免费在线视频| 日韩精品一区二区深田咏美| 国产成人亚洲欧美激情| 国产AV无码专区亚洲A∨毛片| 欧美va亚洲va香蕉在线| 精品国产自在在线在线观看| 亚洲最新地址| 狠狠色综合久久狠狠色综合| 国产成人h在线观看网站站| 国产精品福利尤物youwu| 69av免费视频| 青青草原国产av福利网站| 九色综合视频网| 国产亚洲精品精品精品| 欧美成人看片一区二区三区| 久久国产精品夜色| 国产精品久久久精品三级| 人妻丰满熟妇αv无码| 高清免费毛片| m男亚洲一区中文字幕| 国产无人区一区二区三区| 久久久久亚洲av成人网人人软件| 国产在线精品人成导航| 国产视频欧美| 好吊色国产欧美日韩免费观看| 国产福利免费观看| 国产丝袜无码精品| 中文字幕 日韩 欧美| 久久久亚洲色| 亚洲最大情网站在线观看| 黄片在线永久| 国产尤物在线播放| 全色黄大色大片免费久久老太| 久久久久亚洲精品成人网| 无码日韩人妻精品久久蜜桃| 亚洲综合色吧| 欧美成人午夜在线全部免费| 国产精品一线天| 国产精品大尺度尺度视频| 国内精品91| 久久国产乱子|