秦漢林,盧成浪
(浙江機電職業(yè)技術學院現代信息技術學院,浙江 杭州 310053)
2019 年,自然資源部發(fā)布了《智慧城市時空大數據平臺建設技術大綱》,指出時空大數據平臺是數字中國時空信息數據庫的重要組成部分,是智慧城市建設與運行的基礎支撐。智慧城市三維地理信息共享,作為智慧城市時空大數據平臺建設的重要組成部分,既是智慧城市建設中不可或缺的基礎信息資源,也是其他信息平臺數據交換共享和協同應用的載體。因為三維地理信息的類型繁多、結構復雜、數據量大,并且一直缺乏相應的數據共享服務標準和規(guī)范,導致三維地理信息數據的重用性低,區(qū)域和部門間的三維地理信息資源難以共享。
地理信息共享服務方面,Martinek P 和F.Prandi等提出,信息共享服務體系技術框架可以采用面向服務的體系架構(SOA)思想,具體實現有Web Service、CORBA 和DCOM 等方式。針對智慧城市的地理數據共享,可以采用SOA 服務來實現[1,2]。開放式地理信息聯盟OGC 組織提出了SOA 的一套接口規(guī)范和服務標準,如WMS、WTMS、WFS 等二維地圖標準服務。OGC 現有的服務標準主要是針對二維時空數據的,可以用來共享遙感影像,矢量道路等二維數據。OGC 組織還提出了W3DS(Web 3D Service)、WVS(Web View Service)三維地理信息服務規(guī)范,以及3DPS 的三維服務接口標準。3DPS 是一種抽象的接口服務標準,設計參照WMS 服務標準,目的是以互操作的方式提供三維的共享服務。
在國內,朱利魯等針對資源共享存在的服務互操作和數據傳輸等技術瓶頸問題,提出一種時空大數據資源集成框架[3]。李德仁等提出了面向服務的數字城市共享平臺框架,設計了地理空間信息共享平臺的體系結構和基于SOA 的空間數據共享模型[4]。馬春林,張晶等論述了地理空間數據資源共享交換平臺,實現了地理空間數據資源的跨部門共享交換和開發(fā)利用[5,6]。郭仁忠等提出了面向智慧城市的GIS 框架,探討了統一數據平臺構建、數字孿生及可視化、開放式平臺服務等關鍵內容[7]。耿晴等闡述了時空信息云平臺建設的關鍵技術,通過面向時空信息數據的大數據平臺設計,利用共享交換平臺提供數據服務,實現海量數據的高效管理和服務[8]。張孝勇等提出一種基于3DPS的動態(tài)時空數據模型服務和共享方案[9]。
三維地理信息共享技術方面,邱天等研究了三維地理信息數據的物理結構特征和接口規(guī)則體系,提出了三維地理信息數據服務規(guī)范[10]。孫陽等綜述了三維地理信息網絡服務的發(fā)展情況,并提出了存在的問題及相應的建議[11]。吳掠桅,陳桂紅等針對智慧城市的建設需求,提出了一種具備可實現性的網絡服務共享接口規(guī)范,以期打破孤島式三維GIS平臺的現狀,實現了智慧城市開展三維GIS共享應用的總體思路和實現策略[12,13]。曾文華,董莉等以三維GIS服務為主要研究對象,在分析三維GIS 研究背景情況下,研究了三維GIS的服務框架和接口[14,15]。
綜上所述,國內外對智慧城市的地理信息共享展開了系列研究,研究主要集中在二維數據的共享服務上,在三維數據應用和共享方面還有很多可以改進的空間。相對于二維地理數據Web 服務,三維模型數據Web 服務的研究進展緩慢。沒有一個國際認可的三維服務標準規(guī)范是制約三維Web 服務快速發(fā)展的主要原因之一,各個三維地理空間平臺采用不同的技術路線、體系結構和數據格式,彼此之間難以跨平臺訪問和共享數據。本文研究了智慧城市三維空間數據共享的服務標準在OGC現有的服務標準基礎上,使用WMS(WMTS)服務發(fā)布和共享地形高程數據和影像數據;使用WFS 服務發(fā)布和共享地名、道路等矢量數據,設計并實現了WFS 3D 服務,用來發(fā)布和共享智慧城市的三維建筑模型等矢量數據,提出了一種智慧城市三維模型共享服務和應用的實現方案。
為了實現智慧城市三維地理數據的共享服務和應用,提出一種地理數據共享平臺的實現方案,地理數據共享平臺的體系結構如圖1所示。
圖1 體系結構圖
⑴地理數據層采用分塊分類的組織管理方法來存儲多源數據。數據使用地形DEM、影像DOM、道路DLG、地名等數據,以及真三維模型數據。地形、影像等柵格數據采用.tif格式,道理等矢量數據采用.shp格式,三維模型采用.dae格式。
⑵ 共享服務層采用開源的地理數據服務軟件MapServer,實現標準的Web Services發(fā)布。和其他的地理數據服務軟件相比,MapServer 使用C 語言實現,性能更加優(yōu)越。服務類型可以選擇WMS、WMTS 和WFS。地理數據的過程發(fā)布:首先從數據層選擇地理數據,①選擇是否使用WMS 方式或者WFS 方式。②如果WMS 發(fā)布,需要符號化地圖數據,比如設置道路的顏色,接著選擇是否使用WMTS 方式發(fā)布。③如果選擇WMTS 方式,需要配置瓦片數據,比如設置瓦片的級別。
⑶客戶顯示層繪制引擎基于JOGL(OpenGL 的Java 版本),用來訪問共享的服務數據。OpenGL 被設計成與硬件無關的,獨立的三維顯示接口,并能在網絡環(huán)境下以客戶端/服務器模式工作,是專業(yè)圖形處理、游戲開發(fā)等高端應用領域的標準三維圖形庫。基于Java語言和J2EE框架,能很好地與其他系統集成,具有良好的安全性和可擴展性。
有很多開源的地圖數據服務器可以使用,這些數據服務器都提供了標準的WMS和WFS等服務。
WMS 服務:即Web 地圖服務,WMS 服務提供一個簡單的HTTP 接口,通過它可以從分布式的地理數據庫中獲取到地圖圖像。一個WMS 的請求,根據包圍盒的坐標定義了一個地理的圖層。請求的響應是一個或者多個地圖圖像,這些圖像可以在瀏覽器和軟件中直接調用顯示。WMS國際標準有三種操作。
⑴GetCapabilities:返回地圖服務的元數據,描述了服務信息和請求參數,元數據是xml格式。
⑵ GetMap:返回一個地圖的圖像數據,格式是gif,jpg,png 等。請求的圖像數據可以定義各種參數,如包圍盒坐標,坐標參考系,輸出圖像的格式、寬度、高度等。
⑶ GetFeatureInfo:如果用戶通過GetMap 操作獲得一張地圖圖像后,可以點擊該圖像上的一個點來查詢該圖像上指定地點的地物信息,信息的格式可以是xml、gml等。
瀏覽器可以通過帶參數的URL 地址,測試并得到相應的WMS 服務。比如一個URL 測試地址如下:http://192.168.1.100:8888/wms?service=WMS&request=GetMap&version=1.3.0&srs=EPSG: 4326&layers=test1,test2&width=512&height=512&bbox=30,116,31,117&format=image/png。
表1 WMS服務參數說明
WFS 服務:即Web 要素服務,支持對地理要素的插入,更新,刪除,檢索和發(fā)現服務。不同于WMS 的是,該服務專注于要素的地理信息,而忽略其渲染信息,簡化了返回信息。瀏覽器可以通過帶參數的URL 地址,得到相應的WFS 服務,比如一個URL 測試地址如下http://192.168.1.100:8888/wfs?version=1.1.0&TypeName=test1&Request=GetFeature&Service=WFS&OUTPUTFORMAT=GML2-GZIP;subtype=gml/3.1.1&BBOX=112.5,22.5,135.0,45.0。
智慧城市的地理數據,可以使用開源的地理數據發(fā)布軟件,比如MapServer 發(fā)布成共享的數據。對于地形高程數據和影像數據,使用WMS 服務方式發(fā)布,如果使用瓦片系統,可以使用WMTS 服務方式發(fā)布,可以在發(fā)布的時候設置瓦片的層級。對于地名、道路等矢量數據的共享,使用WFS 服務方式發(fā)布,發(fā)布的時候,可以選擇是否做符號化處理,比如設置道路的顏色。對于需要共享的建筑模型等三維數據,使用WFS 3D服務發(fā)布,發(fā)布的時候,設置每個點數據對應的實體模型名稱、坐標位置和屬性信息。
MapServer 采用零代碼編寫的配置文件方式管理發(fā)布地圖數據,配置文件被稱為Mapfile,文件的后綴名是.map。Mapfile文件可以參考Mapfile的章節(jié)說明手工編寫,也可以使用圖形化配置工具生成。
很多的Web 地圖接口都使用瓦片系統,一幅精確到街道級別的國家地圖圖片,它的長度和寬度為數以百萬計的像素,由于這些數據太大了,從而導致無法一次下載并且在內存里也無法一次加載。實際操作中,Web 地圖由許多小的正方形的圖片組成,這些小圖片稱作瓦片。瓦片的大小一般為256*256 像素,這些瓦片一個挨一個并列放置以組成一張很大的看似無縫的地圖。瓦片系統是一種多分辨率的LOD 模型,采用一系列的金字塔圖像結構,瓦片系統可以是衛(wèi)星影像或者高程地形網格。當觀測距離近的時候,采用高分辨率的瓦片。當觀測距離遠的時候,采用低分辨率的額瓦片。圖2是WorldWind系統采用的瓦片系統。
圖2 瓦片系統說明圖
表2 度數、瓦片矩陣,每一層的瓦片數
從坐標經緯度(lat,lon)到行列的轉換如下:
從行列到坐標左下角經緯度的轉換如下:
WFS 3D:在研究WFS 服務的基礎上,定義一套面向三維地理信息數據的服務,而非普通二維矢量服務的網絡地圖服務接口規(guī)則。該服務支持對三維地理模型的添加,修改,刪除和查詢服務,服務通過HTTP 客戶請求返回GML 數據。服務定義了模型數據的地址、描述、坐標系統和屬性信息。
WFS 3D設計的主要接口如下。
■GetCapabilities:必須提供的操作,獲得請求服務的描述文檔數據,返回GML 描述文件,比如服務提供商的基本信息,操作的元數據,要素類型的列表等。
■GetFeature:根據查詢要求,返回符合GML 規(guī)范的三維場景的要素圖層數據。返回數據中包括三維模型的讀取路徑,通過坐標包圍盒的BoundingBox參數來獲取數據范圍。三維模型使用dae 格式,文件以GML 的形式存儲繼承。服務主要記錄各級瓦片的空間邏輯關系和屬性信息,以及模型與屬性如何鏈接在一起的信息,服務中引入dae模型的文件位置和名稱。首先修改MapServer 的源代碼,在原有WFS 服務的基礎上,添加WFS 3D 服務的代碼實現。完善WFS 3D服務的GetCapabilities 和GetFeature 接口,使得這些接口可以提供三維場景的數據和屬性信息服務。
瀏覽器可以通過帶參數的URL 地址,得到相應的WFS 3D 的三維數據服務,比如一個URL 測試地址如 下 http://192.168.1.100: 8888/wfs3d? version=1.0.0&TypeName=test1&Request=GetFeature&Service=WFS3D&OUTPUTFORMAT=GML2-GZIP;subtype=gml/3.1.1&BBOX=112.5,22.5,135.0,45.0。在這個請求中,TypeName 表示服務請求的圖層名稱是test1,Request 表示服務請求的操作是GetFeature,Service=WFS 3D 表示使用的是WFS 3D 服務請求,request=GetFeature 表示執(zhí)行獲取要素信息操作,OUTPUTFORMAT 表示輸出格式是GML2 格式。BBOX表示三維場景數據的包圍盒范圍。
項目實驗的數據如下:影像和地形高程數據使用全國的基礎數據,上面疊加高精度浙江省的區(qū)域數據,發(fā)布成WMTS 數據。三維場景是一個某城市的部分數據,范圍大小為10 平方公里,模型數量超過2000個。實驗1,使用WMS 發(fā)布和共享地形高程和遙感影像數據,結果如圖3 所示。實驗2,使用WFS 發(fā)布和共享地名和道路矢量據,結果如圖4 所示。實驗3,使用WFS 3D發(fā)布和共享三維模型數據,結果如圖5所示。
圖3 地形和影像數據共享
圖4 地名和道路矢量數據共享
圖5 三維模型數據共享
OGC 現有服務標準主要是針對二維地理數據的,在研究OGC服務標準的基礎上,創(chuàng)新性的提出一種城市三維模型Web 共享服務的實現方案。通過分析國內外三維地理信息共享標準現狀,研究三維地理數據的物理結構和接口規(guī)則體系,提出三維地理數據共享服務規(guī)范,滿足開放性和共享性的要求,構建三維地理數據的統一接口描述規(guī)則。經過實驗結果的驗證,達到了三維地理數據共享目的。