基本信息
- 項目名稱:
- 基于Google Maps的臺風信息管理與服務系統(tǒng)研究與實現(xiàn)
- 小類:
- 信息技術(shù)
- 大類:
- 科技發(fā)明制作B類
- 簡介:
- 目前,WEBGIS大多是基于企業(yè)級GIS平臺開發(fā)的,以這種形式開發(fā)的系統(tǒng)都普遍存在一些不足。本研究探討了基于Google Maps等技術(shù)建立WebGIS系統(tǒng)。該系統(tǒng)集成了一個將臺風信息數(shù)據(jù)表示、地圖可視化表達、專題展示、查詢、統(tǒng)計分析和信息發(fā)布與一體的,基于網(wǎng)絡的管理與服務系統(tǒng),為氣象信息科學添加了新的研究內(nèi)容,也能應用于實際的氣象信息的共享和管理。
- 詳細介紹:
- 一、研究背景 我國是一個臺風災害多發(fā)的國家,深受臺風災害所帶來破壞的影響。隨著計算機技術(shù),網(wǎng)絡技術(shù)和GIS等技術(shù)的發(fā)展,臺風管理部門對臺風信息的管理與服務的要求也越來越高。目前國內(nèi)外已經(jīng)有研究將網(wǎng)絡地理信息系統(tǒng)(WebGIS)技術(shù)用于臺風信息的共享與管理中,但是這些臺風信息系統(tǒng)大多數(shù)都是基于成熟的企業(yè)級WEBGIS 平臺開發(fā)的,這些系統(tǒng)雖然已經(jīng)用于地理信息管理等服務中,但是它們都存在著不足。 本研究是基于Google Maps 的地圖資源,將廣為人知的Google 地圖嵌入到網(wǎng)頁中,利用其免費提供的API 研究的GIS,并應用AJAX 技術(shù)進行腳本的異步調(diào)用,使得用戶可以不刷新整個頁面,調(diào)用形成一種全新的WEBGIS,這在理論上是一種大膽的嘗試與創(chuàng)新;本系統(tǒng)具有較強的現(xiàn)實意義,為臺風信息的共享與管理起到了較好的作用。 二、系統(tǒng)設計與開發(fā) (一)需求分析 基于Google Maps的臺風信息管理與服務系統(tǒng)(在本文以下內(nèi)容中,在不產(chǎn)生混淆的前提下,將其稱為“臺風信息管理與服務系統(tǒng)”)要能通過網(wǎng)絡獲取或人工輸入等方式,對臺風路徑信息以及臺風觀測點信息等進行錄入、管理與顯示,并自動實時地將臺風信息、風圈半徑影響進行分析,將臺風實況信息和預測信息綜合顯示于地理地圖中,將數(shù)值信息予以可視化表達。能通過臺風實況與預測路徑、風圈半徑與地理底圖的疊加,能夠為氣象預報和防汛指揮部門提供科學決策依據(jù)。能實現(xiàn)臺風基礎信息服務,并提供臺風專題信息以及臺風知識等,能為公眾提供精度更高、效果更直觀、速度更快的高質(zhì)量的氣象服務。 (二)架構(gòu)設計 由于臺風信息管理與服務系統(tǒng)是基于Google Maps的地圖資源,將Google地圖這種網(wǎng)絡資源嵌入到網(wǎng)頁中,所有臺風實況信息和預測信息都需要從臺風信息數(shù)據(jù)庫里讀或者向臺風信息數(shù)據(jù)庫里寫,然后在Google地圖上實時可視化展示,故本系統(tǒng)整體上采用典型的三層WebGIS架構(gòu)。 本研究要開發(fā)的WebGIS,選用ASP.NET平臺下開發(fā)服務器端的動態(tài)Web程序,利用Google Maps API作為地圖數(shù)據(jù)源,用于創(chuàng)建和配置WebGIS應用程序的一個部分。應用AJAX技術(shù),減少了冗余請求和響應對服務器造成的負荷,實現(xiàn)客戶端的異步數(shù)據(jù)讀取。底層的數(shù)據(jù)層是臺風信息數(shù)據(jù)庫,由微軟的SQL Server管理與維護;中間層即應用邏輯層,又由Web服務層和Google 地圖服務器組成,由微軟的IIS作為Web服務器,這里的Google地圖服務器就相當于一般WebGIS當中的GIS服務器,使用LINQ技術(shù)讀寫到數(shù)據(jù)庫;客戶層即用戶瀏覽器。 (三)功能模塊設計 基于Google Maps的臺風信息管理與服務系統(tǒng)要實現(xiàn)臺風信息快速顯示、臺風專題、歷史查詢、統(tǒng)計與分析、信息發(fā)布、系統(tǒng)幫助等模塊功能。 (四)數(shù)據(jù)庫設計 通過對臺風性質(zhì)的研究,可以發(fā)現(xiàn)組成臺風信息的元素眾多,臺風路徑包括了臺風編號、臺風名、英文名、生成時間、生成位置、首次登錄地點,每一條臺風路徑均包括了多個觀測點,每個觀測點的信息包括時間、中心位置、中心風力、最大風速、中心氣壓、移動速度、移動方向、七級風圈半徑、十級風圈半徑、預報臺路徑、強度類型。 由于Google Maps API對折線GPolyline提供一個函數(shù)fromEncoded(),可以不需要將若干對點的經(jīng)度和緯度作為折線實體屬性,而是通過將由若干對組成折線的點經(jīng)緯度按序編碼完的字符串和編碼級別作為其屬性來代替若干對經(jīng)緯度表示折線,故可以將編碼后的字符串和編碼級別作為臺風路徑的兩個屬性,這樣一條臺風路徑折線實體存儲到關系數(shù)據(jù)庫二維表的一個元組中,且均作為單個數(shù)據(jù)項。臺風觀測點也是空間實體信息,但是由于觀測點的空間信息僅包括一對經(jīng)緯度,且每個觀測點的預測路徑均可以通過上述編碼方式來存儲,故一個臺風觀測點也可以存儲到關系數(shù)據(jù)庫二維表的一個元組中。于是用一張表來存儲臺風路徑信息,用另一張表存儲臺風觀測點信息,再用一張表來存儲特權(quán)用戶的登錄信息。 (五)系統(tǒng)開發(fā) 本系統(tǒng)選用了微軟Visual Studio 2008集成開發(fā)環(huán)境下的ASP.NET 3.5平臺進行開發(fā),選用了C#語言作為系統(tǒng)服務器端程序的編寫,用JavaScript語言作為系統(tǒng)客戶端程序的編寫,用微軟SQL Server 2008 R2進行臺風信息數(shù)據(jù)庫的創(chuàng)建和管理。頁面中基于.Net的控件全部采用第三方控件工具Developer Express v2010制作,其它控件由Adobe Dreamweaver CS4軟件制作。 三、系統(tǒng)理論設計關鍵算法 (一)數(shù)據(jù)模型轉(zhuǎn)化的算法 由于臺風信息是地理空間信息,通過存多對坐標的方式來將一條臺風路徑折線實體存儲到關系數(shù)據(jù)庫二維表的一個元組中不現(xiàn)實,因為第二代關系數(shù)據(jù)庫不支持嵌套與面向?qū)ο竽P?,并且折線點對的個數(shù)是不確定的,若將其存儲于單個元組中將會帶來數(shù)據(jù)項個數(shù)不確定,需要進行由面向?qū)ο蟮目臻g數(shù)據(jù)模型向關系數(shù)據(jù)模型轉(zhuǎn)化,也就是要將若干個經(jīng)緯度對轉(zhuǎn)換為編碼和編碼級別的算法編程實現(xiàn)。 該編碼算法的基本原理是將經(jīng)緯度對以二進制的形式表現(xiàn)出來,再將這些二進制有序地轉(zhuǎn)化為ASCII碼存儲,具體步驟如下: (1)取初始有符號值; (2)將其取十進制值乘以1 e 5,并取整 X; (3)將十進制值轉(zhuǎn)換為二進制值,必須通過對二進制值求反并在結(jié)果中添加 1 的方法,使用負值的二補碼來計算負值。 若X >= 0,則得32位二進制字符串 ∑ f ( i ) = b ( X )(其中f ( i ) = ” 0 ” 或 ” 1 ”,0 < i < 32,b ( X ) 為正數(shù)轉(zhuǎn)為32位二進制數(shù)的函數(shù));若 X < 0,則得32位二進制字符串 ∑ f ( i ) = r ( b ( -X ) ) + “ 1 ” (其中r ( x ) 為二進制取反函數(shù),0 < i < 32,∑表示字符串連接); (4)將二進制值左移1位,即 ∑ f ( i ) = ∑ f ( i ) + ” 0 ”(0 < i < 32 ); (5)如果原來的十進制值是負值,則對該編碼求反,得 ∑ f ( i ) = ∑ r ( f ( i ) ) + ” 0 ”(0 < i < 32); (6)將該二進制值分為5位一組的塊(從右側(cè)開始),得 ∑∑ F ( j , k ) = g ( a ( ∑ f ( i ) , ” 000 ” ) , 5 ) (其中 a ( x , y ) 為在 x 左邊插入字符串 y,g ( x , y ) 為將字符串 x 按 y 個字符進行分組,得 0 < j < 7, 0 < k < 5); (7)將這些 5 位一組的塊倒序放置,得 ∑∑ F ( j , k ) = R ( ∑ F ( j ) ) (R ( x ) 為字符串倒置函數(shù)); (8)如果后面還有一個位塊,則將每個值與0x20進行“或” ( OR ) 操作,得∑∑ F ( j , k ) = OR ( ∑∑ F ( j , k ) , 0x20 )(其中0 < j < 7,0 < k < 5); (9)將每個值轉(zhuǎn)換為十進制值,得 ∑ f2 ( i ) = o ( ∑ F ( j ) )(其中f2 ( i ) 為十進制數(shù),o ( x )為轉(zhuǎn)換為十進制函數(shù)); (10)將每個值加上63,得 ∑ f2 ( i ) = ∑ ( f2 ( i ) + 63 ); (11)將每個值轉(zhuǎn)換為其 ASCII 對應值 ∑ f2 ( i ) = ∑ ( asc ( f2 ( i ) ) )(其中asc ( x )為數(shù)字轉(zhuǎn)化ASCII值); (二)臺風風圈顯示的算法 由于Google Maps API沒有加載圓形空間實體的函數(shù),故臺風風圈的地圖顯示需要根據(jù)中心點的經(jīng)緯度、風圈半徑以及該點在地球上的位置算出相應的正100邊形的上的100個點,正100邊形已經(jīng)可以近似等同于圓形了,具體步驟如下: (1)獲取風圈半徑 r ( km ) 和圓心的緯度 lat ( ° )、經(jīng)度 lot ( ° ); (2)計算出該圓心的半徑的長度相當于緯度的角度數(shù)Clat = r / ( C / 360° ),其中C為赤道的長度等于40075.04 km,Clat = r /111.32; (3)計算出該圓心的半徑的長度相當于在該位置經(jīng)度的角度數(shù)Clon = Clat / cos ( lat ); (4)正100邊形共包含100個等腰三角形,每個三角形頂角為3.6°,故每個圓心到頂點的向量為 ( Clat * sin ( 3.6° * i ) , Clon * cos ( 3.6° * i ) )。 (三)臺風路徑預測的算法 臺風相似性,在一定程度上反映了相似的臺風影響,因此,與預臺風臺風未來的發(fā)展趨勢可推斷臺風采樣類似的路徑,也就是說,點類似方法的基本觀。本研究采用如下的算法如圖5所示,P1,P2和P3分別為實時路徑12小時,6小時和當前點記錄;H1,H2和H3為落入相同的歷史路徑臺風的P1,從P1,P2和P3的最近點P2和P3的緩沖區(qū)。根據(jù)獲取的屬性信息獲取H1,H2和H1,H3的兩個時間間隔的記錄,得到兩臺風的移動速率比,假設H2、H3兩點的時間間隔為12小時,可確定臺風歷史與臺風中心的移動速度比率為1 /2。同理計算出H1和H3的速度比點的時間間隔為1 /2,如果兩次結(jié)果不等則取平均值。根據(jù)比率選定H3后的點為48小時后的24小時臺風預報的實時參考點。 獲得相似的歷史所需的參考點,臺風預報后,用路徑的相似度計算方法相結(jié)合,得到歷史的權(quán)重相似的臺風,得到所需的相似歷史臺風的預測參考點之后,再結(jié)合路徑相似度算法的方法得到的各歷史臺風相似度的權(quán)重, 計算出了當前位置的未來臺風的預報公式。 四、系統(tǒng)特點 (一)系統(tǒng)多層架構(gòu)體系 系統(tǒng)多層架構(gòu)體系,采用典型的基于B/S的客戶層、業(yè)務邏輯層和數(shù)據(jù)層三層架構(gòu),分別管理界面顯示、邏輯流轉(zhuǎn)控制、數(shù)據(jù)處理,業(yè)務邏輯層又可以細分為Web程序服務層和Google Maps服務層,這樣使得系統(tǒng)開發(fā)結(jié)構(gòu)層次分明、功能分工明確。 (二)無需組織復雜的空間數(shù)據(jù)庫 無需組織復雜的空間數(shù)據(jù)庫,這是本系統(tǒng)最明顯的特點。與傳統(tǒng)的基于ArcIMS的WEBGIS 相比,本研究不需要設計和現(xiàn)實多層的、復雜的空間數(shù)據(jù),這就大大降低了開發(fā)的成本。與此同時,數(shù)據(jù)庫也是屬性數(shù)據(jù)庫,這樣就可以將存坐標的空間數(shù)據(jù)庫轉(zhuǎn)化為存編碼的屬性數(shù)據(jù)庫。 (三)可自定義用戶界面 與傳統(tǒng)的基于ArcIMS的WebGIS客戶端標準界面相比,采用Google Maps API開發(fā),首先從地圖表現(xiàn)上,用戶將會更加青睞皆為熟知的電子地圖,本系統(tǒng)都是從用戶業(yè)務和習慣的角度出發(fā),按照方便、快捷與人性化原則來設計用戶界面的。 (四)靈活運用組件和接口 為了獲得系統(tǒng)的運行的高效性,在開發(fā)過程中編寫和調(diào)用了一些組件,讓它們直接獨立地處理相關的邏輯業(yè)務。同時為了保持系統(tǒng)的可擴展性,系統(tǒng)中設計和預留了一些接口,為今后系統(tǒng)的擴展和更新作了充分的準備。 五、結(jié)語 基于Google Maps的WebGIS將Google Maps提供的API進行二次開發(fā),并應用AJAX技術(shù)進行腳本的異步調(diào)用形成一種全新的WebGIS,這在理論上是一種大膽的嘗試與創(chuàng)新。系統(tǒng)的實施為GIS 增添了臺風信息系統(tǒng)研究的新內(nèi)容,并能應用于臺風氣象災害數(shù)據(jù)信息的管理與服務。
作品專業(yè)信息
設計、發(fā)明的目的和基本思路、創(chuàng)新點、技術(shù)關鍵和主要技術(shù)指標
- 本作品將廣為人知的Google地圖嵌入到網(wǎng)頁中,利用其免費提供的API研究的GIS,并應用AJAX技術(shù)進行客戶端與服務器端的異步調(diào)用,并綜合運用ASP.Net、SQL Server、LINQ、WebServices、C#、JavaScript、CSS、HTML等相關技術(shù)和編程語言建立WebGIS系統(tǒng)。
科學性、先進性
- 作品采用典型基于B/S 的客戶層、業(yè)務邏輯層和數(shù)據(jù)層三層架構(gòu),分別管理界面顯示、邏輯流轉(zhuǎn)控制、數(shù)據(jù)處理,業(yè)務邏輯層又可以細分為Web 程序服務層和Google Maps 服務層,相比傳統(tǒng)的C/S架構(gòu)的系統(tǒng),本作品開發(fā)結(jié)構(gòu)層次分明、功能分工明確。 無需組織復雜的空間數(shù)據(jù)庫,這是本作品最明顯的特點。由于本系統(tǒng)的地圖顯示采用Google Maps提供的服務,所有的地圖數(shù)據(jù)都來源于Google地圖,與傳統(tǒng)的基于ArcGIS Server的WEBGIS相比,本研究不需要設計和現(xiàn)實多層的、復雜的空間數(shù)據(jù),這就大大降低了開發(fā)的成本。與此同時,數(shù)據(jù)庫也是屬性數(shù)據(jù)庫,這樣就可以將存坐標的空間數(shù)據(jù)庫轉(zhuǎn)化為存編碼的屬性數(shù)據(jù)庫。 可自定義用戶界面,與傳統(tǒng)的WebGIS客戶端標準界面相比,采用Google Maps API開發(fā),首先從地圖表現(xiàn)上,用戶將會更加青睞皆為熟知的電子地圖,并且無論是系統(tǒng)的基本操作還是業(yè)務功能操作,本系統(tǒng)都按照方便、快捷與人性化原則來設計用戶界面的。
獲獎情況及鑒定結(jié)果
- 作品參加本校第九屆“創(chuàng)新杯”大學生課外科技學術(shù)作品競賽獲得科技發(fā)明制作類特等獎。 有關作品系統(tǒng)原理的論文于2010年9月參加<<中國高新技術(shù)企業(yè)>>雜志優(yōu)秀學術(shù)論文征文活動,已發(fā)表見刊。
作品所處階段
- 生產(chǎn)階段
技術(shù)轉(zhuǎn)讓方式
- 現(xiàn)有技術(shù)的通過發(fā)表學術(shù)論文的形式供他人參考和引用,后期技術(shù)完全成熟后,以商業(yè)化的形式轉(zhuǎn)讓。
作品可展示的形式
- 實物、產(chǎn)品,磁盤,現(xiàn)場演示,圖片,錄像
使用說明,技術(shù)特點和優(yōu)勢,適應范圍,推廣前景的技術(shù)性說明,市場分析,經(jīng)濟效益預測
- 目前本作品的實施為地理信息科學增添了臺風信息系統(tǒng)研究的新內(nèi)容,并能應用于氣象災害數(shù)據(jù)信息的管理與服務,為公眾提供精度更高、效果更直觀的高質(zhì)量氣象服務。 有關本作品的系統(tǒng)結(jié)構(gòu)和原理是值得推廣的,本作品開發(fā)的WebGIS,選用ASP.NET平臺下開發(fā)服務器端的動態(tài)Web程序,利用Google Maps API作為地圖數(shù)據(jù)源。該系統(tǒng)的結(jié)構(gòu),可用于建立網(wǎng)絡環(huán)境下的歷史事件記錄、災害信息管理、地圖向?qū)到y(tǒng)等。 目前市面上的WebGIS大多采用基于成熟的企業(yè)級WEBGIS平臺開發(fā)的,最典型就是ArcGIS Server,這但是它們都存在著這樣的不足:開發(fā)平臺購買價格昂貴;需要組織各種復雜的空間數(shù)據(jù);地圖顯示信息與地圖行為匱乏。目前ArcGIS Server高級版市場價是74萬人民幣,ArcSDE是13萬,加上系統(tǒng)可能需要的各種空間數(shù)據(jù)庫,一般都會超過100萬人民幣,如果系統(tǒng)不需要現(xiàn)實太多的空間分析,那么系統(tǒng)可以換用Google Maps,完全就可以省去這筆錢。
同類課題研究水平概述
- 通常B/S結(jié)構(gòu)的WebGIS采用如下所述的三層架構(gòu)。它以普通的瀏覽器作為客戶端,將由應用程序開發(fā)、維護以及之間的服務調(diào)用組成的中間層放在相應的程序服務器上,將數(shù)據(jù)庫的建立和管理放在另外的數(shù)據(jù)庫服務器上,形成一個由客戶表現(xiàn)層、中間應用邏輯層和底層數(shù)據(jù)層組成的三層體系結(jié)構(gòu),通常WebGIS系統(tǒng)中間業(yè)務邏輯層一般包括Web服務器和GIS服務器。這樣的系統(tǒng)往往依托與企業(yè)級商用的WebGIS開發(fā)平臺,成本很高,還需要維護花較高的成本去維護GIS服務器和配置各種復雜的空間數(shù)據(jù)。 基于Google Maps API的WebGIS國內(nèi)外也有不少研究,大多數(shù)是重客戶端,輕服務器端,服務端往往邏輯很簡單,只是和數(shù)據(jù)層相連,有的甚至將Web服務器這一層給弱化了。這一來就導致AJAX技術(shù)重在客戶端,技術(shù)上實現(xiàn)相對成本較高,而服務器端快速建立AJAX引擎技術(shù)的優(yōu)勢就沒有很好的發(fā)揮出來。數(shù)據(jù)層往往是也是諸如MySQL這樣的小型數(shù)據(jù)庫,管理海量地理空間數(shù)據(jù)能力有限,有的甚至沒有數(shù)據(jù)庫,而用XML或是txt等格式的文件作為數(shù)據(jù)層,這樣管理海量數(shù)據(jù)的能力就更差的了。也有小部分基于Google Maps API的WebGIS是C/S兩層架構(gòu)的,這樣用戶不僅要聯(lián)網(wǎng)獲取Web地圖資源,而且還將繁雜的業(yè)務邏輯轉(zhuǎn)換到用戶的機器上,這樣就增加了用戶的負擔,并且也沒有將WebGIS大眾化、隨時隨地獲取的優(yōu)勢體現(xiàn)出來。 通常網(wǎng)絡環(huán)境下的臺風信息系統(tǒng)大多它們都實現(xiàn)了臺風路徑顯示,臺風信息顯示,臺風信息查詢等基本功能,但使用的技術(shù)各不相同,有的沒有使用WebGIS技術(shù),而是采用靜態(tài)圖片、Applet、VML等技術(shù),空間分析等功能難以實現(xiàn);并且很少有對臺風數(shù)據(jù)進行統(tǒng)計分析,更少有研究臺風路徑預測的算法,通過歷史數(shù)據(jù)去推測臺風路徑的走勢;多數(shù)系統(tǒng)都只在氣象部門或相關部門內(nèi)部使用,他們應用對象僅為某一地區(qū)的某一部門內(nèi)部人員,僅作為內(nèi)部人員預報臺風走向,研究和管理臺風信息用,不能推向網(wǎng)絡,及時向社會和公眾發(fā)布;在數(shù)據(jù)查詢方面,這些系統(tǒng)大都未考慮將數(shù)據(jù)、業(yè)務邏輯和表現(xiàn)形式分離開來,系統(tǒng)維護和功能擴展會受限制。