張 磊
(1.福建省基礎(chǔ)地理信息中心,福建 福州 350003)
目前市場上比較成熟的三維建模軟件CityEngine采用了基于規(guī)則的三維快速建模方法,為大場景三維快速建模提供了一種有效的解決方案[1]。同時,由于成本、運行環(huán)境等因素限制,2.5維地圖仍具有一定優(yōu)勢,既能有效克服三維地圖網(wǎng)絡(luò)應(yīng)用問題,又能提供較強的三維仿真感。因此,本文通過引入CityEngine三維建模技術(shù)和2.5維地圖制作技術(shù),從地理國情普查成果數(shù)據(jù)特點的挖掘、三維可視化符號的設(shè)計、三維場景的快速建模、2.5維地圖制作技術(shù)研究等幾個方面,研究互聯(lián)網(wǎng)地理國情普查成果仿真三維地圖服務(wù)制作流程,解決地理國情普查成果在互聯(lián)網(wǎng)三維地圖服務(wù)應(yīng)用時的網(wǎng)絡(luò)發(fā)布和效率問題,為政府部門和社會大眾提供較好的用戶體驗。
三維地圖一般基于數(shù)字高程模型數(shù)據(jù)制作,且三維場景輸出時一般為非正射投影方式,因此輸出的圖片會因地形起伏造成地物空間位置發(fā)生明顯變化。為便于與天地圖的地圖服務(wù)進行對接,本文采用平面仿真三維的構(gòu)建方法,即建模時不考慮地形起伏因素,關(guān)鍵技術(shù)涉及數(shù)據(jù)顯示方案制定、三維符號模型制作、三維快速建模和多比例尺平行投影算法共4個方面。
根據(jù)三維地圖數(shù)據(jù)的承載力及表現(xiàn)力,結(jié)合地表覆蓋分類數(shù)據(jù)的地物分類代碼屬性、重要地理國情要素數(shù)據(jù)的類型及屬性信息,制定不同比例尺下的數(shù)據(jù)顯示方案。經(jīng)試驗,因重要地理國情要素數(shù)據(jù)和地表覆蓋分類數(shù)據(jù)的比例尺與1∶1 000DLG數(shù)據(jù)相當,電子地圖顯示級別設(shè)定為15~17級。重要地理國情要素數(shù)據(jù)顯示內(nèi)容主要涉及道路、橋梁和隧道,符號化表達主要涉及的屬性項有類型、路寬和長度;地表覆蓋分類數(shù)據(jù)15級僅顯示一級類,16級在15級基礎(chǔ)上對房屋建筑(區(qū))進行細化,顯示至二級類,17級顯示至二級類。該顯示方案綜合考慮了三維數(shù)據(jù)承載力及三維顯示效果,可較好地展現(xiàn)地表覆蓋分類和重要地理國情要素數(shù)據(jù)的特點,提高數(shù)據(jù)生產(chǎn)加工的效率。
結(jié)合遙感影像解譯樣本數(shù)據(jù),針對地表覆蓋分類數(shù)據(jù)和重要地理國情要素數(shù)據(jù)的特點,對不同類別的地物制作數(shù)據(jù)量小且生動形象的圖片素材庫,并在CityEngine軟件中通過CGA規(guī)則編程,將其轉(zhuǎn)換成表現(xiàn)力強的三維可視化符號模型庫。其中,樹木類地物可采用點狀三維樹木符號按照一定密度均勻分布,涉及函數(shù)為scatter(surface,rint(geometry.area/20),uniform),并按一定高度值范圍隨機生成大小不同的三維符號進行填充,涉及函數(shù)為s(0,rand(3,10),0);部分地物類在三維視覺效果上差不多的情況下,可采用圖片填充的方式進行表示,盡量減少計算機三維模型渲染的負荷,如耕地、草地、水域等;道路可參考陳秋曉等提出的城市道路參數(shù)化建模規(guī)則[2]進行表示;高架路可用具有一定厚度、懸浮于地面的道路面疊加均勻分布的橋墩表示。各種地物類的CGA規(guī)則可根據(jù)實際圖面效果和表達需求進行編程和優(yōu)化。
段雅萍等設(shè)計了基于CityEngine 的城市三維建模解決方案,總結(jié)了一套有效的建模技術(shù)流程[3]。針對大范圍、大數(shù)據(jù)量地理國情普查成果數(shù)據(jù),因CityEngine軟件功能限制及軟硬件運行支撐環(huán)境限制,可將其按照一定范圍進行分幅建模。常用的分幅方式有國家基本比例尺地形圖分幅、規(guī)則漁網(wǎng)分幅等,數(shù)據(jù)分幅處理時建議采用高斯-克呂格平面直角坐標系以提高數(shù)據(jù)導入時的效率,并外擴一定范圍以避免三維場景輸出的圖片無法拼接。
同時,在CityEngine軟件中還可以通過修改CGA規(guī)則文件,如填充密度、高度值范圍、分割大小等參數(shù),使地理國情普查數(shù)據(jù)在快速三維建模的同時又能美觀逼真地模擬實際場景。
為適合圖片快速無縫拼接,劉向南等提出基于投影坐標計算的方法,實現(xiàn)任意俯仰角與水平角組合方式下的三維虛擬場景渲染出圖數(shù)據(jù)無縫拼接[4],李峰設(shè)計了基于CityEngine的多比例尺平行投影算法,具有參數(shù)可調(diào)節(jié)、支持坐標信息文件自動配準等優(yōu)勢[1]。因多比例尺平行投影算法更具代表性且易于實現(xiàn),本文直接引用該方法并增加一個視角輸出。當攝影機的視角切換為正南向下45°俯視時,可設(shè)定側(cè)視角為180°,需對算法計算公式進行如下調(diào)整:
相機位置camera_y計算公式:camera_y=miny+(j+0.5)*height+offset_y X 方向上的像素分辨率: resolution_x=-0.025 4*scale/72 Y方向上的像素分辨率:resolution_y=0.025 4*scale/(72*sinθ)
柵格地圖左上角像素中心X坐標:leftupper_x=minx+(i+1)*width
柵格地圖左上角像素中心Y坐標:leftupper_y=miny+j*height
相機鏡頭姿態(tài)旋轉(zhuǎn)參數(shù):views[0].setCamera Rotation(-θ,180,0)
上述公式中,i、j為場景范圍內(nèi)第(i,j)張相片對應(yīng)的列、行編號,minx、miny為最小起始點X、Y坐標,height、width為相片對應(yīng)的地面實際高度、寬度,offset_y為相機位置到相片中心在Y方向上的偏移量,camera_y為第(i,j)張相片對應(yīng)相機位置的Y坐標,scale為輸出圖片的比例尺,θ為俯視角度。
三維場景輸出腳本中數(shù)據(jù)輸出路徑、場景輸出范圍、視圖窗口大小和輸出比例尺共4類參數(shù)需根據(jù)數(shù)據(jù)情況進行實時調(diào)整。同時,為避免三維場景輸出圖片顆粒感較重的現(xiàn)象,可將比例尺參數(shù)放大至√2倍以提高輸出圖片的顯示效果。
按照上述技術(shù)方法,將技術(shù)試驗過程劃分為準備工作、數(shù)據(jù)預(yù)處理、三維工程建立、三維場景輸出、影像拼接和服務(wù)發(fā)布共6部分內(nèi)容,技術(shù)流程見圖1。
圖1 技術(shù)流程圖
準備工作主要包括硬件準備、軟件準備、數(shù)據(jù)準備和符號庫準備共4個方面。其中,硬件方面需準備性能強勁的計算機,建議內(nèi)存32 GB以上;軟件方面需安裝CityEngine、ArcGIS等專業(yè)軟件;數(shù)據(jù)方面需提取特定區(qū)域范圍內(nèi)的地表覆蓋分類、重要地理國情要素、0.1°格網(wǎng)等數(shù)據(jù);符號庫方面需準備三維符號庫模型規(guī)則庫,便于快速構(gòu)建三維場景。
對于重要地理國情要素數(shù)據(jù),先從構(gòu)筑物線圖層中提取隧道和長度大于300 m的橋梁,然后將公路、城市道路和鄉(xiāng)村道路通過擦除和融合處理的方法獲取完整道路網(wǎng)要素,最后單獨提取高架路以增強道路要素三維符號表達的層次感,并按寬度屬性融合后以40 m分割圖形生成橋墩點。對于無“寬度”屬性項的鄉(xiāng)村道路,可賦其寬度屬性值為3 m;若數(shù)據(jù)中無法從“是否高架”屬性項區(qū)分出高架路,可只提取“技術(shù)等級”屬性中為“高速”的道路作為高架路。
對于地表覆蓋分類數(shù)據(jù),因其采集方式為所見即所得、最小圖斑的地面實際面積為200 m2、存在一定的綜合性等特點,以致地表覆蓋分類數(shù)據(jù)與道路要素在三維表示時會產(chǎn)生矛盾。可先將道路網(wǎng)要素按照寬度屬性值的一半進行緩沖區(qū)分析,生成有軌路面和無軌路面數(shù)據(jù),然后對地表覆蓋分類數(shù)據(jù)和道路面數(shù)據(jù)進行擦除和融合處理,并按照數(shù)據(jù)顯示方案生成15~17級各級別的地表覆蓋分類數(shù)據(jù)。
數(shù)據(jù)整理完后統(tǒng)一投影至高斯-克呂格平面直角坐標系,然后按照0.1°格網(wǎng)在平面直角坐標系下的最小外接矩形外擴一定范圍(可設(shè)定為100 m)進行分幅和圖形幾何修復(fù)處理,以免數(shù)據(jù)無法正常導入三維工程或無法正常符號化顯示。
在City Engine中新建三維工程,新建15~17級各級別分幅三維場景文件并設(shè)置投影坐標系參數(shù),再逐層導入對應(yīng)分幅地理國情普查數(shù)據(jù)。導入線狀要素時不需 勾 選“Run Genenrate Bridges Tool after Import”、“Run Simplify Graph Tool after Import”、“Run Graph Cleanup Tool after Import”選項,以免數(shù)據(jù)產(chǎn)生變形;導入面狀要素時只勾選“Import and map attributes”選項,設(shè)置圖形折角為15°,圖形清理水平垂直融合距離為0.1 m,勾選“Resolve Conflicting Shapes”參數(shù),以免數(shù)據(jù)產(chǎn)生較大變形。
在City Engine的Inspector屬性頁中,需設(shè)置道路 “street Width”掛接數(shù)據(jù)屬性項“WIDTH”,鐵路“street Width”可設(shè)為14,橋梁和隧道則根據(jù)對應(yīng)道路寬度屬性逐一設(shè)置“street Width”,“sidewalk Width Left”和“sidewalk Width Right” 可 設(shè) 為 0,“type” 可 設(shè) 為“Crogsing”。參數(shù)設(shè)置完成后逐一圖層全選物件,加載并應(yīng)用對應(yīng)要素的CGA規(guī)則文件,實現(xiàn)三維場景的快速建模。若道路模型出現(xiàn)異常時,需用編輯工具對其進行編輯處理,使其能正常、完整地表示出來;若地表覆蓋分類數(shù)據(jù)出現(xiàn)部分圖斑無法建模時,可在Arc Map中先對無法建模的圖斑進行圖形分割處理后再重新導入工程建模。
三維場景輸出之前需先設(shè)置并確認工程的背景、格網(wǎng)、指北針、方向指針以及圖形符號線框不顯示,設(shè)置平行投影算法腳本輸出圖片尺寸與視窗輸出范圍大小保持一致,然后分別運行兩個視角的三維場景輸出腳本,批量獲取場景圖片及對應(yīng)的坐標文件。從正北俯視三維場景時可設(shè)置太陽方位角為120°,從正南俯視時可設(shè)置太陽方位角為300°,以修正地物向陽面與陰影的方向。
先按照分幅編號、不同級別和不同視角分別拼接三維場景輸出的圖片數(shù)據(jù),然后對其構(gòu)建鑲嵌數(shù)據(jù)集,拼接成不同級別、不同視角的三維場景數(shù)據(jù)。構(gòu)建鑲嵌數(shù)據(jù)集時應(yīng)生成和編輯接邊線以去除接邊痕跡,同時還應(yīng)檢查鑲嵌數(shù)據(jù)集的分幅分塊圖像是否存在異常。若圖像存在異常,需找出對應(yīng)的分幅編號,分析異常產(chǎn)生的原因并重新輸出。常見異常問題主要有分塊圖像內(nèi)部存在較大色彩差異、分塊圖像之間存在較大色彩差異、分塊圖像存在空間位置偏移和數(shù)據(jù)空白等,一般情況下重新輸出一次即可解決問題。若因房屋建筑(區(qū))隨機生成的模型高低不同而導致接邊困難時,可適當增加數(shù)據(jù)分幅的外擴范圍,以保證有較大的重疊區(qū)域編輯接邊線。
在Arc Map中利用建好的鑲嵌數(shù)據(jù)集,先按照天地圖的地圖瓦片生產(chǎn)技術(shù)方法[5]建立兩個視角15~17級地圖切片工程,分別發(fā)布服務(wù)獲取兩個視角15~17級的瓦片數(shù)據(jù),最后將瓦片數(shù)據(jù)與地理國情普查數(shù)據(jù)進行疊加顯示,逐級逐屏檢查瓦片數(shù)據(jù)是否存在空洞或顯示異常的情況。
以仙游縣為試驗區(qū),在ArcGIS模型構(gòu)建工具中利用裁切、投影、擦除、緩沖區(qū)、合并、計算字段、連接字段、融合、修復(fù)幾何等處理功能,將地理國情普查數(shù)據(jù)預(yù)處理系列過程進行可視化編程,實現(xiàn)數(shù)據(jù)的一鍵式批量處理;在VB環(huán)境下利用文本框、按鈕等控件進行編程,實現(xiàn)三維場景文件和三維場景輸出腳本文件的批量生成,將文件創(chuàng)建、參數(shù)設(shè)置等繁瑣工作自動化實現(xiàn)(如圖2),只需在生成的三維場景文件中導入對應(yīng)分幅的數(shù)據(jù)進行建模和模型編輯后,即可運行對應(yīng)的腳本文件進行三維場景批量輸出,大幅提高生產(chǎn)效率和降低生產(chǎn)成本。圖3為仙游縣局部區(qū)域地理國情普查仿真三維地圖服務(wù)疊加天地圖矢量地圖注記服務(wù)的15~17級顯示效果圖。
圖2 基于VB開發(fā)的國普仿真三維輔助程序
圖3 地理國情普查仿真三維地圖15~17級顯示效果圖
本文以地理國情普查成果為數(shù)據(jù)源,充分利用三維快速建模技術(shù)和2.5維地圖制作技術(shù),研究出一套地理國情普查成果的仿真三維地圖制作技術(shù)流程,實現(xiàn)了仙游縣正北、正南俯視兩個視角地理國情普查成果仿真三維地圖瓦片數(shù)據(jù)的批量生產(chǎn)。該方法能有效解決大范圍、大數(shù)據(jù)量地理國情普查成果在三維地圖服務(wù)應(yīng)用方面的問題,使其能在互聯(lián)網(wǎng)上為政府部門和社會大眾提供較好的用戶體驗,對地理國情普查成果在互聯(lián)網(wǎng)上的推廣應(yīng)用起到了重要的作用。
[1] 李鋒.基于CityEngine的2.5維地圖生成方法與應(yīng)用[J].城市勘測,2015(4):20-23
[2] 陳秋曉,張斌,吳寧,等.城市道路參數(shù)化建模規(guī)則初探[J].建筑與文化,2013(7):40-41
[3] 段雅萍,郝連秀,王瑞富,等.基于CityEngine的城市三維模型構(gòu)建方法與問題分析[J].地理空間信息,2017,15(5):75-77
[4] 劉向南,馬純永,陳璐,等.基于三維場景出圖的拼接制作2.5維地圖算法[J].計算機應(yīng)用,2015,35(增刊):217-220
[5] CH/Z 9011-2011.地理信息公共服務(wù)平臺電子地圖數(shù)據(jù)規(guī)范[S].