第一章:QGIS的3D功能概述
QGIS自3.0版本起集成原生3D视图功能,支持地形模型、矢量要素的三维渲染及动态交互。其核心能力包括:
- 地形可视化:基于DEM(数字高程模型)生成地形表面,支持垂直比例调整以增强地形起伏效果。
- 矢量要素挤出:将建筑物轮廓、道路等矢量数据通过高度属性拉伸为3D模型。
- 光照与材质:可配置点光源、平行光、阴影分辨率及材质反射属性(如漫反射、镜面反射、透明度)。
- 多格式导出:支持OBJ、GLTF等通用3D格式,便于与其他软件(如Blender、Three.js)集成。
第二章:数据准备与预处理
2.1 核心数据类型
- 地形数据:DEM栅格文件(如GeoTIFF),分辨率决定地形精度(推荐≥10米)。
- 矢量数据:建筑物轮廓(SHP)、道路网络(GeoJSON)、POI点数据(CSV)。
- 纹理数据:卫星影像(JPEG2000)、山影图(Hillshade)增强地形立体感。
2.2 数据获取渠道
- 开放数据平台:USGS EarthExplorer(DEM)、OpenStreetMap(矢量)、Sentinel Hub(卫星影像)。
- 本地采集:激光扫描(LiDAR)生成高精度DEM,或通过GPS设备获取高程点。
2.3 数据预处理
- 坐标系统一:确保所有图层使用同一CRS(如EPSG:4326或EPSG:3857),避免三维空间错位。
- 格式转换:将KML、GPX等非GIS格式转换为QGIS兼容格式(如SHP、GeoTIFF)。
- 属性字段添加:为矢量要素定义高度字段(如
height
),用于后续模型挤出。
第三章:3D地图创建步骤
3.1 基础地形构建
- 导入DEM:通过“图层”→“添加栅格图层”加载DEM文件。
- 创建3D视图:点击“视图”→“新建3D地图视图”,激活3D画布。
- 地形参数配置:
- 垂直比例:默认1:1可能过平,需根据地形调整(如放大5-10倍)。
- 渲染模式:选择“DEM(栅格图层)”,启用“地形晕渲”增强细节。
3.2 矢量要素三维化
- 建筑物挤出:
- 右键图层→“属性”→“3D视图”→勾选“启用3D渲染”。
- 设置挤出高度(如字段
height
或固定值),调整屋顶/墙面材质颜色。
- 道路与河流:使用“线符号”的“轨迹”模式,设置线宽与高程偏移量模拟立体效果。
3.3 叠加纹理与标注
- 卫星影像叠加:将正射影像作为独立栅格层叠加至地形,调整透明度实现融合。
- 动态标签:启用“3D标注”,设置标注高程偏移避免与地形重叠。
第四章:高级渲染与场景优化
4.1 光照与阴影
- 光源类型:支持8个点光源+4个平行光,模拟自然光照。
- 阴影参数:调整“阴影距离”与“分辨率”,平衡效果与性能(高分辨率可能导致卡顿)。
- 环境光遮蔽:启用“环境光”选项,增强模型间遮挡的真实感。
4.2 材质与透明度
- 材质类型:支持“写实材质”(基于物理渲染)与“CAD材质”(强调边缘线条)。
- 透明度控制:通过滑块调整水体或玻璃材质的半透明效果。
4.3 视角与动画
- 视角操作:按住Shift+鼠标拖拽调整视角,滚轮缩放。
- 飞行路径录制:使用插件(如QGIS2threejs)录制漫游动画,输出为视频。
第五章:插件扩展与自动化
5.1 核心3D插件
- Qgis2threejs:将3D场景导出为WebGL格式,支持浏览器交互。
- 3D Analyst:提供高级地形分析工具(如剖面切割、可视域分析)。
- Orfeo Toolbox:处理遥感数据(如影像分类),增强纹理细节。
5.2 Python脚本自动化
- PyQGIS API:批量生成3D视图,示例代码:
# 创建3D视图 view3d = Qgs3DMapCanvas() view3d.setLayers([dem_layer, building_layer]) view3d.setVerticalScale(5.0) view3d.show()
运行
第六章:导出与共享
6.1 图像与视频
- 静态输出:通过“另存为图像”导出PNG/TIFF,分辨率可自定义。
- 动态输出:使用ScreenRecorder插件录制视角漫游视频。
6.2 3D模型导出
- 格式选择:
- OBJ:通用3D格式,兼容Blender、Maya。
- GLTF:Web友好格式,支持Three.js加载。
- 导出步骤:通过插件(如QGIS2threejs)选择模型范围与格式,自动生成纹理贴图。
6.3 Web发布
- WebGL集成:将GLTF文件嵌入网页,使用Three.js实现交互式浏览。
- QGIS Server:部署3D地图服务,支持W3DS标准在线访问。
第七章:典型案例分析
案例1:城市三维建模
- 数据:LiDAR DEM(1米分辨率)+ OSM建筑物轮廓。
- 步骤:
- 建筑物高度从OSM标签
height
字段提取。 - 叠加Google卫星影像作为纹理。
- 导出GLTF模型,用于城市规划展示。
- 建筑物高度从OSM标签
案例2:地形灾害模拟
- 数据:SRTM DEM(30米)+ 滑坡边界矢量。
- 步骤:
- 调整垂直比例突出陡坡区域。
- 使用“可视域分析”插件模拟滑坡影响范围。
- 输出3D剖面图辅助应急决策。
第八章:常见问题与优化建议
- 地形显示异常:检查DEM的CRS是否为投影坐标系(如UTM),地理坐标系(如WGS84)可能导致扭曲。
- 性能卡顿:降低DEM分辨率或关闭实时阴影,复杂场景建议分块加载。
- 纹理错位:确保卫星影像与DEM使用相同CRS,必要时通过“地理配准”工具校正。
- 插件兼容性:QGIS版本升级后,部分插件需重新安装(如Qgis2threejs)。
结语
QGIS的3D功能已从基础可视化发展为涵盖建模、分析与发布的综合工具链。通过合理选择数据、优化渲染参数及扩展插件,用户可高效制作科研级或展示级三维地图。未来,随着WebGL与实时渲染技术的整合,QGIS在虚拟地理环境(VGE)中的应用潜力将进一步释放。