QGIS跟arcgis一样,也能加载DEM数据,进行渲染漫游。

叠加影像底图后,也能进行山体晕染。

一、数据获取

现在国内的公共数据资源做的也很不错了。我们可以从地理空间数据云上获取。

http://www.gscloud.cn/search

网站需要注册,注册之后,就能下载数据了。

我要下载的是30M分辨率数字高程数据,根据矩形检索出来数据列表,点击下载就行了。

数据集选择:DEM 数字高程数据中的ASTER GDEM 30M分辨率数字高程数据。

我下载了2个,ASTGTM_N26E098和ASTGTM_N26E099,下载速度也还可以。

下载的数据是zip格式的,解压之后就是img文件。

二、QGIS改成中文模式

英文不好,看着难受,把QGIS界面改成中文模式吧。

QGIS打开,工具栏,Setting——Options——General:

勾选Override system locale,User Interface Translation选简体中文。

点击ok后,关闭QGIS,重新打开即可。

三、QGIS加载DEM数据

1.图层设置

打开QGIS,加载ASTGTM_N26E098.img和ASTGTM_N26E099.img文件。

选中图层,右键属性,设置图层属性。

符号化,渲染类型选择为单波段伪彩色。

颜色渐变选择Magma。

点击ok即可。

注意一下,数据的坐标系是EPSG:32647,WGS84/UTM zone 47N,是分度带投影坐标系。

2.三维地图

工具栏,视图——新建三维地图视图,快捷键是ctrl+shift+m,打开三维地图窗口。

点击设置图标,打开3D设置对话框,高程选择图层ASTGMT_N26E098Y,点击ok即可。

按住ctrl键,在窗口中拖拽鼠标,滚动滚轮,就能实现三维地图的漫游。

很简单。

QGIS自带的三维地图不是很完善。

接下来看万能的插件。

四、Qgis2threejs插件

1.安装插件

QGIS有很丰富的插件,除了通过三维地图浏览DEM模型外,也可以安装插件,渲染DEM模型。

工具栏,插件——管理并安装插件。

全部,搜索Qgis2threejs,点击安装插件。

2.渲染DEM数据

Qgis2threejs会跟三维地图有些冲突,所以需要关闭QGIS,重新打开QGIS,加载DEM数据。

工具栏,网络——Qgis2threejs——Qgis2threejs Exporter。

勾选DEM下的两个DEM数据,分别在Qgis2threejs Exporter窗口和QGIS窗口,拖拽鼠标,滚动滚轮。可以查看效果。

3.导出

Qgis2threejs支持导出为html格式。

Qgis2threejs Exporter界面,File——Export to Web。

设置导出文件夹(Output Directory),文件名(HTML Filename)。

注意要勾选:Enable the Viewer to Run Locally,否则导出的页面本地打不开。

