魯麗
(安徽省第一測(cè)繪院,安徽合肥 230031)
在計(jì)算機(jī)軟件和硬件的支持下,地理信息系統(tǒng)(GIS)能夠?qū)Φ乇砜臻g的對(duì)象進(jìn)行抽象描述,能夠?qū)臻g信息進(jìn)行采集、存儲(chǔ)、計(jì)算、顯示和管理等等。地理信息系統(tǒng)常常以公共服務(wù)平臺(tái)的方式應(yīng)用于各個(gè)領(lǐng)域.在數(shù)字城市地理空間框架搭設(shè)過程中,GIS公共服務(wù)平臺(tái)常見的搭建方案有很多,很多GIS 領(lǐng)域的軟件開發(fā)公司,如Esri、超圖等公司都給出了成熟的解決方案。但是作為成熟的商業(yè)軟件,通常需要較高的成本,配置復(fù)雜,對(duì)環(huán)境要求較高[2]。作為一種常用的地理信息系統(tǒng)應(yīng)用方式,地理信息系統(tǒng)公共服務(wù)平臺(tái)的搭建需要考慮經(jīng)濟(jì)效益,因而需要更輕量化的解決方案。本文應(yīng)用PostGIS 管理數(shù)據(jù)庫,利用GeoServer 作為GIS服務(wù)器,基于OpenLayers開發(fā)包,搭建地理信息公共服務(wù)平臺(tái)的解決方案。
小型的地理信息公共服務(wù)平臺(tái)最常用的架構(gòu)模式就是經(jīng)典的瀏覽器/服務(wù)器模式(B/S模式),包含三層體系結(jié)構(gòu),即客戶層、中間應(yīng)用層、數(shù)據(jù)庫服務(wù)器層。本項(xiàng)目平臺(tái)的總體結(jié)構(gòu)如圖1所示。
使用Tomcat 作為Web 服務(wù)器,用于網(wǎng)站的發(fā)布,形成基于Web 的分布式應(yīng)用運(yùn)行環(huán)境。數(shù)據(jù)庫服務(wù)層采用Postgres 搭載PostGIS 擴(kuò)展的空間數(shù)據(jù)引擎來管理空間數(shù)據(jù)。平臺(tái)運(yùn)行的業(yè)務(wù)數(shù)據(jù),采用MySQL數(shù)據(jù)庫進(jìn)行管理。平臺(tái)的GIS 功能基于前端開發(fā)包OpenLayers開發(fā)完成。
圖1 平臺(tái)總體結(jié)構(gòu)Figure 1.Overall structure of the platform
GeoServer 是OpenGIS Web 服務(wù)器規(guī)范的J2EE實(shí)現(xiàn),可以方便地發(fā)布地圖數(shù)據(jù),允許用戶對(duì)特征數(shù)據(jù)進(jìn)行更新、刪除、插入等操作。通過GeoServer 可以在用戶之間迅速放共享空間地理信息。本項(xiàng)目使用GeoServer2.15.1發(fā)布地圖服務(wù)。
Geoserver 支持的符合OGC 標(biāo)準(zhǔn)的地圖服務(wù)如表1所示:
表1 GeoServer支持的服務(wù)類型Table 1.GeoServer-supported service type
在空間數(shù)據(jù)管理方面,本項(xiàng)目選用PostGIS,即管理GIS數(shù)據(jù)的空間數(shù)據(jù)引擎是在Postgres 上搭載Post-GIS擴(kuò)展。
PostgreSQL 是一款免費(fèi)開源的對(duì)象-關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它是目前最常用的開源數(shù)據(jù)庫之一,功能強(qiáng)大,有專業(yè)的團(tuán)隊(duì)進(jìn)行維護(hù)更新,能夠滿足大部分用戶的數(shù)據(jù)管理需求。類似于Oracle的空間擴(kuò)展,PostGIS 實(shí)際上是在PostgreSQL 基礎(chǔ)上增減了空間數(shù)據(jù)存儲(chǔ)管理能力。
在業(yè)務(wù)信息、屬性信息等非空間信息儲(chǔ)存方面,項(xiàng)目選用MySQL 實(shí)現(xiàn)非空間數(shù)據(jù)管理。在Web 應(yīng)用方面,MySQL 能夠提供多個(gè)版本的免費(fèi)許可,且軟件使用簡(jiǎn)便。
OpenLayers 是一個(gè)開源的WebGIS 客戶端JavaScript 開發(fā)包,提供OGC 標(biāo)準(zhǔn)格式的地圖服務(wù)訪問功能,和常用的GIS 功能。目前各大GIS 軟件公司的二維WebGIS產(chǎn)品都是基于OpenLayers地圖引擎開發(fā)完成的.借助OpenLayers強(qiáng)大的擴(kuò)展功能,廣大二次開發(fā)者可以定制開發(fā)符合自身需求的WebGIS 應(yīng)用系統(tǒng)[1]。
項(xiàng)目開發(fā)使用OpenLayers4 作為客戶端GIS 功能開發(fā)的開源工具包。OpenLayers 二次開發(fā)簡(jiǎn)單、開發(fā)成本低,且支持多種格式的地圖服務(wù)。
平臺(tái)主要包含以下功能模塊:①地圖展示功能;②基礎(chǔ)信息查詢功能;③空間分析功能;④后臺(tái)運(yùn)行維護(hù)功能;⑤地圖服務(wù)審核功能;⑥統(tǒng)計(jì)分析功能;⑦數(shù)據(jù)疊加功能;⑧用戶興趣標(biāo)記功能。功能設(shè)計(jì)如圖2所示。
圖2 公共服務(wù)平臺(tái)的功能結(jié)構(gòu)Figure 2.Functional structure of the public service platform
地圖展示功能主要是二維矢量和影像地圖的展示,同時(shí)包含地圖的基本操作,如地圖漫游、縮放等。
基礎(chǔ)信息查詢功能是指對(duì)興趣點(diǎn)圖層進(jìn)行地理信息的查詢,包括屬性查詢、空間定位查詢,支持用戶對(duì)目標(biāo)位置的快速定位和信息的精準(zhǔn)獲取。
圖3 信息查詢Figure 3.Information query
空間分析主要包括:測(cè)量距離、測(cè)量面積、周邊分析、行駛線路分析等。是對(duì)地理信息公共服務(wù)平臺(tái)地理信息的基礎(chǔ)性空間分析操作。
圖4 線路分析Figure 4.Route analysis
圖5 服務(wù)審核頁面Figure 5.Service review page
圖6 流量統(tǒng)計(jì)界面Figure 6.Data flow statistics interface
運(yùn)行維護(hù)功能面向管理員開發(fā),實(shí)現(xiàn)對(duì)GIS平臺(tái)的后天管理和日常維護(hù),包含的功能有用戶信息和權(quán)限管理、網(wǎng)站運(yùn)行流量的分析統(tǒng)計(jì)、網(wǎng)站運(yùn)行日志查詢等等。
地圖服務(wù)審核模塊包含了地圖服務(wù)注冊(cè)、地圖服務(wù)查詢、地圖服務(wù)發(fā)布和地圖服務(wù)審核功能。第三方通過平臺(tái)注冊(cè)的功能,通過后臺(tái)審核后,可以通過平臺(tái)進(jìn)行發(fā)布。
統(tǒng)計(jì)分析功能主要包括:統(tǒng)計(jì)內(nèi)容設(shè)置、圖表生成、圖表輸出和打印等。
數(shù)據(jù)疊加功能允許用戶將空間參考系統(tǒng)相同的GML/KML、Shapefile等數(shù)據(jù)疊加到平臺(tái)地圖上。
本項(xiàng)目通過對(duì)比研究,提出了一種輕量化的地理信息公共服務(wù)平臺(tái)搭建方案,給出了方案的總體架構(gòu)和關(guān)鍵技術(shù)。對(duì)于降低地理信息公共服務(wù)平臺(tái)的建設(shè)成本,有著重要的意義。