国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于GeoServer和OpenLayers的開源WebGIS框架研究

2024-06-19 07:23:45曾新勵廖靖
科技資訊 2024年6期

曾新勵 廖靖

開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):DOI:10.16661/j.cnki.1672-3791.2312-5042-5345

通信作者:曾新勵(1991—),男,碩士,工程師,?研究方向?yàn)橛嬎銠C(jī)應(yīng)用技術(shù)。E-mail:1361116508@qq.com。

摘??要:WebGIS是互聯(lián)網(wǎng)環(huán)境下存儲、管理、分析和發(fā)布出版空間信息數(shù)據(jù)的分布式計算機(jī)應(yīng)用系統(tǒng)。首先在分析WebGIS服務(wù)端的基礎(chǔ)上,基于GeoServer對外發(fā)布離線瓦片與矢量圖層地圖服務(wù),然后設(shè)計并構(gòu)建了基于OpenLayers的WebGIS客戶端,客戶端調(diào)用地圖服務(wù)分別加載相應(yīng)URL地址返回的圖層影像數(shù)據(jù)進(jìn)行圖層疊加,最后通過解析航空器ADSB實(shí)時位置信息數(shù)據(jù),將航班信息通過WebSocket的方式主動推送到客戶端,客戶端在圖層上顯示實(shí)時航班動態(tài),能直觀地顯示出進(jìn)出機(jī)場飛行中的航班信息。此方案開發(fā)的WebGIS服務(wù)平臺具有良好的可擴(kuò)展性,結(jié)構(gòu)層次清晰,提高了開發(fā)效率,為開源組件實(shí)現(xiàn)WebGIS空間應(yīng)用研究提供了新的思路,可運(yùn)用于智慧機(jī)場建設(shè)等領(lǐng)域。

關(guān)鍵詞:GeoServer ?OpenLayers??WebGIS客戶端??網(wǎng)絡(luò)地圖服務(wù)

中圖分類號:P208;TP311.52

隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,機(jī)場對地理信息系統(tǒng)的需求不斷增加,地理信息系統(tǒng)(Geographic Information System, GIS)為航空信息管理提供基礎(chǔ)數(shù)據(jù),利用網(wǎng)絡(luò)傳輸協(xié)議來存儲、管理、分析和發(fā)布出版空間信息數(shù)據(jù)供用戶檢索和分析,為機(jī)場運(yùn)營和維護(hù)決策方面提供有效的數(shù)據(jù)支撐,是智慧機(jī)場建設(shè)發(fā)展的必然趨勢。WebGIS是利用Web技術(shù)和GIS技術(shù)的結(jié)合以擴(kuò)展和完善地理信息系統(tǒng)的一項(xiàng)技術(shù),基于網(wǎng)絡(luò)的B/S架構(gòu)在服務(wù)端和客戶端之間通過互聯(lián)網(wǎng)進(jìn)行信息交換。目前流行的開源WebGIS軟件打破了傳統(tǒng)商業(yè)GIS軟件高價格對利用和發(fā)布空間數(shù)據(jù)的限制,其開放源代碼使軟件平臺具有更高的開放性和可擴(kuò)展性,更低的開發(fā)和維護(hù)成本,用戶可以根據(jù)需要靈活配置。

1 關(guān)鍵技術(shù)分析

1.1 OGC相關(guān)標(biāo)準(zhǔn)

OGC是英文Open?Geospatial Consortium開放地理空間信息協(xié)會的簡稱,主要研究地理信息服務(wù)、內(nèi)容、信息處理以及數(shù)據(jù)共享[1]。OGC組織各成員單位制定了開放式地理數(shù)據(jù)的互操作規(guī)范OpenGIS,依照該規(guī)范應(yīng)用開發(fā)者能夠在單一的環(huán)境和工作流中使用分布在網(wǎng)絡(luò)上的任何地理數(shù)據(jù),構(gòu)建本地化的地理信息服務(wù)軟件系統(tǒng)。OGC的規(guī)范中比較重要的和WebGIS中用的最多的服務(wù)規(guī)范有WMS(Web?Map Service)、WFS(Web?Feature Service)和WMTS(Web?Map Tile Service)。

1.2 WMTS切片地圖服務(wù)

