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

2024-02-25 09:32

本文主要是介绍SuperMap iClient3D for WebGL教程(空间分析)- 地表开挖及修改,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


地表开挖主要是为了显示出地下的场景,比如地下管网,而地形修改通常是为了让地表平整,便于跟模型匹配,接下来我们分别说说如何实现地表开挖和地形修改。

地表开挖
1.引用核心样式文件和库文件

<script type="text/javascript" src="./js/require.min.js" data-main="js/main"></script>
<link href="../Build/Cesium/Widgets/widgets.css" rel="stylesheet">

2.实例化三维球,'cesiumContainer’是三维球所在div的ID,加载地形数据

var viewer = new Cesium.Viewer('cesiumContainer',{terrainProvider : new Cesium.CesiumTerrainProvider({url : "https://www.supermapol.com/realspace/services/3D-stk_terrain/rest/realspace/datas/info/data/path",requestWaterMask : true,requestVertexNormals : true})});

3.用画面工具绘制开挖的区域,获取面的节点,传入globe的开挖区域

    var handlerPolygon = new Cesium.DrawHandler(viewer,Cesium.DrawMode.Polygon, 0);handlerPolygon.activeEvt.addEventListener(function(isActive){if(isActive == true){viewer.enableCursorStyle = false;viewer._element.style.cursor = '';$('body').removeClass('drawCur').addClass('drawCur');}else{viewer.enableCursorStyle = true;$('body').removeClass('drawCur');}});//激活时,鼠标样式变成铅笔工具handlerPolygon.movingEvt.addEventListener(function(windowPosition){if(windowPosition.x < 200 && windowPosition.y < 150){tooltip.setVisible(false);return ;}if(handlerPolygon.isDrawing){tooltip.showAt(windowPosition,'<p>点击确定开挖区域中间点</p><p>右键单击结束绘制,进行开挖</p>');}else{tooltip.showAt(windowPosition,'<p>点击绘制开挖区域第一个点</p>');}});//鼠标移动过程中的提示handlerPolygon.drawEvt.addEventListener(function(result){if(!result.object.positions){tooltip.showAt(result,'<p>请绘制正确的多边形</p>');handlerPolygon.polygon.show = false;handlerPolygon.polyline.show = false;handlerPolygon.deactivate();handlerPolygon.activate();return;};var array = [].concat(result.object.positions);tooltip.setVisible(false);var positions = [];for(var i = 0, len = array.length; i < len; i ++){var cartographic = Cesium.Cartographic.fromCartesian(array[i]);var longitude = Cesium.Math.toDegrees(cartographic.longitude);var latitude = Cesium.Math.toDegrees(cartographic.latitude);var h=cartographic.height;if(positions.indexOf(longitude)==-1&&positions.indexOf(latitude)==-1){positions.push(longitude);positions.push(latitude);positions.push(h);}}var dep = $('#depth').val();viewer.scene.globe.removeAllExcavationRegion();viewer.scene.globe.addExcavationRegion({name : 'ggg' ,position : positions,height : dep,transparent : false});//核心代码,把绘制的面节点,传入globe开挖区域handlerPolygon.polygon.show = false;handlerPolygon.polyline.show = false;handlerPolygon.deactivate();handlerPolygon.activate();});

地表开挖效果如下图:

在这里插入图片描述

地表开挖完整Demo可参考SuperMap iClient 3D for WebGL官方在线范例:

http://support.supermap.com.cn:8090/webgl/examples/editor.html#digTerrain

地形修改

1.引用核心样式文件和库文件

<script type="text/javascript" src="./js/require.min.js" data-main="js/main"></script>
<link href="../Build/Cesium/Widgets/widgets.css" rel="stylesheet">

2.实例化三维球,'cesiumContainer’是三维球所在div的ID,加载地形数据

var viewer = new Cesium.Viewer('cesiumContainer',{terrainProvider : new Cesium.CesiumTerrainProvider({url : "https://www.supermapol.com/realspace/services/3D-stk_terrain/rest/realspace/datas/info/data/path",requestWaterMask : true,requestVertexNormals : true})});

