热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

立体栅格地图_具有立体效果的地图制作

最近经常碰到用户问,使用SuperMap桌面软件能不能制作高低起伏的地形图?这个答案当然是肯定的:能!一般我会推荐用户使用D

最近经常碰到用户问,使用SuperMap桌面软件能不能制作高低起伏的地形图?这个答案当然是肯定的:能!一般我会推荐用户使用DEM生成正射三维影像或者三维晕渲图,但这两者具体的有何区别,哪个更好用些?今天,就用一个实例的方式简单说明一下。

使用示例数据:SuperMapiDesktop中提供的Jingjin示范数据。因为提供的Jingjin数据是经纬度的,建议先将数据转为投影的,以保证栅格的X、Y、Z值单位统一。

1.正射三维影像

"正射三维影像"功能,用来生成正射三维影像。在拍摄航空影像过程中,无法保证任何拍摄瞬间相机都是绝对水平的,因此得到的影像可能发生倾斜;另外由于成像方式存在的固有误差,需要对影像进行纠正,从而消除各种变形。经过纠正后的影像就是正射三维影像。

正射影像实质就是采用数字微分纠正技术,通过周边邻近栅格的高程得到当前点的合理日照强度,进行正射影像纠正的过程。

例如,图1中是Jingjin某地区的栅格原图,图2是生成的正射三维影像。

ffed797060dc236d896564a8c35fa77e.png

图1: 栅格原图

4633cd9fa8a0dc81df23c3fa4dccdaf9.png

图2: 正射三维影像图

正射三维影像,可以实现高低起伏的地形图的效果,但是在DEM生成正摄三维的时候:①日照的角度不能设置,只能使用系统默认;②结果数据集是影像数据集,无法设置其颜色表。虽然可以在生成正射三维影像的时候设置颜色表,如图3所示,但结果数据集已经应用,要是想做调整,就得重新再生成正射三维影像,比较麻烦。

6abeaf5961e968885e0e913d1e3dfad3.png

图3 生成正射三维影像对话框示意

那么,是不是使用三维晕渲图就可以解决这些问题?下面我们一起来看一看。

2.三维晕渲图

三维晕渲图是通过模拟实际地表的阴影从而反映出地形起伏状况的栅格图。通过采用假想的光源照射地图,结合栅格数据得到的坡度坡向信息,获得各像元的灰度值。面向光源的斜坡的灰度值最高,背向光源的灰度值较低,即为阴影区,从而形象地表现栅格实际的地貌和地势。

三维晕渲图主要是用于显示。使用【分析】--【表面分析】--【三维晕渲图】功能,由DEM生成带有立体效果的栅格数据,如图4所示,该功能的主要参数设置:

方位角:用来确定光源的方向,单位为度。值域范围顺时针0~360.

高度角:光源照射时倾斜角度,单位为度,值域范围0~90.

二者默认值分别为315和45,效果是北京冬天下午的太阳位置,如果想要北京夏天正午的日照效果,更改为225和90即可,其他区域可以根据实际情况进行调整。

阴影模式:提供了三种阴影模式:渲染、阴影、渲染与阴影。建议选择第三种”渲染与阴影“,得到的立体效果更真实。

高程缩放倍数:栅格表面中,栅格高程值(Z 值)相对于 X 和 Y 坐标的单位变换系数。相当是夸张系数,默认为1.

ed4c7a31290266f1285469e2c7ce3876.png

图4 三维晕渲图对话框示意

f3ec3c5184ca62f807366c62f608e2d4.png

图:方位角315,光照高度45,高程缩放倍数1

99bd5a7397b51192e80a8e1735752b2a.png

图:方位角315,光照高度45,高程缩放倍数3

实际上,默认生成的三维晕渲图颜色表并不是上图中所示的黑白色,因为三维晕渲图的结果是栅格数据集,在其“属性“中可以重新设置颜色表,为保证后面和原始DEM的叠加显示的效果,一般选择黑白过渡色带。

接下来就是已生成的山体阴影数据和原始DEM的叠加效果渲染了。两者叠加在同一地图窗口,原始DEM图层在上层,山体阴影数据在下层,然后对原始DEM图层的透明度和亮度进行设置,DEM图层可以根据需要选用合适的颜色表,就可以轻松地创建出精美细致颇具立体感的地貌图。如图5所示。

3ff8b1287ff247f5b13b65cb4d50fa84.png

图5:叠加效果示意

不同的应用场景下,为了达到最佳的制图效果,需要不断调整参数,例如栅格图层的透明度和亮度。之后可以在其上继续添加其他图层(如土地利用类型图、道路、河流图层),可进一步丰富地图信息。下图是不同分级和透明度设置效果:

c8850c564d5730952c61fd6aa889424c.png

图6-1:分5级,透明度40%

4ea4913224fc1a6e41f8a47315f989a7.png

图6-2:分9级,透明度20%亮度30%

35770422676ff604fa609380c724e7c8.png

图6-3:分9级,透明度40%亮度30%

14c8578326d1e35087d8388c29a8f8d1.png

图6-4:分9级,透明度80%亮度30%

图6中的分级,是通过对原始DEM制作范围分段专题图实现的。

如图7所示,为以三维晕渲图为底图,叠加道路、乡镇等信息配置的一幅地图。

d883afa31059195cbcc4c75715ed4143.png

图7 制作完成的地图示意

栅格数据集比影像数据集具有更多的可控性,例如颜色表的设置、专题图的制作、图层透明度、亮度等的设置,所以在制图时,使用栅格数据集作为底图,再叠加其他一些要素图层,地图的显示效果更优。生成地图缓存,将地图发布出来浏览,性能也不是问题。



推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 显卡驱动对游戏的影响及其提升效果的研究
    本文研究了显卡驱动对游戏体验的提升效果,通过比较新旧驱动加持下的RTX 2080Ti显卡在游戏体验上的差异。测试平台选择了i9-9900K处理器和索泰RTX 2080Ti玩家力量至尊显卡,以保证数据的准确性。研究结果表明,显卡驱动的更新确实能够带来近乎50%的性能提升,对于提升游戏体验具有重要意义。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
author-avatar
张兵在江湖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有