WMTS切片地圖服務(wù)主要是把地圖以若干個固定比例尺寸圖塊的形式提供服務(wù)。切片地圖即地圖瓦片技術(shù),將一定坐標(biāo)范圍投影后的地圖,在不同分辨率層次下按照固定比例切割成若干行列的正方形圖片。切割后的每張圖片也叫作Tile瓦片,瓦片模型表示的地圖范圍相同,從瓦片模型頂層到底層,分辨率越來越高,瓦片按指定格式預(yù)先緩存在文件系統(tǒng)或數(shù)據(jù)庫中,形成金字塔模型的靜態(tài)地圖緩存。WMTS規(guī)范定義了兩個基礎(chǔ)性操作接口:GetCapabilities(請求地圖服務(wù)相關(guān)元數(shù)據(jù)XML文檔)、GetTile(根據(jù)參數(shù)請求取得png、jpeg等格式的瓦片圖塊),提供了一種預(yù)定義圖塊的形式進(jìn)行數(shù)字地圖服務(wù)發(fā)布的標(biāo)準(zhǔn)化方法[2]。

1.3 GeoServer

GeoServer是標(biāo)準(zhǔn)J2EE架構(gòu)的開源WebGIS服務(wù)器[3],全面遵循OGC網(wǎng)絡(luò)地圖服務(wù)和網(wǎng)絡(luò)要素服務(wù)規(guī)范,利用GeoServer可以方便地將地理位置信息數(shù)據(jù)轉(zhuǎn)換為圖層影像發(fā)布地圖。GeoServer支持多種數(shù)據(jù)源,支持上百種投影方式,能夠?qū)⒕W(wǎng)絡(luò)地圖輸出為png、jpg、gif、pbf等多種格式資源,并且還支持Google Maps和Google Earth,地圖影像疊加后能做出生動的應(yīng)用[4]。

1.4 OpenLayers

2?基于GeoServer和OpenLayers的WebGIS設(shè)計

2.1 總體結(jié)構(gòu)

WebGIS地理信息服務(wù)系統(tǒng)涉及客戶端顯示、地圖服務(wù)器、空間數(shù)據(jù)存儲表示,在邏輯上按照層次抽象成三層結(jié)構(gòu)進(jìn)行開發(fā),包括與用戶交互的視圖層、提供數(shù)據(jù)的中間層和空間數(shù)據(jù)存儲層。視圖層體現(xiàn)為WebGIS客戶端,選用OpenLayers作為地圖可視化渲染引擎作為前端用戶交互平臺,視圖層響應(yīng)用戶請求,通過HTTP連接到中間層。中間層體現(xiàn)為WebGIS服務(wù)端,根據(jù)請求類型分別調(diào)用提供空間數(shù)據(jù)的GeoServer地圖服務(wù)器和提供業(yè)務(wù)數(shù)據(jù)處理的Web服務(wù)器,GeoServer服務(wù)器將空間數(shù)據(jù)存儲層中的空間信息以圖層形式返回視圖層,與此同時Web服務(wù)器加載帶有地理信息屬性的業(yè)務(wù)數(shù)據(jù)返回視圖層,經(jīng)OpenLayers疊加優(yōu)化后渲染到Web客戶端實(shí)現(xiàn)對空間數(shù)據(jù)的顯示和用戶交互。

2.2 WebGIS服務(wù)端

服務(wù)端的搭建選用開源的Tomcat服務(wù)器,將GeoServer和開發(fā)的Web項(xiàng)目都部署到Tomcat下。要使用GeoServer發(fā)布地圖服務(wù)首先要登錄其提供的Web管理界面進(jìn)行配置,主要包括工作空間、數(shù)據(jù)存儲、圖層、圖層樣式和圖層組,按照OGC開放地理信息標(biāo)準(zhǔn)完成空間數(shù)據(jù)的編輯和發(fā)布。一個工作空間下可以包含多個數(shù)據(jù)存儲,各個數(shù)據(jù)存儲有獨(dú)立的字符集編碼。GeoWebCache作為GeoServer中集成好的一個模塊,可以用于矢量地圖切圖,也可用于緩存和發(fā)布預(yù)先切好或下載好的目標(biāo)區(qū)域瓦片數(shù)據(jù)。將已經(jīng)切好的瓦片數(shù)據(jù)存儲在服務(wù)器上,當(dāng)客戶端請求一張新底圖和瓦片時,GeoWebCache將攔截這些調(diào)用,返回預(yù)先緩存過的地圖瓦片,提高地圖加載速度,實(shí)現(xiàn)更好的用戶瀏覽效果,同時也便于對較大數(shù)據(jù)量的地圖切片緩存進(jìn)行移植復(fù)用和私有化部署[7]。

