前言

結合水務行業地理信息要素來示例說明3D WebGIS在前文的技術路線下的實現方式,本篇先作數據說明。

渲染效果

後期補充

技術與工具

1.ArcMap(可以不需要,只要能編輯維護空間數據即可,如SHP格式)

2.ArcGIS Server(可以不需要,如果數據量不大,通過工具將SHP格式輸出GeoJSON,直接提供GeoJSON也可,實現方式稍有不同)(另註:ArcGIS Server,在js API請求下,也返回JSON格式,但可以在請求時通過範圍、欄位等參數來控制返回要素的數量以及JSON的大小)

3.了解坐標系以及坐標轉換工具,如有地形數據,同時有ArcGIS Server,可自行發布底圖數據,如無地形或影像數據,可選擇在線地圖進行疊加,本系列文章採用高德影像作為底圖,如相關坐標知識,請參見Web地圖坐標系。


Step 1

數據要素與數據結構

為進行示例說明,選取三類有代表性的要素作為渲染目標: 節點(井)、管線、建築物,分別對應點、線、面。

節點(檢查井)欄位結構(*為必須)

ID(編號*)、DEPTH(井深*)、ELEV(底部高程*)、RADIUS(井的半徑,可選欄位,可為固定值)

管線欄位結構(*為必須)

ID(編號*)、DIAMETER(管徑*,只考慮圓管),INLET(上游節點編號*)、OUTLET(下游節點編號*)、INELEV(上游管底高程*)、OUTELEV(下游管底高程*)

建築物欄位結構(*為必須)

ID(編號*)、NAME(名稱),ELEV(底部高程*)、FLOOR(樓層數)或HEIGHT(樓高*)、TYPE(建築類型*,可用於在渲染時,採用不同的紋理貼圖)

Step 2

在空間數據編輯軟體(如ArcMap),按上一步的欄位結構,建立要素表,並進行數據導入或編輯,確保上述的必須欄位有合理的值。

Step 3

如數據來源已知坐標系,可選擇工具進行坐標轉換(如ArcToolbox,Project),轉換為WGS84(wkid:4326),然後再通過WGS84轉GCJ02(國測局火星坐標,高德地圖採用該坐標系)的轉換公式(可Google或Baidu得到),進行批量轉換。當然,也可通過自行二次開發批處理工具,如:通過AE來讀取上述要素表(FeatureClass),點要素直接通過轉換公式轉換坐標,線和面要素遍歷所有Vertex,再通過轉換公式轉換坐標。

該步成果為GCJ02坐標系下的上述三類要素表(GDB)或空間數據文件(SHP)。

Step 4

ArcMap新建Mxd,添加三類要素的圖層,並通過ArcGIS Server發布Mxd(自行調節一次請求的要素數量,ArcGIS Server地圖服務默認值為1000)。

該步完成空間數據準備,成果為地圖服務地址,將在後期代碼實現中使用。

Step 5

準備紋理材質:井蓋、井壁、管壁、建築物紋理(可多找幾類)

紋理大小(高寬)盡量是2的冪,(如:16*16,64*64,16*64 )

Step 6

準備一個精模建築物,可用Blender進行建模,最後導出為JSON格式,注意導出紋理貼圖。

同時請標記該建築物大概所在地理位置,只需大概,具體如何調到準確位置,可在後期通過代碼實現相關功能進行微調。

到此,後期代碼所需數據都已具備,開始編碼。


推薦閱讀:
相关文章