使用iServer rest api如何实现构建巷道效果

news2025/3/9 10:52:32

作者:刘大

背景

在实际生产环境中,特别是在采矿,公路建设项目上,我们往往会接触下图所示的巷道,那么在Web端如何快速通过线数据构建巷道模型呢?下面我们来详细说下

image.png

使用方式

第一步: 在iServer发布空间分析服务

发布空间分析服务

第二步:调用 iServer空间分析服务loft放样接口

打开第一步发布的空间分析服务地址,依次点击spatialanalystgeometrygeometryLoft进入loft放样接口,如下图所示:

image.png
接下来,我们来看看该接口的post请求体需要传入哪些参数
image.png

由上图看出,我们需要传入待放样三维线对象横截面对象
而构建巷道的关键之处在于横截面loftRgeion的传入,需要是导洞的形式,导洞具体的写法,我们举一个例子如下:

image.png
主要注意两点:
1.parts是个数组,数组的每一项依次取points里面的点串;
2.导洞的内外圈的节点顺序应相反
我们使用postman来构建如下:(请求?后面添加returnContent=true,是设置直接返回模型数据,无需在进行get请求获取资源)
image.png

这里,我们就已经构建好了巷道模型,那如何在web端进行呈现捏,这里我们需要使用SuperMap iClient3D for Cesium,11.0.1最新版下载地址(http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id=2246)
最后附上完整代码:

		<script type="text/javascript">
			function onload(Cesium) {
				var viewer = new Cesium.Viewer('cesiumContainer', {
					// timeline: true,
					infoBox: false,
				});
				var scene = viewer.scene;
				if (!scene.pickPositionSupported) {
					alert('不支持深度纹理,可视域分析功能无法使用(无法添加观测)!');
				}
				//添加体
				var s3mInstanceColc;
				s3mInstanceColc = new Cesium.S3MInstanceCollection(scene._context);
				scene.primitives.add(s3mInstanceColc);
				var queryData = JSON.stringify({
					"loftRegion": {
						"type": "REGION",
						"parts": [
							8,
							8
						],
						"points": [{
								"x": -2.5,
								"y": 7.5
							},
							{
								"x": -6.5,
								"y": 5.5
							},
							{
								"x": -10.5,
								"y": 0
							},
							{
								"x": -10.5,
								"y": -10.5
							},
							{
								"x": 10.5,
								"y": -10.5
							},
							{
								"x": 10.5,
								"y": 0
							},
							{
								"x": 6.5,
								"y": 5.5
							},
							{
								"x": 2.5,
								"y": 7.5
							},
							{
								"x": -2,
								"y": 7
							},
							{
								"x": 2,
								"y": 7
							},
							{
								"x": 6,
								"y": 5
							},
							{
								"x": 10,
								"y": 0
							},
							{
								"x": 10,
								"y": -10
							},
							{
								"x": -10,
								"y": -10
							},
							{
								"x": -10,
								"y": 0
							},
							{
								"x": -6,
								"y": 5
							}
						]
					},
					"loftLine": {
						"type": "LINE3D",
						"parts": [8],
						"points": [{
								"x": 106.647908425709,
								"y": 39.53615857754,
								"z": 1146.541
							},
							{
								"x": 106.647717466074,
								"y": 39.5362496987228,
								"z": 1146.541
							},
							{
								"x": 106.64730418415,
								"y": 39.5371864323,
								"z": 1136.36
							},
							{
								"x": 106.647305608425,
								"y": 39.5372768737642,
								"z": 1136.36
							}
						]
					},
					"chamfer": "50",
					"lonlat": "TRUE"

				});
				$.ajax({
					url: "http://172.16.14.25:8090/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst/geometry/3d/loft.json?returnContent=true",
					async: true,
					data: queryData,
					method: "POST"
				}).done(function(data) {

					if (data.geometry === null) {
						return;
					}

					//添加巷道模型
					var u8 = new Uint8Array(data.geometry.model);
					var ab = u8.buffer;
					s3mInstanceColc.add("resultSkyline", {
						position: Cesium.Cartesian3.fromDegrees(data.geometry.position.x, data.geometry.position.y, data.geometry.position
							.z),
						hpr: new Cesium.HeadingPitchRoll(0, 0, 0),
						color: new Cesium.Color(0, 160 / 255, 233 / 255, 0.5)
					}, ab, false);

					scene.camera.setView({
						destination: Cesium.Cartesian3.fromDegrees(data.geometry.position.x, data.geometry.position.y, data.geometry.position
							.z),
						orientation: {
							heading: 1.260586371345841,
							pitch: -0.0176030403049122,
							roll: 0
						}
					});
				});
			}

			if (typeof Cesium !== 'undefined') {
				window.startupCalled = true;
				onload(Cesium);
			}
		</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