Index.html文件代码如下:

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>index</title><meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"><link rel="stylesheet" type="text/css" href="./Qgis2threejs.css"><script src="./threejs/three.min.js"></script><script src="./threejs/OrbitControls.js"></script><script src="./Qgis2threejs.js"></script></head><body><div id="view"><div id="labels"></div><div id="northarrow"></div></div><!-- popup --><div id="popup"><div id="closebtn">&times;</div><div id="popupbar"></div><div id="popupbody"><div id="popupcontent"></div><!-- query result --><div id="queryresult"><table id="qr_layername_table"><caption>Layer name</caption><tr><td id="qr_layername"></td></tr></table><table id="qr_coords_table"><caption>Clicked coordinates</caption><tr><td id="qr_coords"></td></tr></table><!-- camera actions --><div class="action-btn action-zoom" onclick="app.cameraAction.zoomIn(); app.closePopup();">Zoom in here</div><div class="action-btn action-move" onclick="app.cameraAction.move(); app.closePopup();">Move here</div><div class="action-btn action-orbit" onclick="app.cameraAction.orbit(); app.closePopup();">Orbit around here</div><!-- attributes --><table id="qr_attrs_table"><caption>Attributes</caption></table></div><!-- page info --><div id="pageinfo"><h1>Current View URL</h1><div><input id="urlbox" type="text"></div><h1>Usage</h1><table id="usage"><tr><td colspan="2" class="star">Mouse</td></tr><tr><td>Left button + Move</td><td>Orbit</td></tr><tr><td>Mouse Wheel</td><td>Zoom</td></tr><tr><td>Right button + Move</td><td>Pan</td></tr><tr><td colspan="2" class="star">Keys</td></tr><tr><td>Arrow keys</td><td>Move Horizontally</td></tr><tr><td>Shift + Arrow keys</td><td>Orbit</td></tr><tr><td>Ctrl + Arrow keys</td><td>Rotate</td></tr><tr><td>Shift + Ctrl + Up / Down</td><td>Zoom In / Out</td></tr><tr><td>L</td><td>Toggle Label Visibility</td></tr><tr><td>R</td><td>Start / Stop Rotate Animation (Orbiting)</td></tr><tr><td>W</td><td>Wireframe Mode</td></tr><tr><td>Shift + R</td><td>Reset Camera Position</td></tr><tr><td>Shift + S</td><td>Save Image</td></tr></table><h1>About</h1><div id="about">This page was made with <a href="https://www.qgis.org/" target="_blank">QGIS</a> and <a href="https://github.com/minorua/Qgis2threejs" target="_blank">Qgis2threejs</a> plugin.Dependent JavaScript libraries are<a href="https://threejs.org/" target="_blank">three.js</a><span id="lib_proj4js"> and <a href="https://trac.osgeo.org/proj4js/" target="_blank">Proj4js</a></span>.</div></div></div></div><!-- progress bar --><div id="progress"><div id="bar"></div></div><!-- header and footer --><div id="header"></div><div id="footer"><span id="infobtn"><img src="./Qgis2threejs.png"></span> </div><script>Q3D.Config.allVisible = true;Q3D.Config.localMode = true;if (typeof proj4 === "undefined") document.getElementById("lib_proj4js").style.display = "none";var app = Q3D.application,container = document.getElementById("view");app.init(container);           // initialize application// load the sceneapp.loadSceneFile("./data/index/scene.js", function () {app.start();// North arrow insetif (Q3D.Config.northArrow.visible) app.buildNorthArrow(document.getElementById("northarrow"), app.scene.userData.rotation);});document.getElementById("infobtn").onclick = app.showInfo.bind(app);</script></body></html>

阅读代码可知,数据在./data/index/scene.js中。

看scene.js能看出,导出的数据是矢量的。

4.山体晕染

4-1.加载影像地图

首先要加载影像地图。

我们加载天地图的影像底图。

左侧浏览——XYZ Tiles,右键,新建连接。

随便起个名称,例如tianditu_img,网址是:http://t7.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=e3b434f191257368fc43c5b011ab5911,添加一个天地图影像瓦片。

4-2.配置图层透明度

我又去地理空间数据云上下载了两个DEM模型,泰山旁边的ASTGTM_N33E116和ASTGTM_N336117,因为前面的两个DEM模型是青藏高原的,高原,既高高的平原,没啥地形起伏,看看泰山的。

在QGIS中加载两个DEM模型。

选中两个DEM图层,右键,属性,将透明度——全局不透明度改为50%,确定。

4-3.数据导出

打开Qgis2threejs Exporter,将Layers下DEM下的图层都勾选上。

File——Export to Web,设置导出路径和网页名称,勾选Enable the Viewer to Run Locally,Template选择3D Viewer with dat-gui panel。

设置好后,点击Export,将网页导出。

效果如下:

因为数据本身质量不太好,所以效果一般。

4-4.高德影像底图

高德影像瓦片地址:https://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}。

叠加高德影像底图看看效果,有山脉起伏了,很好:

4-5.NASA数据

DEM数据也可以下载NASA的:http://dwtkns.com/srtm30m/。

NASA数据是hgt格式的,QGIS处理跟img数据一样。

NASA网站下数据需要先注册登录,https://urs.earthdata.nasa.gov/home。

网站可注册,数据可下载,就是慢而已。

相对来说,NASA数据精度更好,拼接过渡更合理,没有突兀的色差。

五、总结

相较于自带的三维地图窗口,Qgis2threejs功能更全面一些,且结果可移植。

多找数据,数据质量好,效果就会更好。