2.3 電子地圖數(shù)據(jù)制作

通常機(jī)場系統(tǒng)位于內(nèi)部局域網(wǎng),不具備連接外網(wǎng)的能力,而Google Maps需要持續(xù)連接公網(wǎng)才能獲得實(shí)時地圖數(shù)據(jù),因此有必要建立本地離線地圖服務(wù)。使用電子地圖下載工具將已經(jīng)切好的不同分辨率層級的目標(biāo)區(qū)域瓦片數(shù)據(jù)存儲在服務(wù)器上,使用GeoWebCache對外發(fā)布提供服務(wù)。

機(jī)場位于遠(yuǎn)離城市地區(qū),離線地圖不具備較高的場面覆蓋精度。因此機(jī)場地圖使用工程項(xiàng)目DWG格式的CAD設(shè)計文件經(jīng)過ArcMap格式轉(zhuǎn)換與矢量配圖,形成Shapefile格式的點(diǎn)、線、面的矢量數(shù)據(jù),配圖后對效果進(jìn)行檢查確保經(jīng)緯度無偏移。使用GeoServer發(fā)布本地文件中Shapefile格式的矢量數(shù)據(jù),將其添加到數(shù)據(jù)存儲,新建圖層并對待發(fā)布圖層使用uDig軟件進(jìn)行sld樣式渲染,并導(dǎo)出sld樣式發(fā)布到GeoServer使得地圖更美觀鮮明,之后即可完成電子地圖的發(fā)布并對外提供WMS服務(wù)。

本文選用Google離線地圖作為客戶端加載的地圖底圖,同時將機(jī)場地圖動態(tài)添加為WMS服務(wù)作為疊加層,與全球數(shù)據(jù)統(tǒng)一顯示,以增強(qiáng)用戶體驗(yàn)。

2.4 WebGIS客戶端

客戶端選用OpenLayers作為WebGIS地圖顯示引擎。OpenLayers提供了Map類作為網(wǎng)頁中動態(tài)地圖展示的一個容器,Map類提供了地圖圖層、縮放比例、投影信息、地圖顯示范圍等多個屬性的設(shè)置,可以向Map中添加Layer圖層和Control控件。Layer類用于描述圖層數(shù)據(jù)源及格式信息,Control類提供各種控件實(shí)現(xiàn)地圖的縮放、查詢、編輯等功能,F(xiàn)eature類用于在Layer圖層中添加圖形要素信息。

在國際上,每個坐標(biāo)系統(tǒng)都會被分配一個 EPSG 代碼,WGS84 的代碼為EPSG:4326,由 Google提出的Web墨卡托代碼為EPSG:3857,Google Maps數(shù)據(jù)基于Web墨卡托投影。OpenLayers支持多種地圖數(shù)據(jù)源類型,支持常用的三維WGS84經(jīng)緯度坐標(biāo)數(shù)據(jù)到二維平面Web墨卡托坐標(biāo)的自動投影轉(zhuǎn)換[8]。

下面以O(shè)penLayers調(diào)用GeoServer發(fā)布的WMS地圖服務(wù)和Google 離線瓦片數(shù)據(jù)為例說明如何在客戶端實(shí)現(xiàn)地圖數(shù)據(jù)和航班動態(tài)數(shù)據(jù)的加載。主要用到OpenLayers的Map類、Layer類、Source類和Feature類,在瀏覽器請求頁面時各Layers圖層分別加載相應(yīng)URL地址返回的圖層影像數(shù)據(jù)進(jìn)行疊加渲染,最底層圖層實(shí)現(xiàn)離線瓦片數(shù)據(jù)的讀取和顯示,底層圖層上疊加顯示機(jī)場矢量地圖,最上層Source圖層用于表示地圖上航班位置信息,在Source圖層中通過添加Feature對象表示航班位置信息。

