WebGIS管线在线编辑器(电力、水力、燃气、热力、热能管线)

        随着GIS等信息技术的发展,地下管线管理也从二维平面向三维立体管理迈进。传统管线信息管理系统将管线及其附属设施抽象成二维平面内的点、要素,并使用各类点符号、不同颜色线段进行表达。虽能一定程度上满足城市智慧运行的需要,但不能很直观的表现出管线的形状、大小以及管线之间的叠加、包围关系,而使用三维计算机技术对管点管线设备进行空间建模和渲染,不仅直观逼真,并能正确展示竖直管段等二维图形中不便于表示的部件,能够更清楚的识别管线与管点设备之间的连接情况。

        水、电、燃气、热量、信息都在通过各种管线一刻不停地流向城市的每一个角落,那些深埋在地下的管线就是城市的“生命线”。在看不见的城市地下世界,管线运行维护,城市工程规划、设计、施工和管理,城市应急指挥和抢险,能够获取完整、准确、现势的地下管线信息。

gis管线编辑器

        

WebGIS管线在线编辑器

        基于WebGIS的城市电力、水力、燃气、热力、热能管线管理系统需要满足行业对城市地下管线的存储、显示、管理、分析等功能,具体需求如下:
        (1) 提供方便、灵活的地图操作。支撑Web 矢量图形及栅格图形的发布和Web 地图操作,包括地地图的缩放、漫游、鹰眼,地图局部显示,地理定位,线路盘算等功能。提供符合行业规范的管线设施符号系统。
        (2) 提供管线设备管理,包括配电设施、管线的台账管理以及有关设备的相关图片和施工附件管理功能、设备的分层控制、配电设备一次接线图等资料,工作人员可以快
速查询所需资料。
        (3 ) 提供地图数据和属性数据的一体化管理,通过属性资料可以在地图上查询其位置,同时可由地图数据查询出相应的属性资料,方便工作人员查询。
        (4) 提供城市地下管线的分析模块、配电线路的单线图绘制与编辑功能、空间定位分析、管网拓扑等功能。
        (5) 提供地下管道工井剖面图编辑和维护功能,实现管线与管道的关联操作,将电缆与管道的孔位关联功能,实现工井内电缆关系的可视化。 

编辑器GIS引擎加载

const viewer = new Cesium.Viewer("cesiumContainer", {infoBox: false,selectionIndicator: false,
});
const scene = viewer.scene;
const downHandler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas
);
downHandler.setInputAction(function (movement) {const pickedObject = scene.pick(movement.position);if (Cesium.defined(pickedObject) &&Cesium.defined(pickedObject.id) &&Cesium.defined(pickedObject.id.plane)) {selectedPlane = pickedObject.id.plane;selectedPlane.material = Cesium.Color.WHITE.withAlpha(0.05);selectedPlane.outlineColor = Cesium.Color.WHITE;scene.screenSpaceCameraController.enableInputs = false;}
}, Cesium.ScreenSpaceEventType.LEFT_DOWN);// Release plane on mouse up
const upHandler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas
);

点、线编辑