QGIS 3D:三维DEM数据加载渲染漫游相关推荐

  1. Cesium for Unreal 数据加载 场景漫游 粒子效果 视频监控 VR预览

    Cesium for Unreal: Cesium出了UE插件后一直没有时间学习体验,而且也从来没有接触过UE开发,只是在网上看过一些用UE做的数字孪生的案例,看上去确实是十分炫酷,正好最近工作不是很 ...

  2. 如何将测绘数据加载到三维地图中,解决海量测绘数据在线管理难题?

    <四维轻云>是四川兴域技术团队基于浏览器打造的一款地理空间数据在线管理平台,可实现TB级大规模倾斜摄影三维模型.正射影像.激光点云.数字高程模型等数据在线发布.管理及分享,并支持私有化部署 ...

  3. JS本地存储加载渲染页面信息、动态更新本地存储数据

    本地存储数据加载到页面: 从本地存储中获取数据,并由字符串基础类型转换为对象类型(存储至堆内存中) 初始化变量data 为空数组(变量data存储在栈内存中) 将获取的数据赋值给变量data (实质为 ...

  4. web高德地图怎么加载离线地图_基于 QGIS 在内网中离线加载卫星地图的方法

    1. 概述 我们之前为大家分享过在三维地球开源平台离线加载卫星影像的方法,主要包括基于桌面端的OsgEarth开源三维地球和基于Web端的Cesium开源三维地球等平台的局域网离线影像加载. 另外,也 ...

  5. 基于 QGIS 在内网中离线加载卫星地图的方法

    1. 概述 我们之前为大家分享过在三维地球开源平台离线加载卫星影像的方法,主要包括基于桌面端的OsgEarth开源三维地球和基于Web端的Cesium开源三维地球等平台的局域网离线影像加载. 另外,也 ...

  6. nuScenes自动驾驶数据集:数据格式精解,格式转换,模型的数据加载 (一)

    nuScenes数据集及nuScenes开发工具包简介 文章目录 nuScenes数据集及nuScenes开发工具包简介 1.1. nuScenes数据集简介: 1.2 数据采集: 1.2.1 传感器 ...

  7. Android4.0图库Gallery2代码分析(二) 数据管理和数据加载

    Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 2012-09-07 11:19 8152人阅读 评论(12) 收藏 举报 代码分析android相册优化工作 Androi ...

  8. android MVP连接服务器,Android之MVP模式实现登陆和网络数据加载

    MVP简介 相信你们对 MVC 都是比较熟悉了:M-Model-模型.V-View-视图.C-Controller-控制器,MVP做为MVC的演化版本,也是做为用户界面(用户层)的实现模式,那么相似的 ...

  9. Unity大场景数据加载及优化方案

    前段时间,有几个虚拟仿真公司跟我请教关于大地形的加载优化问题,它们使用的引擎都是自己研发的,引擎对于开发者来说,大同小异,它们的基本构造是一样的,关键是在于解决问题的方法,正是基于这个前提写了这个课程 ...

最新文章

  1. 瓜分340亿美元物联网芯片半导体市场!机会在这五大行业【附下载】| 智东西内参...
  2. WPF中RadioButton绑定数据的正确方法
  3. 反模式? 只有模式不彻底吧
  4. 解决linux不能安装g++问题
  5. SAP Analytics Cloud里的Smart Insight功能介绍
  6. JEECG-V3 版本相关文档开放通知
  7. 机器人当中的摩擦力(未完)
  8. 自己动手开发编译器特别篇——用词法分析器解决背诵圣经问题
  9. shell编程中if []的用法注意
  10. php验证码完整功能,用PHP实现验证码功能
  11. 20170114 - Mac 向上一级文件夹快捷键
  12. 【转】健康,运动,习惯
  13. 【高等数学】多元函数f(x,y...)的泰勒(Taylor)展开式
  14. 文本转成图片(自动换行、自定义字体),图片抗锯齿优化,图片压缩优化
  15. comsol通直流电_COMSOL 在电力行业中的 10 种实际用途
  16. 微信小程序清除Webview缓存
  17. 金庸群侠X版 会议纪要
  18. HTTP和HTTPS HTTPS为什么更安全?
  19. html5图片2d转换器,webp2jpg - 图片格式转换工具
  20. java计算机毕业设计漫画网站系统源码+系统+mysql数据库+lw文档

热门文章

  1. weblogic部署前后端分离项目
  2. 青龙面板的使用方法最新版
  3. Docker(狂神)
  4. 基础编程题目集 函数题部分
  5. VPS2105 替代金升阳模块 无光耦 DCDC 电源控制器 4-100V 小体积
  6. Spring 常用注解 脑图版
  7. VGG16、VGG19网络架构及模型训练 tricks :训练技巧、测试技巧
  8. 【小甲鱼C语言】课后笔记第一章第四节——数据类型
  9. 网易云课堂Python Flask框架全栈开发(200课全)
  10. Pyecharts可视化分析图表