甄樹勇 司方坤 張 文 彭相瑜 幺倫韜
1河北省氣象技術裝備中心 石家莊 050021;2樂亭氣象局 河北 唐山 063600;3河北省氣象災害防御中心 石家莊 050021
本文介紹了一種基于影像地圖的氣象災害防御應用系統的設計和實現,通過在影像地圖上疊加氣象災害易發點、人口密集點、氣象資料監測點等信息,通過多種資料的疊加,結合影像實景地圖,可以直觀地了解氣象災害發生區的綜合信息,為氣象災害的預報、預測及防御提供了有力的技術支持,在氣象災害防御中發揮重大作用。
整體系統采用B/S結構,前臺采用html5和javascript編寫,后臺采用asp編寫,通信采用JSON。系統將與氣象災害防御相關的資料以經緯度的方式疊加到衛星影像地圖上,主要包括氣象災害易發點、人口密集點、氣象資料監測點等,通過多種資料的疊加,結合影像實景地圖,更加直觀地了解氣象災害綜合信息。
地圖API中包含有標記,但是其功能、顯示效果都比較簡單,不能滿足本系統的應用,為此需要自定義標記。自定義標記是繼承于OverlayView疊加層,繼承后定義初始化函數、屬性以及單擊事件函數等,參數可以通過初始化函數的參數傳遞,根據標記在實際應用中的分類傳遞不同的圖標、名稱及數值等。
當自定義標記首次實例化并處于準備顯示狀態時,API通過調用疊加層的 onAdd() 方法將其添加到地圖map上,在處理此方法時,需要創建用于顯示標記圖標的
(1)標記初始化
由于本系統需要顯示災害易發區、人口密集區、氣象觀測點等標記,所以需要對標記進行分類控制,系統分別定義了全局變量災害易發區的數組、人口密集區、氣象觀測點的三個二維數組DisastrousMarkerArray、Person MarkerArray、ObserveMarkerArray。程序在初始化運行時,首先從后臺讀取基本信息初始化標記并添加到數組中,包含標記的ID、名稱、經緯度、圖標等,這些參數信息分別與標記的屬性對應,具體屬性在標記模塊中給出。其中,new MyMarker()為自定義標記的創建函數,創建完畢后,將其加入DisastrousMarkerArray標記數組中,上面函數只給出了災害易發區標記添加到具體代碼,其他標記和此段類似。
(2)標記的顯示、隱藏
向地圖中添加并顯示自定義標記使用API函數setMap(map)方法來添加,隱藏標記使用setMap(null)函數將標記從地圖的DOM上分離出來。本系統中涉及到標記數量較多,如果初始化時將所有標記添加到地圖上,將會使地圖操作遲滯,為此本系統采用即顯即添的方式來添加標記,即標記的經緯度在顯示范圍內的則添加,不在顯示范圍的從地圖上分離,這樣保證系統運行比較流暢。
(3)標記數據的顯示更新
對于氣象觀測點標記來說,需要實時顯示觀測數據信息,因此需要對顯示數據不間斷的更新。因此在創建標記類的時候,需要定義標記setNum方法,然后通過調用setNum方法來逐個更新顯示數據信息。這里需要注意的是由于標記數量較多,更新時必須采用異步通信方式,才能保證頁面操作流暢。
本系統通信采用JSON格式,獲取的數據主要有兩部分,一部分是基本信息,另一部分為氣象資料數據。首先分別定義相應的數組,然后訪問后臺的asp頁面讀取數據到對應的數組中。
后臺采用asp實現,asp可以與數據庫和其它程序進行交互,使用簡單、方便。后臺主要包括數據庫連接、標記信息數據提取、氣象數據提取等功能。
本系統需要讀取的數據庫為MSSQL Server數據庫,asp連接MS SQL Server數據庫非常簡單,新建一個conn.asp文件,在里面寫入代碼如下:
set conn=server.createobject("adodb.connection")
conn.open "driver={SQL Server};server=12 7.0.0.1;uid=sa;pwd=;database=baseinfo"
在其他asp文件中需要連接數據庫時,直接引用conn.asp文件,然后使用conn即可。
由于本系統采用JSON方式傳輸數據,所以后臺需要將提取的數據格式化為JSON格式,我們可以使用比較成熟的aspjson類來完成JSON數據的格式化,我們只需在代碼中引用aspjson文件,使用QueryToJSON函數即可完成所有任務。
氣象數據的提取和標記信息提取類似,不過前臺會向后臺傳遞參數值,后臺根據參數值來提取對應的數據信息,并格式化成JSON格式后傳遞給前臺。
系統顯示頁面標記在500個以下的時候,系統頁面運行流暢,當標記數超過2000個時,系統頁面運行有遲鈍現象,所以根據需要增加了地圖縮小控制,當縮小到一定級別后,只顯示部分標記。另外單個標記位置放大后,雖然周圍影像圖顯示效果良好,但是缺少周圍的海拔高度信息,如果能通過海拔高度服務來增加海拔高度,系統將更完善。
[1]陸亞龍,肖功建.氣象災害及其防御[M].北京:氣象出版社,2001.