三维GIS笔记
????????超圖三維GIS和WebGIS網課教程的一些筆記。內容包含了目前GIS三維領域和WebGIS三維的絕大部分基本知識和應用場景案例。
一、初級三維GIS
1.1 大規模點云處理及優化
暫時略過,項目中沒有遇到過直接加載點云數據
1.2 傾斜攝影數據獲取、對接、處理、優化
1. 獲取:航拍 → 空三加密 → 點云 → TIN → 白膜DSM → 成品三維模型
2. 對接:在SuperMap iDesktop里面如何加載傾斜攝影模型 (略過)
3. 處理: 效果修補、單體化、優化
(1)修補 -- 在idesktop的“對象操作”里進行
? ? ?對模型進行裁剪、挖洞、填補、水面化等操作(類似對二維矢量面進行疊加分析的裁剪合并啥的,只是這個是對一個三維模型),在iDesktop的“對象操作”功能區中進行操作。水面化的效果如下:
圖:?傾斜攝影水面效果修補?
(2)單體化方法
????????① 切割單體化:整個的傾斜攝影模型,切割成一個個單獨的模型
????????② ID單體化:超圖自己的一個解決方案。過程:搞一個矢量面圖層,疊在傾斜攝影上,然后把每個矢量面的ID值賦給覆蓋了的傾斜攝影頂點上,生成S3M數據格式,這樣傾斜攝影TIN網每一個頂點都多了一個ID屬性,就可以拿來作為單體化判斷依據。(這樣會不會大幅增加數據量?每一個頂點都多了個字段)
????????③ 動態單體化: 和ID單體化的區別就是不會生成S3M格式的數據來加載,其他原理是一樣的。和Cesium的單體化方案一樣,就是根據矢量面數據生成一個看不見的ClassificationPrimitive自動套在傾斜攝影模型上,詳細代碼見我另一篇博客:Cesium純代碼實現傾斜攝影單體化查詢
(3)優化(idesktop的“三維對象”→“數據處理”里)
? ? ? ? 優化的目的:更快加載傾斜攝影模型
????????① 合并根節點:其實就是降低分辨率,把四個結點加權方法合并為一個節點,類似深度學習的卷積操作。
????????② 壓縮紋理:對貼圖圖片進行壓縮,因為有時候一個三維模型的結構數據很小就幾十KB,貼圖倒是有10多M。
????????③ 切片:超圖就是S3M格式,Cesium就是3dtiles格式
????????④ 分布式存儲
1.3??BIM數據的對接、坐標、屬性編輯、優化
暫時略過,項目中還沒遇到加載BIM數據的
1.4 3DMax數據
暫時略過,項目中還沒遇到加載3D Max數據的
1.5?三維場模型
用來表達連續三維空間的數據類型,主要包含:TIM和體元柵格
1.?TIM模型:(連續不規則四角網,TIN模型的升級版)
????????應用領域:地質體。 TIN用來表達連續的地形表面,但是地質體在地下還有結構,所以要用到TIM。關于TIN數據格式,在1.6中有詳細介紹。
?圖:TIM模型
2.?體元柵格模型 Voxel Grid
????????應用領域:熱力圖的三維形式,如:溫度、信號強度、氣壓、風速等等。
?圖:體元柵格應用
3.?基于2D數據的3D建模
本質:獲取二維面圖層各個Geometry的高度,然后拉伸為3D的建筑。獲取高度的方法如下:
????????① 現實中測量后,手動賦高度值
????????② 在有傾斜攝影模型的情況下,通過計算傾斜攝影模型和地形的高差,求得高度。
1.6 地形數據的處理與應用
1. 地形數據的類型:
? ? ? ? 規則格網、不規則格網TIN
????????① 規則格網
?????????缺點:地形起伏大的地方表現力不足,起伏小的地方數據冗余
????????主要使用的數據格式:tiff , tif , img, grid, ecw
????????
圖:?規則格網地形
????????② 不規則三角網TIN
? ? ? ?????????由規則格網生成TIN緩存而得來。
????????
圖:不規則三角網地形
2. 地形數據的處理
? ? ? 裁剪、邊緣和斷崖的平滑處理
1.7? 多源數據融合
????????1. 坐標系轉換(已知坐標系)、坐標配準(未知坐標系)
????????2? 地形的修改: TIN地形鑲嵌(idesktop里面操作)
????????3.? 傾斜攝影上疊加三維模型:傾斜攝影壓平(idesktop操作)
????????4.? 傾斜攝影鑲嵌:挖山修路
????????5.? 布爾運算,求交:隧道模型和地形模型求差集,挖隧道修路
1.8?三維場景的搭建與發布
1. 搭建
?圖:??三維場景建立的流程? ?
????????GIS三維場景性能的評價指標:FPS,低于25則建議優化
????????三維場景優化的主要手段:緩存、邊界反走樣(抗鋸齒)、圖層的最大最小可見高度和距離
2. 發布
? ? ? ? 超圖用iserver/iobject發布;三維靜態資源用tomcat等發布,二維圖層用geoserver發布OGC標準的地圖服務。
1.9?Cesium.js(supermap改進版)簡介
? ? ? ? 沒啥用,很多功能需要搭配iserver服務器實現,買不起iserver。建議直接看Cesium官網的開源示例。
二、中級三維GIS
2.1 BIM:概述、制作、對接、問題、性能優化
工作沒接觸過,暫時跳過
2.2 3ds max:概述、制作、對接、性能優化
工作沒接觸過,暫時跳過
2.3 傾斜攝影:概述、制作、對接、問題、性能優化
1. 概述、制作、對接:略
2. 優化
? ? ? ① 切片:3dtiles
? ? ? ② 壓縮單體化
? ? ? ③ 合并根節點:?tiles文件夾過多,數據過于瑣碎
? ? ? ④ 生成大文件:把所有的tiles文件存到.db文件夾中,通過sqlite來讀取 (pc和移動端適用)?
2.4 模型的常用處理
1. 布爾運算
? ? ? ? 三維模型之間和三維模型與圖層之間的裁剪、合并、求交運算。
2. 矢量數據提取
? ? ? ? 從三維模型中提取二維數據:就是對模型做一個剖切,然后獲取截面的矢量面數據。如下圖所示
圖:? 三維模型提取二維結構數據?
3. 模型操作
? ? ? ? 提取截面、拉伸、提取邊界
4. 模型編輯
? ? ? ? 模型平移、旋轉
2.5 二三維緩存詳解
0. 緩存概述
緩存的生成的幾個主要配置項:
? ? ? ?① 紋理壓縮、
? ? ? ?②?切片范圍(單位切片代表的面積)
? ? ? ?③ 過濾閾值(如:把幾個單位融為一個單位)
? ? ? ?④ LOD層級數量
1. 矢量緩存
????????現在用的很少了
2. 模型緩存
? ? ? ? Cesium:?*.b3dm, *i3dm ( 3DTiles)
3. 影像緩存
????????.png的LOD切片:先分層,再分塊。(四叉樹方法剖分,一切為四)
圖:影像切片規則
4. 地形緩存?
???????Cesium:?.terrain格式LOD切片
5. 地圖緩存
? ? ? ? ① 柵格瓦片:應用場景,如遙感影像切片
? ? ? ? ② 矢量切片 (maobox的mvt矢量地圖切片):應用場景,如百度地圖可以在地圖工坊自定義地圖的顯示方法。
2.6 iServer的使用? ??
(貴,用不起,詳細操作不看了,記錄一些通用的GIS服務器標準)
1.? ?功能
? ? ? ? ① 地圖服務:發布地圖,專題圖、地形;
? ? ? ? ② 數據服務:數據的增改刪查、動態標繪;
? ? ? ? ③ 分析服務:疊加分析、緩沖區分析、插值分析、網絡分析、路徑分析;
? ? ? ? ④ AI服務:分布式、計算機視覺分析、等;?
圖 :超圖iServer服務器的功能列表
2.? 數據安全控制
① 基本操作:權限控制,登錄密碼,加載數據密碼,token,等。想給GIS數據加密貌似沒有,畢竟百度高德之類的大廠地圖也可以被爬下來數據。
② GIS專屬加密操作:坐標系加密。
2.7 Cesium的使用
詳見第三、第四章節部分
2.8 GIS行業賦能案例:BIM、傾斜攝影、城市設計
1. BIM案例
? ? ? ? 應用項目場景:建筑施工進度管理、建筑與設備維護管理。
????????具體功能有:點擊屬性查詢
2. 傾斜攝影案例
? ? ? ? 應用項目場景:社區管理
? ? ? ? 具體功能:單體化點擊屬性查詢、單體化語義分割
圖: 傾斜攝影單體化語義分割(手動分割,非AI)
3. 城市設計案例
? ① 案例1 :【拆遷分析】
? ? ? ??圖: GIS在城市規劃設計的應用案例1?
② 案例2:【模擬建設】
?圖: GIS在城市規劃設計的應用案例2
2.9 三維可見性分析:通視、可視域、天際線、視頻投放
1. 通視分析
概念:從一個點出發,是否可以看到某個點。如下圖:從亭子觀察旁邊大樓的多個點位,綠色的為可見,紅色為不可見。?
圖: 通視分析
2. 可視域分析
概念:從某點出發,是否可以看見某個范圍。
?圖: 可視域分析
3. 天際線
????????不解釋了,很基礎
4. 視頻投放
?概念:在場景中插入一個視頻
圖: 可視域分析
2.10 三維空間分析:TIN地形、剖面、坡度坡向、挖填方、開敞度、日照、box裁剪、淹沒、興趣點
? ? ? ? 不解釋了,很基礎
2.11 三維管網
? ? ? ? 項目沒遇到過,暫時不看
2.12 三維動態圖層
????????
?圖: 動態圖層
2.13 三維標繪與動態推演
在一些項目里面這個功能挺核心的,如搶險救災、環境污染等。
1. 主要應用領域
? ? ? ? 實時指揮調度
2. 核心功能
? ? ? ? 可交互、可編輯、可實時、可模擬推演
3. 實現
1)三維標繪的標號:剪頭標號 + 警示標號
2)超圖自己封裝的Plotlayer類來實現,需要配合iserver發布的數據才可以。
圖: 三維標繪 + 動態推演
三、Cesium.js 初級
參考:?http://support.supermap.com.cn:8090/webgl/examples/webgl/examples.html
四、Vue3 + Cesium.js項目實訓
參考:?SuperMap_iClient3D_Vue_for_WebGL (supermapol.com)
完結 2022.5.24
總結
- 上一篇: Tr A HDU1575
- 下一篇: C Looooops POJ - 211