淹没分析是指根据指定的最大、最小高程值及淹没速度,动态模拟某区域水位由最小高程涨到最大高程的淹没过程,是GIS分析中常用的功能,常用于模拟洪涝灾害过程。在SuperMap的三维产品中淹没分析是通过分层设色的方式实现,以空间高度为强度值,在不同的高度设置不同的颜色,动态修改覆盖颜色的高度,实现淹没过程动态模拟。

下面来看实现过程。

一、设置颜色表

var colorTable = new Cesium.ColorTable();

function setColorTable(colorTable, key) {

switch (key) {

case "1":

colorTable.insert(71, new Cesium.Color(0, 39/255, 148/255));

colorTable.insert(0, new Cesium.Color(149/255, 232/255, 249/255));

break;

case "2":

colorTable.insert(71, new Cesium.Color(162/255, 251/255, 194/255));

colorTable.insert(0, new Cesium.Color(1, 103/255, 103/255));

break;

case "3":

colorTable.insert(71, new Cesium.Color(230/255, 198/255, 1));

colorTable.insert(0, new Cesium.Color(157/255, 0, 1));

break;

case "4":

colorTable.insert(71, new Cesium.Color(210/255, 15/255, 15/255));

colorTable.insert(54, new Cesium.Color(221/255, 224/255, 7/255));

colorTable.insert(36, new Cesium.Color(20/255, 187/255, 18/255));

colorTable.insert(18, new Cesium.Color(0, 161/255, 1));

colorTable.insert(0, new Cesium.Color(9/255, 9/255, 212/255));

break;

case "5":

colorTable.insert(71, new Cesium.Color(186/255, 1, 229/255));

colorTable.insert(0, new Cesium.Color(26/255, 185/255, 156/255));

break;

default:

break;

}

}

颜色表按照不同的空间高度,设置不同的颜色,中间高度对应颜色自动插值,形成色带。

二、分层设色类HypsometricSetting

该类主要用于制定三维模型渲染显示方案。分层设色是地图可视化的常用方式,它通过一定的颜色变化次序或色调深浅来表达和区别三维数据的不同属性。

HypsometricSetting的主要属性:

ColorTable : 获取或设置颜色表。

var hypsometricSetting = new Cesium.HypsometricSetting();

//设置颜色表

var colorTable = new Cesium.ColorTable();

colorTable.insert(900, new Cesium.Color(1, 0, 0));

colorTable.insert(600, new Cesium.Color(0, 0, 1));

hypsometricSetting.ColorTable= colorTable;

//获取颜色表

var value= hypsometricSetting.ColorTable;

ColorTableMaxKey:获取颜色表的最大key值。

var hypsometricSetting = new Cesium.HypsometricSetting();

var maxKey = hypsometricSetting.ColorTableMaxKey ;

ColorTableMinKey:获取颜色表的最小key值。

var hypsometricSetting = new Cesium.HypsometricSetting();

var minKey = hypsometricSetting.ColorTableMinKey ;

CoverageArea:获取或设置分层设色的区域

var hypsometricSetting = new Cesium.HypsometricSetting();

//设置分层设色区域

var pos = new Array();

pos.push(110.0);pos.push(40.03);pos.push(110.0);

pos.push(110.0);pos.push(40.001);pos.push(110.0);

pos.push(110.103);pos.push(40.001);pos.push(110.0);

pos.push(110.103);pos.push(40.03);pos.push(110.0);

hypsometricSetting.CoverageArea= pos;

//获取分层设色区域

var value= hypsometricSetting.CoverageArea;

DisplayMode : 获取或设置显示模式。

var hypsometricSetting = new Cesium.HypsometricSetting();

//设置显示模式

hypsometricSetting.DisplayMode= Cesium.HysometricSetting

Enum.DisplayMode.FACE;LineColor

//获取显示模式

var value= hypsometricSetting.DisplayMode;