反垃圾邮件系统|基于Springboot+vue 实现反垃圾邮件系统

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

servlet(二)文件的上传

servlet实现文件的上传 文件上传是一个web应用常见的功能 比如&#xff1a;QQ头像&#xff0c;就使用了上传。 邮箱中也有附件的上传和下载功能。 OA系统中审批有附件材料的上传。 1.1前端需要有个form表单标签 methodpost请求 (因为post请求是没有长度限制&#xff0c;get…

Computer Graphics From Scratch - Chapter 7

系列文章目录 简介&#xff1a;Computer Graphics From Scratch-《从零开始的计算机图形学》简介 第一章: Computer Graphics From Scratch - Chapter 1 介绍性概念 第二章&#xff1a;Computer Graphics From Scratch - Chapter 2 基本光线追踪 第三章&#xff1a;Computer Gr…

新生儿喝奶后不要马上放回床上睡觉,为宝宝健康着想,先做1件事

看到一个问题&#xff0c;题主问&#xff0c;新生儿喝完奶能马上放回床上睡觉吗&#xff1f;可以吗&#xff1f;也许每个人都认为照顾新生儿是一件非常简单的事情&#xff0c;因为新生儿几乎整天都在睡觉。当他们饿的时候&#xff0c;他们会让他们的宝宝吃牛奶。他们吃饱了就要…

博客搭建教程(一):静态博客 GitHub + Gridea

同步blog文章 注册一个 Github 账号并创建仓库 注册Github账号 如果你没有 Github 的账号&#xff0c;那么可以进入 官网 开始注册&#xff08;注意一下用户名的填写&#xff0c;如果不使用自定义域名&#xff0c;用户名将会是你的 Github 分配给你的域名&#xff0c;例如你的…

D. George and Interesting Graph(最大匹配)

Problem - 387D - Codeforces 乔治喜欢图表。最重要的是&#xff0c;他喜欢有趣的图。我们将假设一个有向图是有趣的&#xff0c;如果它符合以下标准。 该图不包含任何多弧。 有一个顶点v&#xff08;我们称她为中心&#xff09;&#xff0c;这样对于图形u的任何顶点&#xff…

信息网络传播视听节目服务单位的设立与经营

一、行业准入 &#xff08;一&#xff09;网络视听业务准入范围 利用公共互联网&#xff08;含移动互联网&#xff09;向计算机、手机用户提供视听节目服务&#xff08;不含交互式网络电视&#xff08;IPTV&#xff09;、互联网电视、专网手机电视业务&#xff09;业务的&…

几个小设置让 mac 更好用

今天在 youtube 上看到一个视频[1]&#xff0c;讲新 mac 到手后一定要做的几个设置&#xff0c;有几个之前我不知道的小设置&#xff0c;非常好用&#xff0c;看完马上就用上了。一些常用的就不列了&#xff0c;比如说设置点按、三指拖拽&#xff0c;不知道的可以去搜索了解&am…

【Python数据可视化】使用geoplotlib绘制地理空间数据

geoplotlib前言一、安装geoplotlib包二、读取csv数据使用1.点密度可视化2.直方图3. Voronoi图总结前言 ❤️❤️希望大家能多多点赞。❤️❤️ 需要数据集的可以评论。 Geoplotlib 是地理空间数据可视化的开源Python库&#xff0c;包含了大量的地理空间可视化操作&#xff0c…