function addBillboard() {Sandcastle.declare(addBillboard);viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),billboard: {image: "../images/Cesium_Logo_overlay.png",},});
}function setBillboardProperties() {Sandcastle.declare(setBillboardProperties);viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),billboard: {image: "../images/Cesium_Logo_overlay.png", // default: undefinedshow: true, // defaultpixelOffset: new Cesium.Cartesian2(0, -50), // default: (0, 0)eyeOffset: new Cesium.Cartesian3(0.0, 0.0, 0.0), // defaulthorizontalOrigin: Cesium.HorizontalOrigin.CENTER, // defaultverticalOrigin: Cesium.VerticalOrigin.BOTTOM, // default: CENTERscale: 2.0, // default: 1.0color: Cesium.Color.LIME, // default: WHITErotation: Cesium.Math.PI_OVER_FOUR, // default: 0.0alignedAxis: Cesium.Cartesian3.ZERO, // defaultwidth: 100, // default: undefinedheight: 25, // default: undefined},});
}
const czml = [{id: "document",name: "CZML Geometries: Polygon",version: "1.0",},{id: "redPolygon",name: "Red polygon on surface",polygon: {positions: {cartographicDegrees: [-115.0,37.0,0,-115.0,32.0,0,-107.0,33.0,0,-102.0,31.0,0,-102.0,35.0,0,],},material: {solidColor: {color: {rgba: [255, 0, 0, 255],},},},},},{id: "checkerboardPolygon",name: "Checkerboard polygon on surface",polygon: {positions: {cartographicDegrees: [-94.0,37.0,0,-95.0,32.0,0,-87.0,33.0,0,],},material: {checkerboard: {evenColor: {rgba: [255, 0, 0, 255],},oddColor: {rgba: [0, 128, 128, 255],},},},},},{id: "greenPolygon",name: "Green extruded polygon",polygon: {positions: {cartographicDegrees: [-108.0,42.0,0,-100.0,42.0,0,-104.0,40.0,0,],},material: {solidColor: {color: {rgba: [0, 255, 0, 255],},},},extrudedHeight: 500000.0,closeTop: false,closeBottom: false,},},{id: "orangePolygon",name: "Orange polygon with per-position heights and outline",polygon: {positions: {cartographicDegrees: [-108.0,25.0,100000,-100.0,25.0,100000,-100.0,30.0,100000,-108.0,30.0,300000,],},material: {solidColor: {color: {rgba: [255, 100, 0, 100],},},},extrudedHeight: 0,perPositionHeight: true,outline: true,outlineColor: {rgba: [0, 0, 0, 255],},},},{id: "bluePolygonWithHoles",name: "Blue polygon with holes",polygon: {positions: {cartographicDegrees: [-82.0,40.8,0,-83.0,36.5,0,-76.0,35.6,0,-73.5,43.6,0,],},holes: {cartographicDegrees: [[-81.0,40.0,0,-81.0,38.2,0,-79.0,38.2,0,-78.0,40.8,0,],[-77.5, 36.7, 0, -78.5, 37.0, 0, -76.5, 39.6, 0],],},material: {solidColor: {color: {rgba: [0, 0, 255, 255],},},},},},
];const dataSourcePromise = Cesium.CzmlDataSource.load(czml);
viewer.dataSources.add(dataSourcePromise);

感兴趣的可以留言或发邮件1985692469@qq.com,欢迎一起交流!

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

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

相关文章

分布式锁简单实现

分布式锁 Redis分布式锁最简单的实现 想要实现分布式锁,必须要求 Redis 有「互斥」的能力,我们可以使用 SETNX 命令,这个命令表示SET if Not Exists,即如果 key 不存在,才会设置它的值,否则什么也不做。 …

Premiere模板|200个视频标题文字动画pr字幕模板包

Premiere模板,13个类别200个Pr视频标题字幕文字动画模板mogrt包。 几乎适用于任何场景。粗体标题,标注,未来主义和线条标题,下三分之一,霓虹灯,带数字的标题,倒计时,表格&#xff0c…

【Mock|JS】Mock的get传参+获取参数信息