emissionTexCoordUSpeed : 设置或获取自发光纹理在U方向的运动速度,整个纹理的U方向的纹理坐标是从0.0到1.0,速度单位是纹理坐标的偏移量每秒

var hypsometricSetting = new Cesium.HypsometricSetting();

//设置自发光纹理在U方向的运动速度

var emissionTexCoordSpeed = value;

hypsometricSetting.emissionTexCoordUSpeed = emissionTexCoordSpeed;

//获取自发光纹理在U方向的运动速度

var value= hypsometricSetting.emissionTexCoordUSpeed ;

emissionTextureUrl : 设置或获取自发光纹理

var hypsometricSetting = new Cesium.HypsometricSetting();

//设置自发光纹理

var emissionTextureUrl = String;

hypsometricSetting.emissionTextureUrl = emissionTextureUrl;

//获取自发光纹理

var value= hypsometricSetting.emissionTextureUrl ;

LineColor :获取或设置等值线的颜色。

var hypsometricSetting = new Cesium.HypsometricSetting();

//设置线的颜色

var color = new Cesium.Color(1, 0, 0);

hypsometricSetting.LineColor = color;

//获取线的颜色

var value= hypsometricSetting.LineColor ;

LineInterval :获取或设置等值线的间隔。

var hypsometricSetting = new Cesium.HypsometricSetting();

//设置线的间隔

hypsometricSetting.LineInterval= 10;

//获取线的间隔

var value= hypsometricSetting.LineInterval;

MaxVisibleValue : 获取或设置最大可见值。

var hypsometricSetting = new Cesium.HypsometricSetting();

//设置最大可见值

hypsometricSetting.MaxVisibleValue = 150;

//获取最大可见值

var value= hypsometricSetting.MaxVisibleValue;

MinVisibleValue :获取或设置最小可见值。

var hypsometricSetting = new Cesium.HypsometricSetting();

//设置最小可见值

hypsometricSetting.MinVisibleValue = 30;

//获取最小可见值

var value= hypsometricSetting.MinVisibleValue;

noValueColor :设置或获取无效颜色值,默认白色

Opacity : 获取或设置不透明度,取值范围为0-1,其中0表示完全透明,1表示完全不透明。

var hypsometricSetting = new Cesium.HypsometricSetting();

//设置透明度

hypsometricSetting.Opacity = 0.5;

//获取透明度

var value= hypsometricSetting.Opacity;

分层设色类支持s3mtileslayer和tin地形,当对s3mtileslayer设置时,分层设色类的最大、最小可见值为图层的最大、最小强度值,当对地形设置时,则为地形的高度值。

三、动态修改最大可见值

setInterval(function(){

hyp.MaxVisibleValue = currentHeight;

}, 100)

最后来看下整体效果

淹没分析.gif