系統(tǒng)后臺把每架航班定義為一個Flight類對象,對象中包含航班呼號、經(jīng)度、緯度、高度、飛行速度、角度、始發(fā)站、目的站、24位地址碼等屬性,通過解析航空器ADSB實(shí)時位置信息數(shù)據(jù),將每架航班信息封裝到Flight對象中通過WebSocket的方式主動推送到客戶端。OpenLayers客戶端結(jié)合從后臺Web服務(wù)器獲取的航空器ADSB實(shí)時位置信息數(shù)據(jù),將瀏覽器內(nèi)存中的航班對象在頁面中動態(tài)更新或創(chuàng)建成新的Feature類,設(shè)置好圖標(biāo)、經(jīng)緯度和角度參數(shù)添加到Source圖層,F(xiàn)eature對象載入地圖圖層上后客戶端呈現(xiàn)出實(shí)時航班動態(tài)地圖,直觀地顯示出進(jìn)出機(jī)場飛行中的航班信息。

3?結(jié)語

本文分析了以開源的GeoServer作為地理信息數(shù)據(jù)服務(wù)的發(fā)布端,以O(shè)penLayers作為客戶端地圖顯示引擎,構(gòu)建WebGIS應(yīng)用程序開發(fā)框架的整體過程??蚣軐?shí)現(xiàn)了基本的WebGIS功能,并結(jié)合航空器ADSB數(shù)據(jù)實(shí)例,實(shí)現(xiàn)了航空器實(shí)時位置信息的監(jiān)視功能,可以直觀地了解到機(jī)場空域此刻正在執(zhí)行飛行的航班動態(tài),將難以用文字表述的信息呈現(xiàn)在動態(tài)地圖界面,達(dá)到了良好的用戶體驗(yàn)效果,為機(jī)場生產(chǎn)運(yùn)營保障提供非常有價值的信息。隨著開源GIS功能的不斷完善,WebGIS將在地理信息展示、共享和利用上發(fā)揮更重要的作用,用戶可以結(jié)合自身需求融入更多地理信息資源,實(shí)現(xiàn)功能更強(qiáng)大的WebGIS平臺。

參考文獻(xiàn)

[1] 木嘯林,牛坤龍,蔡世榮,等.開源網(wǎng)絡(luò)地理信息系統(tǒng)的技術(shù)體系與研究進(jìn)展[J].計算機(jī)工程與應(yīng)用,2022,58(15):37-51.

[2] 代林海,秦榮波.Geoserver的WMS服務(wù)分析與應(yīng)用[J].測繪,2021,44(2):67-70,78.

[3] 金巖.基于GIS的數(shù)據(jù)展示平臺的設(shè)計與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2016.

[4] 吳瑞龍,何華貴,張鵬程,等.基于GeoServer REST的矢量地圖服務(wù)自動發(fā)布研究與應(yīng)用[J].測繪地理信息,2021,46(S1):32-35.

[5] 吳國超,王豹,葛鋆添.基于GeoServer的矢量數(shù)據(jù)自動發(fā)布與在線配圖方案的研究與實(shí)現(xiàn)[J].電子元器件與信息技術(shù),2022,6(10):9-12.

[6] 劉旭,趙錚,陳建華,等.一種面向空間分析的開源GeoServer服務(wù)自動發(fā)布與切片方法[J].物探化探計算技術(shù),2022,44(1):110-116.

[7] 張濤.基于切片技術(shù)的電子地圖制作與發(fā)布[J].科技資訊,2018,16(17):7-8.

[8] 胡振彪,趙軍,韓磊,等.矢量電子地圖瓦片制作性能評估與應(yīng)用[J].測繪科學(xué),2020,45(2):138-144,165.

万盛区| 英吉沙县| 朝阳区| 莱阳市| 万荣县| 博白县| 洞头县| 金昌市| 德州市| 交城县| 信宜市| 东乡族自治县| 房山区| 福清市| 清丰县| 恩平市| 漯河市| 漳平市| 巴东县| 汤阴县| 高青县| 淄博市| 莱西市| 肇州县| 富川| 兰坪| 香格里拉县| 昆明市| 康马县| 麟游县| 云和县| 石河子市| 吴堡县| 松溪县| 漠河县| 博罗县| 玉门市| 宜丰县| 商城县| 泉州市| 天台县|