mockjs的get传参 前端请求 const { data } await axios("/video/childcomments", {params: {sort: 1,start: 2,count: 5,childCount: 6,commenIndex: 0,},});后端获取参数 使用正则匹配url /*** # 根据url获取query参数* param {Url} urlStr get请求获取参数 eg:…

回归预测 | Matlab基于SAO-BiLSTM雪融算法优化双向长短期记忆神经网络的数据多输入单输出回归预测

回归预测 | Matlab基于SAO-BiLSTM雪融算法优化双向长短期记忆神经网络的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SAO-BiLSTM雪融算法优化双向长短期记忆神经网络的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SAO-B…

ENISA 2023年威胁态势报告:主要发现和建议

欧盟网络安全局(ENISA)最近发布了其年度2023年威胁态势报告。该报告确定了预计在未来几年塑造网络安全格局的主要威胁、主要趋势、威胁参与者和攻击技术。在本文中,我们将总结报告的主要发现,并提供可操作的建议来缓解这些威胁。 介绍 ENISA 威胁态势报告…

CVX安装新版本Mosek求解器

在使用连续凸近似(SCA)求解优化问题时遇到了报错 Problem status : ILL_POSED Solution status : PRIMAL_ILLPOSED_CER并且最后给出的结果为NaN。 在CVX论坛中找到一条回答 具体链接如下: The status is failed 因为我使用的是CVX自带的…

垃圾回收-垃圾回收中的相关概念

目录 System.gc()的理解 内存泄漏(Memory Leak) 内存溢出(OOM) Stop The World 垃圾回收的串行、并行与并发 安全点与安全区域 强、软、弱、虚引用 强、软、弱、虚引用 终结器引用 System.gc()的理解 在默认情况下&#…

嵌入式驱动学习第四周——设备树

前言 掌握设备树是 Linux 驱动开发人员必备的技能!因为在新版本的 Linux 中,ARM 相关的驱动全部采用了设备树。本篇博客重点介绍一下设备树与设备树语法。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本…

Vue3的与2的简单区别

Vue2选项式api Vue3组合式API setup方法的使用,最后需要return setup语法糖省略了内部的export default{} 和return 内容 以及组件的注册 reactive生成响应式对象,只能适用于复杂对象,简单类型不可 ref生成响应式数据:复杂类型和简…

详细剖析多线程(更新中...)

文章目录 前言一、认识线程1.1线程概念1.2为什么要有线程1.3线程和进程的区别(经典面试题) 二、创建线程2.1继承 Thread 类,重写run2.2实现 Runnable 接口,重写run2.3继承 Thread 类,重写run,匿名内部类2.4实现 Runnable 接口,重写run&#x…

Linux信号补充——信号捕捉处理

一、信号的捕捉处理 ​ 信号保存后会在合适的时间进行处理; 1.1信号处理时间 ​ 进程会在操作系统的调度下处理信号,操作系统只管发信号,即信号处理是由进程完成的; ​ 1.信号处理首先进程得检查是否有信号;2.进程…

赋能智能未来:AI大模型的学习之旅

随着人工智能的迅速发展,AI大模型已经成为技术领域的一个热点。这些模型以其强大的数据处理能力和预测精度,正在不断推动着科技的边界,并且在医疗、金融、交通等多个行业中显示出了巨大的潜力。然而,构建和训练一个高效的AI大模型…

浅谈如何自我实现一个消息队列服务器(2)——实现 broker server 服务器

文章目录 一、实现 broker server 服务器1.1 创建一个SpringBoot项目1.2 创建Java类 二、硬盘持久化存储 broker server 里的数据2.1 数据库存储2.1.1 浅谈SQLiteMyBatis 2.1.2 如何使用SQLite 2.2 使用DataBaseManager类封装数据库操作2.3 文件存储消息2.3.1 存储消息时&#…

宏景eHR report_org_collect_tree.jsp SQL注入漏洞复现

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR report_org_collect_tree.jsp 接口处存在SQL注入漏洞,未经过身份认证的远程攻击者可利用此漏洞执行任意SQL指令,从而…

Docker部署Alist全平台网盘神器结合内网穿透实现无公网IP访问云盘资源

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-oZuxWTWUiXLx3aQO {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

SpringBoot实战(二十七)集成WebFlux

目录 一、WebFlux1.1 定义1.2 WebFlux 与 Spring MVC 区别 二、代码实现2.1 Maven 配置2.2 暴露 RESTful API 接口的方式方式一:基于注解的控制器方式二:函数式路由器(Functional Endpoints) 2.3 测试Service2.4 测试ServiceImpl2…

Streamlit实战手册:从数据应用到机器学习模型部署

Streamlit实战手册:从数据应用到机器学习模型部署 简介Streamlit核心功能介绍Streamlit的安装创建第一个Streamlit应用界面布局与导航数据处理与展示 Streamlit的进阶应用交互式组件按钮复选框单选按钮滑块 图表与可视化使用Matplotlib绘图使用Plotly创建交互式图表…

【题目】【网络系统管理】2019年全国职业技能大赛高职组计算机网络应用赛项H卷

极安云科专注职业教育技能竞赛培训4年,包含信息安全管理与评估、网络系统管理、网络搭建等多个赛项及各大CTF模块培训学习服务。本团队基于赛项知识点,提供完整全面的系统性理论教学与技能培训,成立至今持续优化教学资源与讲师结构&#xff0…

Springboot 整合 Knife4j (API文档生成工具)

目录 一、Knife4j 介绍 二、Springboot 整合 Knife4j 1、pom.xml中引入依赖包 2、在application.yml 中添加 Knife4j 相关配置 3、打开 Knife4j UI界面 三、关于Knife4j框架中常用的注解 1、Api 2、ApiOperation ​3、ApiOperationSupport(order X) ​4、ApiImplici…

Leetcode 994. 腐烂的橘子

心路历程: 一开始以为和刚做过的岛屿问题很像,只不过是把岛屿问题换成BFS去做,然后再加上一些计数的规则。结果做完后发现只能通过一半左右的测试用例,发现有一个逻辑错误在于,当腐烂的橘子位于两端时,可以…