cesium 水位模拟_SuperMap iClient3D for WebGL教程- 淹没分析相关推荐

  1. SuperMap iClient3D for WebGL教程- 淹没分析

    作者:桔子 本文同步更新于:https://www.jianshu.com/p/328fb79eec5e 淹没分析是指根据指定的最大.最小高程值及淹没速度,动态模拟某区域水位由最小高程涨到最大高程的淹 ...

  2. SuperMap iClient3D for WebGL教程 Camera

    SuperMap iClient3D for WebGL教程 Camera WuYK 在WebGL场景里,有一类很重要的对象,那就是我们的相机Camera对象.这里的Camera相当于人的眼睛,从坐标 ...

  3. SuperMap iClient3D for WebGL教程 粒子特效-基础火焰特效

    SuperMap iClient3D for WebGL教程 粒子特效-基础火焰特效 粒子特效简介 使用粒子特效 完整代码 作者: NIck Cheng 粒子特效简介 粒子特效通常使用与要表现某些动态 ...

  4. SuperMap iClient3D for WebGL教程 粒子特效-扩展喷泉特效

    SuperMap iClient3D for WebGL教程 粒子特效-扩展喷泉特效 扩展喷泉特效 喷泉特效实现 完整代码 作者: NIck Cheng 扩展喷泉特效 之前的博客已经讲过了如何去生成一 ...

  5. SuperMap iClient3D for WebGL教程(Entity)-ModelGraphics

    作者:为梦齐舞 本文同步更新于简书文章[https://www.jianshu.com/p/bdf397685e8b] ModelGraphics类是隶属于实体对象的一个类型,主要用于创建模型图形,加 ...

  6. SuperMap iClient3D for WebGL教程 Primitive

    SuperMap iClient3D for WebGL教程 Primitive WuYK 在Webgl中,实体对象主要由两大类组成,一类是Entity对象,还有一类就是Primitive对象.那么有 ...

  7. SuperMap iClient3D for WebGL教程(空间分析)- 地表开挖及修改

    地表开挖主要是为了显示出地下的场景,比如地下管网,而地形修改通常是为了让地表平整,便于跟模型匹配,接下来我们分别说说如何实现地表开挖和地形修改. 地表开挖 1.引用核心样式文件和库文件 <scr ...

  8. SuperMap iClient3D for WebGL教程(影像篇)-Mapbox

    作者:为梦齐舞 本文同步更新于简书文章https://www.jianshu.com/p/e19129908252 Mapbox 是一个可以创建各种自定义地图的网站,如 foursquare.Pint ...

  9. Cesium获取绘制范围内地形高程进行淹没分析

    Cesium淹没分析,看起来以为很难实现,其实实现起来还是比较简单的,构建一个面,动态设置其extrudedHeight属性,一定要使用CallbackProperty动态设置extrudedHeig ...

最新文章

  1. python爬虫实例-python 爬虫实例
  2. python 调用linux内核api_Linux系统调用及用户编程接口(API)学习
  3. IntelliJ IDEA的使用操作链接
  4. 获取mongodb数据变更_支持mysql、MongoDB数据变更订阅/监听分发
  5. PXC集群常见错误(一)
  6. TX2刷机flashOS finished后,卡在determining IP address解决方案
  7. 使用J2SE进行服务器架构技术选型的变迁
  8. 中软python编码规范考试试题_这些常见的python学习问题,你中枪了吗?
  9. 云原生和ServiceMesh主要组件--理解K8s/Istio/Envoy
  10. 从零实现SpringBoot简易读写分离,也不难嘛!
  11. 项目经理的商务指南系列之四:认识谈判(不做传声筒,不做顶门闩,进退之策,进退之法,有机事者必有机心)...
  12. 世界笔记本巨头厂商 Compal 被勒索1700万美元
  13. 微软收购PhoneFactor以提高多因素身份认证应用程序的安全性
  14. mysql数据库安全怎么设置密码_关于mysql的数据库的安全问题
  15. android二维码工程之仿QQ二维码实现
  16. 云表平台VS永中office,谁更胜一筹?
  17. 电磁场与电磁波第四版 课后习题
  18. 免费实用的录屏工具!支持全屏、特定窗口、选定区域录制,支持添加水印、嵌入摄像头!
  19. ue4 改变枢轴位置_在UE4引擎中做卡通描边的一点心得
  20. 服务器网卡灯不亮——解决方法

热门文章

  1. MySQL备份之--冷备(实用工具)
  2. Omap4460内存映射简介
  3. Java中的远程过程调用(RPC)
  4. Tiptop开发工具 Genero Studio 2.40.11软件汉化包
  5. 如何解决不确定性环境下的复杂工程系统动力学基本问题?
  6. 夏季即将到来,关于夏季的中医养生知识
  7. Zynq-7000 PS重配置PL
  8. 阅读报告Implementing arbitrary coined two-dimensional quantum walks via bulk optical interferometry
  9. c语言程序学生籍贯信息记录,C语言程序设计学生籍贯信息记录簿
  10. 常识1:机器语言与高级语言