蘇曉蓓,楊銘,張高峰,王志
(許昌市規(guī)劃設(shè)計院,河南 許昌 461000)
WebGIS是GIS開發(fā)與互聯(lián)網(wǎng)結(jié)合的產(chǎn)物,它具有面向?qū)ο?、分布式和互操作等關(guān)鍵特征,是實現(xiàn)GIS互操作的一條最佳解決途徑。但由于構(gòu)建技術(shù)的復(fù)雜性和開發(fā)軟件的高價位,使得開發(fā)一個簡單的WebGIS系統(tǒng)也需要付出高昂的人力、物力和財力代價。而近年來快速發(fā)展的Map API技術(shù),則讓我們看到了小型化低成本W(wǎng)ebGIS快速普及的新希望。
Google公司公開的Google Maps API(地圖應(yīng)用程序編程接口),實際上是一組Java script類庫,用戶運用里面的各個類,可以實現(xiàn)網(wǎng)頁內(nèi)容和Google Maps的無縫接合。Google Maps數(shù)據(jù)庫中收納了全球的詳細地圖數(shù)據(jù),包括主要覆蓋城市的矢量數(shù)據(jù)及其他覆蓋城市的柵格數(shù)據(jù)。其中柵格數(shù)據(jù)是 LANDSAT-7、Quickbird和WorldView-1衛(wèi)星的影像與航拍數(shù)據(jù)的整合。
基于Google Maps API技術(shù)構(gòu)建WebGIS具有以下優(yōu)點:
(1)Google Maps API對授權(quán)用戶是免費開放的,明顯比那些價格從幾萬到幾十萬不等的WebGIS軟件占有優(yōu)勢。
(2)Google Maps API是屬于基于服務(wù)器的應(yīng)用結(jié)構(gòu)(Server-Side),GIS處理任務(wù)大多集中在Google服務(wù)器端,并且支持用戶在Google Maps API的基礎(chǔ)上開發(fā)自己的函數(shù),在滿足用戶多樣化需求的同時還降低了用戶很多工作量。
(3)Google Maps提供的地圖數(shù)據(jù)有0.61 m分辨率,且提供十幾級的縮放,其標注精度完全可以普通地理信息系統(tǒng)對地圖的要求。
(4)Google Maps支持每天50000次的免費地圖訪問次數(shù),能夠滿足小型WebGIS系統(tǒng)使用客戶的正常登錄使用。
本系統(tǒng)以Eclipse 6.0作為界面和功能開發(fā)工具,以Java為開發(fā)語言,采用瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)組織數(shù)據(jù)和發(fā)布信息。在Google Maps上定制的網(wǎng)絡(luò)地圖,可實現(xiàn)放大、縮小、平移、格式轉(zhuǎn)換、電子地圖鷹眼等功能,并以SQL Sever 2000作為后臺數(shù)據(jù)庫,將信息及時發(fā)布到網(wǎng)絡(luò)地圖上,使客戶端能夠?qū)ζ溥M行快速、實時、無縫的瀏覽與查詢。根據(jù)系統(tǒng)功能、業(yè)務(wù)流程的需求,采用基于J2EE的三層體系結(jié)構(gòu)來實現(xiàn)信息共享。同時,由于系統(tǒng)面對的是多用戶的應(yīng)用需求,所以采取了基于角色的用戶權(quán)限分配方法和用戶訪問控制策略。
圖1 系統(tǒng)結(jié)構(gòu)
在獲取地圖 API密鑰之前,必須先注冊使用Google賬戶申請一個與用戶Google賬戶相關(guān)聯(lián)的API密鑰。
程序正確后上傳到網(wǎng)絡(luò)服務(wù)器對應(yīng)目錄,即完成將網(wǎng)絡(luò)地圖定制到自己指定的網(wǎng)絡(luò)空間。將網(wǎng)絡(luò)地圖定制到自己指定的網(wǎng)絡(luò)空間之后,根據(jù)自己的需求分別創(chuàng)建GMap類的實例、添加控制條、設(shè)置顯示模式、設(shè)置中心點經(jīng)緯度和縮放系數(shù)等(Google map網(wǎng)站有詳細使用說明)。以添加事件響應(yīng)為例:
圖2 地圖定制效果圖
圖2即是在Google Map中定制的東經(jīng)113.28°、北緯24.77°附近12 km×12 km地圖,用于顯示廣東省乳源縣境內(nèi)京珠高速公路。
本系統(tǒng)功能分為地圖瀏覽、信息管理、用戶管理和決策支持四大部分,其中地圖瀏覽部分跟Google地圖功能一樣,包括放大、縮小、平移、格式轉(zhuǎn)換、電子地圖鷹眼等功能,在此不做詳細介紹。
信息管理包括信息錄入、信息發(fā)布、信息查詢、信息維護和信息統(tǒng)計。其中信息統(tǒng)計功能模塊的設(shè)計,是在 Java中引用了一個 JFreeChart畫圖控件。(JFreeChart實際上是Java平臺上一個開放的圖表繪制類庫,可生成餅圖、柱狀圖、散點圖、時序圖、甘特圖等多種圖表)。
以某高速公路監(jiān)測站2005年的風力值信息統(tǒng)計為例,統(tǒng)計結(jié)果如圖3所示。
圖3 信息統(tǒng)計演示圖
圖3是將存儲于數(shù)據(jù)庫中的2005年全部風力值,按照月份進行平均后,做出的一個全年風力走勢圖。此功能可以針對SQL Sever2000中的各種高速公路監(jiān)測信息,進行分類信息統(tǒng)計。
系統(tǒng)權(quán)限管理模塊是基于角色的用戶權(quán)限分配方法和用戶訪問控制策略。用戶授權(quán)的項目包括信息管理權(quán)限中的可選項(信息錄入、更新、查詢、統(tǒng)計分析和預(yù)測)和系統(tǒng)權(quán)限管理中的可選項(添加、查詢、注銷用戶)。
權(quán)限管理模塊用戶表部分代碼:
圖4 用戶管理演示圖
本系統(tǒng)的決策功能主要是指高速公路濃霧預(yù)測。從實時監(jiān)測的高速公路沿線氣象數(shù)據(jù)中,選用大氣溫度、大氣濕度、風速、風向、露點、降水和、路面溫度和大地溫度8個要素作為氣象因子,用前6小時的8個要素的觀測值共48個觀測數(shù)據(jù)作為預(yù)報因子,使用BP神經(jīng)網(wǎng)絡(luò)方法預(yù)報第7個小時時段是否有霧(篇幅限制,具體方法將另寫論文介紹)。系統(tǒng)采用ODBC技術(shù)與數(shù)據(jù)庫連接并調(diào)用預(yù)測結(jié)果,ODBC連接代碼如下:
圖5 決策支持演示圖
本文討論的基于Google Maps API技術(shù)的WebGIS系統(tǒng)構(gòu)建方法,將信息管理和地理場景有機地結(jié)合起來,方便了用戶更形象直觀的查詢信息,同時為用戶提供必要的決策支持。需要強調(diào)的是,高速公路WebGIS的后端地理數(shù)據(jù)接口采用Google Maps API技術(shù)提供的地理信息,減少了開發(fā)小型WebGIS系統(tǒng)所需工作量,大大節(jié)省了所需的時間和花費。
[1]楊云源,何禮平.基于Goolge Maps API的WebGIS應(yīng)用研究[J].電腦開發(fā)與應(yīng)用,22(1),12~16
[2]倪凱等.基于J2EE架構(gòu)的WebGIS協(xié)同平臺系統(tǒng)集成[J].小型微型計算機系統(tǒng),2007,1(1):133
[3]王紅英,張延園.基于J2EE和Eclipse的自動Web化平臺實現(xiàn)[J].微處理機,2008(6),85~88