131. 分割回文串

131. 分割回文串 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1&#xff1a; 输入&#xff1a;s “aab” 输出&#xff1a;[[“a”,“a”,“b”]…

青少年等级考试【Python通关干货】(二级)

青少年等级考试【Python通关干货】(二级)1.列表类型的概念 2.序列的通用操作 3.可变序列及列表的通用操作 4.列表的特有操作 5.元组类型的概念与操作

激活学习:一种挑战反向传播的生物启发算法

激活学习(activation learning)是一种生物启发的简单本地学习规则构建的前向无监督通用模型&#xff0c;它的核心是构建多层神经网络使得网络输出激活强度能反映输入的相对概率大小。并且&#xff0c;它在一些任务上达到并超过反向传播的表现。激活学习的概念由山东大学教授周洪…

C++11标准模板(STL)- 算法(std::adjacent_difference)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 计算范围内各相邻元素之间…

MyBatis 配置文件解析

MyBatis 的核心配置文件是 mybatis-config.xml。注意配置文件中节点的顺序有要求&#xff0c;必须按照下面的顺序填写节点信息&#xff1a; (properties,settings,typeAliases,typeHandlers,objectFactory,objectWrapperFactory,reflectorFactory,plugins,environments,databa…

Odoo丨如何在Odoo中修改HTML编辑工具栏?

文章目录一、前言二、渲染原理三、修改方法一、前言 在odoo中&#xff0c;当我们在页面上使用Html类型或者html的小组件的时候&#xff0c;页面渲染成如下格式&#xff0c;供用户编辑⬇ 上方有一些工具栏如背景颜色&#xff0c;字体颜色&#xff0c;字体大小&#xff0c;插入表…

【Linux04-进程概念下】不愧是操作系统,优美的设计!

前言 上期的分享让我们知道进程大概的模样&#xff0c;本期一样重要&#xff0c;能学到操作系统设计的优美&#xff0c;体会到前辈们的智慧。 #环境变量 是什么 OS提供&#xff0c;往往有特殊功能的全局变量&#xff08;/etc/profile.d是设置环境变量的目录&#xff09; [b…

React 入门:实战案例 Github搜索_axios发送请求

文章目录快速搭建 API 服务器在 Search 组件中实现 Axios 发送请求在 App 组件中管理 List 组件的用户列表状态在 List 组件中更新渲染用户列表数据优化完善完整源码最终效果&#xff1a;快速搭建 API 服务器 根据下面步骤来操作&#xff0c;就可以快速搭建一个符合本案例使用…

明年跨境电商外贸的新增量在哪里?来自专家的2个判断

明年跨境电商外贸的新增量在哪里&#xff1f;来自专家的2个判断2022年&#xff0c;外贸大环境不容易&#xff0c;外贸人也不容易。自2021年9月以来&#xff0c;海运费飙涨&#xff0c;库容一降再降。大批的货品滞留库存&#xff0c;部分卖家只好硬着头皮扛下来了高额的仓储费&a…

最佳实践 | 帮助您的游戏在斋月期间大放异彩

作者 / Google Play 游戏业务发展经理 Nimrod Levy世界各地的开发者都发现&#xff0c;在斋月期间&#xff0c;许多庆祝这个神圣月份的国家/地区的用户都会比平时更活跃。这是一个吸引穆斯林玩家的宝贵机会。斋月是伊斯兰历的第 9 个月。世界各地的穆斯林都会在这个月进行斋戒、…

RV1126笔记二十二:pt->onnx->rknn模型转换

若该文为原创文章,转载请注明原文出处。 一、介绍 实现的目标是,把RK提供的yolov5s.pt转成onnx,在把onnx转成rknn,部署到RV1126上面。 这里不训练模型,所以只要搭建好环境后,就可以直接运行测试。 这里只是提供一种转换的方法,有其他的方式,可以自行测试。 由于不…