3.用画面工具绘制修改的区域,获取面的节点,传入globe的修改区域

 var handlerPolygon = new Cesium.DrawHandler(viewer,Cesium.DrawMode.Polygon,0);handlerPolygon.activeEvt.addEventListener(function(isActive){if(isActive == true){viewer.enableCursorStyle = false;viewer._element.style.cursor = '';$('body').removeClass('drawCur').addClass('drawCur');}else{viewer.enableCursorStyle = true;$('body').removeClass('drawCur');}});handlerPolygon.movingEvt.addEventListener(function(windowPosition){if(windowPosition.x < 200 && windowPosition.y < 150){tooltip.setVisible(false);return ;}if(handlerPolygon.isDrawing){tooltip.showAt(windowPosition,'<p>点击确定修改区域中间点</p><p>右键单击结束绘制,进行开挖</p>');}else{tooltip.showAt(windowPosition,'<p>点击绘制修改区域第一个点</p>');}});handlerPolygon.drawEvt.addEventListener(function(result){if(!result.object.positions){tooltip.showAt(result,'<p>请绘制正确的多边形</p>');handlerPolygon.polygon.show = false;handlerPolygon.polyline.show = false;handlerPolygon.deactivate();handlerPolygon.activate();return;};var array = [].concat(result.object.positions);tooltip.setVisible(false);var positions = [];for(var i = 0, len = array.length; i < len; i ++){var cartographic = Cesium.Cartographic.fromCartesian(array[i]);var longitude = Cesium.Math.toDegrees(cartographic.longitude);var latitude = Cesium.Math.toDegrees(cartographic.latitude);var h=cartographic.height;if(positions.indexOf(longitude)==-1&&positions.indexOf(latitude)==-1){positions.push(longitude);positions.push(latitude);positions.push(h);}}viewer.scene.globe.removeAllModifyRegion();          viewer.scene.globe.addModifyRegion({name:'ggg',position:positions,});//核心代码,用面的节点传入globe修改区域handlerPolygon.polygon.show = false;handlerPolygon.polyline.show = true;handlerPolygon.deactivate();handlerPolygon.activate();});

地形修改效果如下图:

[外链图片转存失败(img-nYFXTMcF-1569223740278)(D:\博客\SuperMap iClient3D for WebGL教程(空间分析)- 地表开挖及修改\dxxg.png)]

地形修改完整Demo可参考SuperMap iClient 3D for WebGL官方在线范例:

在这里插入图片描述
地形修改完整Demo可参考SuperMap iClient 3D for WebGL官方在线范例:

http://support.supermap.com.cn:8090/webgl/examples/editor.html#modifyTerrain

这篇关于SuperMap iClient3D for WebGL教程(空间分析)- 地表开挖及修改的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745071

相关文章

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

Steam邮件推送内容有哪些?配置教程详解!

Steam邮件推送功能是否安全?如何个性化邮件推送内容? Steam作为全球最大的数字游戏分发平台之一,不仅提供了海量的游戏资源,还通过邮件推送为用户提供最新的游戏信息、促销活动和个性化推荐。AokSend将详细介绍Steam邮件推送的主要内容。 Steam邮件推送:促销优惠 每当平台举办大型促销活动,如夏季促销、冬季促销、黑色星期五等,用户都会收到邮件通知。这些邮件详细列出了打折游戏、

高度内卷下,企业如何通过VOC(客户之声)做好竞争分析?

VOC,即客户之声,是一种通过收集和分析客户反馈、需求和期望,来洞察市场趋势和竞争对手动态的方法。在高度内卷的市场环境下,VOC不仅能够帮助企业了解客户的真实需求,还能为企业提供宝贵的竞争情报,助力企业在竞争中占据有利地位。 那么,企业该如何通过VOC(客户之声)做好竞争分析呢?深圳天行健企业管理咨询公司解析如下: 首先,要建立完善的VOC收集机制。这包括通过线上渠道(如社交媒体、官网留言

X-AnyLabeling使用教程

1.AI 模型自动分割标注使用教程 2.AI 模型自动目标检测标注使用教程

青龙面板2.9之Cdle傻妞机器人编译教程

看到有的朋友对傻妞机器人感兴趣,这里写一下傻妞机器人的编译教程。 第一步,这里以linux amd64为例,去官网下载安装go语言安装包: 第二步,输入下方指令 cd /usr/local && wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz -O go1.16.7.linux-amd64.tar.gz

青龙面板部署通用教程,含服务器、路由器、X86等部署方法

1. 拉取镜像/更新镜像 docker pull whyour/qinglong:latest 2. 删除镜像 docker rmi whyour/qinglong:latest 3. 启动容器 普通服务器 docker run -dit \-v $PWD/ql/config:/ql/config \-v $PWD/ql/log:/ql/log \-v $PWD/ql/db:

开启青龙 Ninja 扫码功能失效后修改成手动填写CK功能【修正Ninja拉库地址】

国内:进入容器docker exec -it qinglong bash #获取ninjagit clone -b main https://ghproxy.com/https://github.com/wjx0428/ninja.git /ql/ninja#安装cd /ql/ninja/backend && pnpm install cp .env.example .env

宝塔面板部署青龙面板教程【简单易上手】

首先,你得有一台部署了宝塔面板的服务器(自己用本地电脑也可以)。 宝塔面板部署自行百度一下,很简单,这里就不走流程了,官网版本就可以,无需开心版。 首先,打开宝塔面板的软件商店,找到下图这个软件(Docker管理器)安装,青龙面板还是安装在docker里,这里依赖宝塔面板安装和管理docker。 安装完成后,进入SSH终端管理,输入代码安装青龙面板。ssh可以直接宝塔里操作,也可以安装ssh连接

vscode-创建vue3项目-修改暗黑主题-常见错误-element插件标签-用法涉及问题

文章目录 1.vscode创建运行编译vue3项目2.添加项目资源3.添加element-plus元素4.修改为暗黑主题4.1.在main.js主文件中引入暗黑样式4.2.添加自定义样式文件4.3.html页面html标签添加样式 5.常见错误5.1.未使用变量5.2.关闭typescript检查5.3.调试器支持5.4.允许未到达代码和未定义代码 6.element常用标签6.1.下拉列表

PS系统教程25

介绍软件 BR(bridge) PS 配套软件,方便素材整理、管理素材 作用:起到桥梁作用 注意:PS和BR尽量保持版本一致 下载和安装可通过CSDN社区搜索,有免费安装指导。 安装之后,我们打开照片只需双击照片,就自动在Ps软件中打开。 前提:电脑上有PS软件 三种预览格式 全屏预览 评星级 直接按数字键就可以 方向键可以更换图片 esc退出 幻灯片放