超图三维GIS和WebGIS网课教程的一些笔记。内容包含了目前GIS三维领域和WebGIS三维的绝大部分基本知识和应用场景案例。

一、初级三维GIS

1.1 大规模点云处理及优化

暂时略过,项目中没有遇到过直接加载点云数据

1.2 倾斜摄影数据获取、对接、处理、优化

1. 获取:航拍 → 空三加密 → 点云 → TIN → 白膜DSM → 成品三维模型

2. 对接:在SuperMap iDesktop里面如何加载倾斜摄影模型 (略过)

3. 处理: 效果修补、单体化、优化

(1)修补 — 在idesktop的“对象操作”里进行

     对模型进行裁剪、挖洞、填补、水面化等操作(类似对二维矢量面进行叠加分析的裁剪合并啥的,只是这个是对一个三维模型),在iDesktop的“对象操作”功能区中进行操作。水面化的效果如下:

三维GIS笔记-编程之家

图: 倾斜摄影水面效果修补 

(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中有详细介绍

三维GIS笔记-编程之家

 图:TIM模型

2. 体元栅格模型 Voxel Grid

        应用领域:热力图的三维形式,如:温度、信号强度、气压、风速等等。

三维GIS笔记-编程之家

 图:体元栅格应用

3. 基于2D数据的3D建模

本质:获取二维面图层各个Geometry的高度,然后拉伸为3D的建筑。获取高度的方法如下:

        ① 现实中测量后,手动赋高度值

        ② 在有倾斜摄影模型的情况下,通过计算倾斜摄影模型和地形的高差,求得高度。

1.6 地形数据的处理与应用

1. 地形数据的类型:

        规则格网、不规则格网TIN

        ① 规则格网

         缺点:地形起伏大的地方表现力不足,起伏小的地方数据冗余

        主要使用的数据格式:tiff , tif , img, grid, ecw

        

三维GIS笔记-编程之家

图: 规则格网地形

        ② 不规则三角网TIN

               由规则格网生成TIN缓存而得来。

        

三维GIS笔记-编程之家

图:不规则三角网地形

2. 地形数据的处理

      裁剪、边缘和断崖的平滑处理

1.7  多源数据融合

        1. 坐标系转换(已知坐标系)、坐标配准(未知坐标系)

        2  地形的修改: TIN地形镶嵌(idesktop里面操作)

        3.  倾斜摄影上叠加三维模型:倾斜摄影压平(idesktop操作)

        4.  倾斜摄影镶嵌:挖山修路

        5.  布尔运算,求交:隧道模型和地形模型求差集,挖隧道修路

1.8 三维场景的搭建与发布

1. 搭建

三维GIS笔记-编程之家

 图:  三维场景建立的流程   

        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. 矢量数据提取

        从三维模型中提取二维数据:就是对模型做一个剖切,然后获取截面的矢量面数据。如下图所示

三维GIS笔记-编程之家

图:  三维模型提取二维结构数据 

3. 模型操作

        提取截面、拉伸、提取边界

4. 模型编辑

        模型平移、旋转

2.5 二三维缓存详解

0. 缓存概述

缓存的生成的几个主要配置项:

       ① 纹理压缩、

       ② 切片范围(单位切片代表的面积)

       ③ 过滤阈值(如:把几个单位融为一个单位)

       ④ LOD层级数量

1. 矢量缓存

        现在用的很少了

2. 模型缓存

        Cesium: *.b3dm, *i3dm ( 3DTiles)

3. 影像缓存

        .png的LOD切片:先分层,再分块。(四叉树方法剖分,一切为四)

三维GIS笔记-编程之家

图:影像切片规则

4. 地形缓存 

       Cesium: .terrain格式LOD切片

5. 地图缓存

        ① 栅格瓦片:应用场景,如遥感影像切片

        ② 矢量切片 (maobox的mvt矢量地图切片):应用场景,如百度地图可以在地图工坊自定义地图的显示方法。

2.6 iServer的使用    

(贵,用不起,详细操作不看了,记录一些通用的GIS服务器标准)

1.   功能

        ① 地图服务:发布地图,专题图、地形;

        ② 数据服务:数据的增改删查、动态标绘;

        ③ 分析服务:叠加分析、缓冲区分析、插值分析、网络分析、路径分析;

        ④ AI服务:分布式、计算机视觉分析、等; 

三维GIS笔记-编程之家

图 :超图iServer服务器的功能列表

2.  数据安全控制

① 基本操作:权限控制,登录密码,加载数据密码,token,等。想给GIS数据加密貌似没有,毕竟百度高德之类的大厂地图也可以被爬下来数据。

② GIS专属加密操作:坐标系加密。

2.7 Cesium的使用

详见第三、第四章节部分

2.8 GIS行业赋能案例:BIM、倾斜摄影、城市设计

1. BIM案例

        应用项目场景:建筑施工进度管理、建筑与设备维护管理。

        具体功能有:点击属性查询

2. 倾斜摄影案例

        应用项目场景:社区管理

        具体功能:单体化点击属性查询、单体化语义分割

三维GIS笔记-编程之家

图: 倾斜摄影单体化语义分割(手动分割,非AI)

3. 城市设计案例

  ① 案例1 :【拆迁分析】

三维GIS笔记-编程之家

        图: GIS在城市规划设计的应用案例1 

② 案例2:【模拟建设】

三维GIS笔记-编程之家

 图: GIS在城市规划设计的应用案例2

2.9 三维可见性分析:通视、可视域、天际线、视频投放

1. 通视分析

概念:从一个点出发,是否可以看到某个。如下图:从亭子观察旁边大楼的多个点位,绿色的为可见,红色为不可见。 

三维GIS笔记-编程之家

图: 通视分析

2. 可视域分析

概念:从某点出发,是否可以看见某个范围

三维GIS笔记-编程之家

 图: 可视域分析

3. 天际线

        不解释了,很基础

4. 视频投放

 概念:在场景中插入一个视频

三维GIS笔记-编程之家

图: 可视域分析

2.10 三维空间分析:TIN地形、剖面、坡度坡向、挖填方、开敞度、日照、box裁剪、淹没、兴趣点

        不解释了,很基础

2.11 三维管网

        项目没遇到过,暂时不看

2.12 三维动态图层

        

三维GIS笔记-编程之家

三维GIS笔记-编程之家

 图: 动态图层

2.13 三维标绘与动态推演

在一些项目里面这个功能挺核心的,如抢险救灾、环境污染等。

1. 主要应用领域

        实时指挥调度

2. 核心功能

        可交互、可编辑、可实时、可模拟推演

3. 实现

1)三维标绘的标号:剪头标号 + 警示标号

2)超图自己封装的Plotlayer类来实现,需要配合iserver发布的数据才可以。

三维GIS笔记-编程之家

图: 三维标绘 + 动态推演


三、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