崔朋志,王 翀,孫寧會(huì),邸永昌,李宗偉
(1.應(yīng)急管理部信息研究院,北京100029;2.中安智訊(北京)信息科技有限公司,北京100125)
煤礦安全監(jiān)控系統(tǒng)、煤礦井下人員定位管理系統(tǒng)、金屬礦和非金屬礦人員定位系統(tǒng)和通信聯(lián)絡(luò)系統(tǒng)、露天煤礦車輛人員定位管理系統(tǒng)均需要以礦圖作為底圖進(jìn)行疊加專題要素進(jìn)行展示,AQ6201、AQ6210、AQ2032、AQ2036 等國家標(biāo)準(zhǔn)分別對相關(guān)系統(tǒng)進(jìn)行了明確要求:必須具備圖形展示功能[1-4]。系統(tǒng)建設(shè)廠家大多采用模擬圖顯示,因?yàn)椴痪邆湔鎸?shí)的地理坐標(biāo),很難反應(yīng)空間位置關(guān)系,另外不同廠家之間的圖形格式相互不兼容,圖形轉(zhuǎn)換繁瑣,并且各系統(tǒng)間模擬圖是孤立的不能進(jìn)行一張圖展示。少數(shù)廠家采用GIS 技術(shù)能解決此問題,但由于價(jià)格昂貴,無法大面積推廣使用[5]。
目前,國內(nèi)礦圖制作和編輯的現(xiàn)狀是,大部分礦圖技術(shù)人員采用歐德克的AutoCAD 進(jìn)行繪制各種礦圖,以dwg 或dxf 文件作為企業(yè)內(nèi)部以及上級部門間的交換格式,隨著開采的進(jìn)行,礦圖每日都在更新,以模擬圖為底圖的系統(tǒng)需要維護(hù)模擬圖,包括巷道掘進(jìn)、工作面搬遷、設(shè)備位置改變等,以GIS 技術(shù)為基礎(chǔ)的系統(tǒng)需要進(jìn)行圖紙格式轉(zhuǎn)換,在轉(zhuǎn)換過程中會(huì)發(fā)生精度和樣式的丟失,降低圖紙表達(dá)的精確度和準(zhǔn)確度,并且會(huì)增加工作量。隨著圖形可視化技術(shù)的發(fā)展和國家AQ 標(biāo)準(zhǔn)的升級,以及智慧礦山建設(shè)的需要,各管理系統(tǒng)對圖形可視化提出了更高的需求,如精確人員定位要求實(shí)現(xiàn)井下人員在巷道內(nèi)的精確表達(dá),露天礦卡車和人員定位系統(tǒng)要求圖紙的精度達(dá)到分米級,礦山業(yè)主紛紛要求利用電腦瀏覽器和移動(dòng)設(shè)備能夠隨時(shí)隨地查看系統(tǒng)的運(yùn)行情況,采用目前的方法很難實(shí)現(xiàn)上述要求。
目前,礦圖可視化常用的方法有以下幾種:
1)采用桌面版進(jìn)行可視化。充分利用AutoCAD平臺(tái)以及類CAD 平臺(tái)強(qiáng)大的圖形編輯和展示能力,在此平臺(tái)進(jìn)行二次開發(fā)各類業(yè)務(wù)系統(tǒng)是一種穩(wěn)定、高效的路線,但此方法開發(fā)的系統(tǒng)僅限在桌面端運(yùn)行,無法在瀏覽器和移動(dòng)端運(yùn)行。
2)采用瀏覽器插件技術(shù)進(jìn)行可視化?;贑OM的ActiveX 控件和基于NPAPI、PPAPI 的插件技術(shù),可以對桌面程序進(jìn)行稍加改造就能運(yùn)行在瀏覽器上,但隨著操作系統(tǒng)對瀏覽器安全的限制[6],上述插件技術(shù)已經(jīng)隨著瀏覽器的更新退出歷史的舞臺(tái),并且該技術(shù)也無法在移動(dòng)端運(yùn)行。
3)基于SVG 矢量圖形技術(shù)進(jìn)行可視化。SVG 以豐富的元素表達(dá)、擴(kuò)展能力和前端無插件渲染一定程度上滿足礦圖可視化的需要,但其在運(yùn)行性能上的不足決定了其在移動(dòng)設(shè)備上對復(fù)雜礦圖進(jìn)行可視化時(shí)不能流暢執(zhí)行,用戶體驗(yàn)性差[7]。
4)基于GIS 平臺(tái)進(jìn)行可視化。常用SuperMap、MapGIS、ArcGIS 等商用GIS 平臺(tái),但尚未在礦山行業(yè)推廣普及。以MapServer、GeoServer 為代表的的開源GIS 技術(shù),具有很強(qiáng)的空間數(shù)據(jù)管理和發(fā)布能力,能夠處理柵格和矢量文件,但其只針對GIS 文件格式如shp 文件,對dwg 和dxf 文件兼容性差,轉(zhuǎn)換過程中需要重新配置樣式,耗時(shí)耗力,不便于自動(dòng)化發(fā)布。
云渲染的模式與云計(jì)算類似,將應(yīng)用程序從本機(jī)搬到網(wǎng)絡(luò)上,即將2D 或3D 程序放在遠(yuǎn)程的服務(wù)器上渲染,借助于服務(wù)器強(qiáng)大的渲染能力以及集群的可伸縮性,可大大提高地圖的渲染以及處理能力,以云渲染架構(gòu),構(gòu)造云渲染引擎。
2.1.1 Dwg 和dxf 文件解析和柵格化
為了解決二維礦圖的可視化與交互以及Auto-CAD 專有格式的支持問題,采用Aspose 公司針對AutoCAD 的文件格式提供的Aspose.CAD 二次開發(fā)包進(jìn)行二維礦圖云渲染引擎開發(fā)。Aspose.CAD for Java 是一個(gè)獨(dú)立的AutoCAD 文件處理API。它提供將DWG,DWF 和DXF 文件轉(zhuǎn)換為高質(zhì)量PDF 和光柵圖像的功能。開發(fā) 人員可以從AutoCAD 文件中選擇和轉(zhuǎn)換特定的布局和圖層,并輕松跟蹤整個(gè)文件轉(zhuǎn)換過程[8]。
調(diào)用Aspose.CAD 組件提供的接口實(shí)現(xiàn)對dwg和dxf 文件的解析,并獲取礦圖的圖幅范圍、單位、圖層列表、對象列表、對象屬性等相關(guān)信息,通過設(shè)置CadRasterizationOptions 的屬性來控制礦圖柵格化的分辨率、輸出格式等信息,當(dāng)?shù)V圖輸出尺寸大于4096×4096 像素時(shí),通過更改CadVportTableObject的中心點(diǎn)位置來實(shí)現(xiàn)礦圖分幅柵格化。建議將礦圖柵格化的分辨率設(shè)定為不低于0.25 m/像素。
2.1.2 網(wǎng)絡(luò)地圖切片
參考地理信息系統(tǒng)的電子地圖服務(wù),網(wǎng)絡(luò)地圖服務(wù)將柵格化后的礦圖按照金字塔模型做切片存儲(chǔ),根據(jù)礦圖范圍大小和礦圖分辨率的不同,網(wǎng)絡(luò)地服務(wù)提供的地圖級別不等,一般在6~8 層之間,縮放的級別越高,顯示的區(qū)域范圍越小,相應(yīng)的地圖描述越清晰越詳細(xì)。地圖切片大小為256×256 個(gè)像素,切片格式采用png 圖片或者jpg 格式均可,考慮到png 圖片支持透明通道,這里選用png 格式圖片。地圖切片如圖1。
圖1 地圖切片F(xiàn)ig.1 Map slice
確定礦圖的輸出分辨率后,以礦圖左上角為切片的起點(diǎn),圖片寬度和高度分別是256 像素,以礦圖左上角為起點(diǎn)右下角為終點(diǎn),進(jìn)行切片能夠避免大量空白瓦片的出現(xiàn),保證地圖數(shù)據(jù)只在礦圖范圍內(nèi)。利用式(1),代入礦圖左上角坐標(biāo),當(dāng)前層級瓦片的分辨率、瓦片編號和像素點(diǎn)坐標(biāo),即可求出某像素點(diǎn)的真實(shí)地理坐標(biāo)(x,y)。
式中:xorigin為礦圖左上角橫坐標(biāo);yorigin為礦圖左上角縱坐標(biāo);resolutioni為第i 級瓦片的分辨率;tileWidth 為瓦片的寬度;tileHeight 為瓦片的高度;tilex 為瓦片的橫向編號,從0 開始;tiley 為瓦片的縱向編號,從0 開始;pixelx 為瓦片內(nèi)的像素橫坐標(biāo),左下角為起點(diǎn),從0 開始;pixely 為瓦片內(nèi)的像素縱坐標(biāo),左下角為起點(diǎn),從0 開始。
2.1.3 地圖發(fā)布和交互
OGC 全稱Open Geospatial Consortium,它的主要目的就是制定與空間信息、基于位置服務(wù)相關(guān)的標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)的用處就是在于使不同廠商、不同產(chǎn)品之間可以通過統(tǒng)一的接口進(jìn)行互操作。其標(biāo)準(zhǔn)主要包括網(wǎng)絡(luò)地圖服務(wù)WMS(web Map Service)、網(wǎng)絡(luò)要素服務(wù)(Web Feature Service) 和網(wǎng)絡(luò)覆蓋服務(wù)(Web Coverage Service)[9]。本方案以O(shè)GC 相關(guān)標(biāo)準(zhǔn)為基礎(chǔ),使用WMS 實(shí)現(xiàn)礦圖切片圖片文件的發(fā)布,使用WFS 實(shí)現(xiàn)礦圖可視化時(shí)前端交互操作如鼠標(biāo)點(diǎn)選獲取選中對象的屬性描述信息。
Leaflet 是一個(gè)為建設(shè)移動(dòng)設(shè)備友好的互動(dòng)地圖,而開發(fā)的現(xiàn)代的、開源的JavaScript 庫。它是由Vladimir Agafonkin 帶領(lǐng)一個(gè)專業(yè)貢獻(xiàn)者團(tuán)隊(duì)開發(fā),雖然代碼僅有38 KB,但它具有大部分開發(fā)人員所需的功能要求。Leaflet 設(shè)計(jì)堅(jiān)持簡便、高性能和可用性好的思想,在所有主要桌面和移動(dòng)平臺(tái)均能高效運(yùn)作,支持插件擴(kuò)展,它有一套漂亮的、易用的和文檔清晰的API 和一個(gè)簡單的、易讀的源代碼[10]。
Leaflet 強(qiáng)大的開源庫插件涉及到地圖應(yīng)用的各個(gè)方面包括地圖服務(wù),數(shù)據(jù)提供,數(shù)據(jù)格式,地理編碼,路線和路線搜索,地圖控件和交互等類型的插件共有140 多個(gè)。這些控件豐富了Leaflet 的功能,同時(shí)也可以十分方便的實(shí)現(xiàn)自定義的控件, 具有良好的可擴(kuò)展性。
Leaflet 的體系結(jié)構(gòu)如圖2,核心框架是Map 類,可以把其看作一個(gè)容器,在該容器中可以添加圖層、坐標(biāo)系、控件、交互等對象,其圖層包括柵格圖層、矢量圖層等,支持的對象包括點(diǎn)、多邊形、折線、圓、矩形、圖標(biāo)、文字注記、瓦片、路徑等。
圖2 Leaflet 結(jié)構(gòu)圖Fig.2 Structure diagram of Leaflet
系統(tǒng)的工作流程如圖3。
圖3 系統(tǒng)工作流程圖Fig.3 Flow chart of system
云渲染引擎部署在服務(wù)器上,礦圖的文件解析和柵格化、地圖切片、地圖發(fā)布等都在服務(wù)器上完成,并不占用終端設(shè)備的硬件資源。前端采用Leaflet進(jìn)行展示,采用Ajax 技術(shù)從服務(wù)器端獲取礦圖瓦片,瓦片以圖片流的形式發(fā)送到終端設(shè)備,可在電腦瀏覽器和移動(dòng)終端上顯示。當(dāng)用戶在前端上點(diǎn)擊圖形區(qū)時(shí)可獲取當(dāng)前點(diǎn)擊點(diǎn)的真實(shí)地理坐標(biāo),并可將點(diǎn)擊位置坐標(biāo)通過消息隊(duì)列發(fā)送至服務(wù)器端,服務(wù)器端接收到消息后,在云渲染引擎上計(jì)算選中的圖元對象,然后將結(jié)果發(fā)送給終端設(shè)備,終端設(shè)備負(fù)責(zé)展示或業(yè)務(wù)處理。
基于云端的渲染技術(shù),具有很高的渲染效率,礦圖渲染時(shí)間見表1。
由于礦圖的渲染、切片等處理均是在服務(wù)器上完成的,所以系統(tǒng)并不對瀏覽器的版本和移動(dòng)終端設(shè)備的硬件配置做特殊的要求。并且1 張礦圖僅需處理1 次,即可完成多瀏覽器和多終端顯示,當(dāng)?shù)V圖范圍較大或渲染分辨率較高時(shí)只需增加服務(wù)器端的圖形處理能力即可??蛻舳艘缘V圖為底圖,只需根據(jù)業(yè)務(wù)需要在上面疊加相關(guān)專題要素即可完成各類系統(tǒng)開發(fā)。瀏覽器端疊加露天礦卡車GPS 位置信息如圖4。
表1 礦圖渲染時(shí)間表Table 1 Render time of coal maps
圖4 卡車位置可視化Fig.4 Visualization of truck location
通過開發(fā)云渲染引擎,實(shí)現(xiàn)dwg 和dxf 格式礦圖在云端進(jìn)行自動(dòng)渲染、切片、存儲(chǔ)和發(fā)布,解決了礦圖在格式轉(zhuǎn)換中的樣式丟失和重新配色等問題,縮短了數(shù)據(jù)處理流程,提高了礦圖顯示效率,有利于礦圖的傳播和共享?;贚eaflet 圖形控件開發(fā)了一套礦圖可視化系統(tǒng),實(shí)現(xiàn)了礦圖的分級展示并實(shí)現(xiàn)了一定的交互操作。以云渲染技術(shù)為基礎(chǔ),采用基于開源技術(shù)的Leaflet 圖形控件對礦圖進(jìn)行可視化,具有開發(fā)靈活、高效,開發(fā)成本低等優(yōu)點(diǎn),可根據(jù)不同業(yè)務(wù)和專業(yè)需求,進(jìn)行專題開發(fā),具有很好的可擴(kuò)展性,今后可以本文研究為基礎(chǔ),結(jié)合煤礦各位監(jiān)測信息可派生出更多的礦圖應(yīng)用如結(jié)合人員位置信息、GPS 的經(jīng)緯度信息,可開發(fā)人員位置管理系統(tǒng)、露天礦卡車和人員位置管理系統(tǒng),還可將多專業(yè)數(shù)據(jù)通過圖層疊加在一張礦圖之上,開發(fā)礦區(qū)“一張圖”系統(tǒng)。