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

news2024/9/18 14:19:18

        随着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: undefined
      show: true, // default
      pixelOffset: new Cesium.Cartesian2(0, -50), // default: (0, 0)
      eyeOffset: new Cesium.Cartesian3(0.0, 0.0, 0.0), // default
      horizontalOrigin: Cesium.HorizontalOrigin.CENTER, // default
      verticalOrigin: Cesium.VerticalOrigin.BOTTOM, // default: CENTER
      scale: 2.0, // default: 1.0
      color: Cesium.Color.LIME, // default: WHITE
      rotation: Cesium.Math.PI_OVER_FOUR, // default: 0.0
      alignedAxis: Cesium.Cartesian3.ZERO, // default
      width: 100, // default: undefined
      height: 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.coloradmin.cn/o/1535785.html

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

相关文章

FMEA助力新能源汽车行业腾飞:安全、效率双提升

随着新能源汽车市场的迅猛发展,各大车企纷纷加大研发力度,力求在激烈的市场竞争中脱颖而出。其中,FMEA(故障模式与影响分析)作为一种先进的质量管理工具,正被越来越多地应用于新能源汽车的研发和生产过程中…

【Django框架学习笔记】超详细的Python后端开发Django框架学习笔记

十二,Django框架 可以以下链接获取Django框架学习笔记,md文档和pdf文档 Django框架超详细的学习笔记,点击我获取 12.1 命令行操作 # 创建django项目 django-admin startproject aini# 启动项目 cd /mysite python3 manage.py runserver## 创建应用 …

深度学习-2.8模型拟合概念和欠拟合模型、过拟合调整策略

模型拟合概念和欠拟合模型、过拟合调整策略 文章目录 模型拟合概念和欠拟合模型、过拟合调整策略一、模型拟合度概念介绍1.测试集的“不可知悖论”2.模型拟合度概念与实验 二、过拟合、欠拟合问题解决方案1. 欠拟合解决方案2.过拟合解决方案 三、神经网络结果选择策略1. 参数和…

mybatis plus 修改sql

原始需求 在SQL语句前面加上一个request-id 问题描述 今天收到业务同学反馈,说接入某个SDK后,request-id本地debug发现sql已经修改了,但打印的sql中却没有request-id信息 看了下代码,发现用户的代码其实就是下方 方案一代码&am…

【机器学习】机器学习实验方法与原则(评价指标全面解析)

评价指标 在 不同任务 下衡量模型的性能,有 不同的评价指标 ,例如: • 回归任务 • 平均绝对误差( MAE )、均方误差( MSE )、均方根误差( RMSE )等 • 分类任务 •…

QT学习之设置QLineEdit背景透明且无边框

设置styleSheet:background:transparent;border-width:0;border-style:outset;

挑战迎刃而解!化工行业CRM案例揭示企业扩张成功之道!

化工行业一直面临着激烈的行业竞争,新时代化工企业如何面对扩张挑战,是许多企业管理者深思的问题,Zoho CRM客户管理系统为化工行业的用户提供了优秀的解决方案。一起来看看Zoho CRM的实力如何吧~ 一、客户背景 Zoho CRM的这家化工行业客户&a…

绝地求生:哪把枪的机瞄让你觉得最舒服或者最“抽象”呢?

大,好,我,闲游盒! 这题我会,我先来! 今天本来在训练场玩呢,突然想到了Famas这把枪的机瞄我真的是驾驭不来.... 我灵机一动,想问问大家平时如果落地没捡到镜又碰到敌人的情况下&…

【创建进程】fork函数与写时拷贝

文章目录 fork函数fork如何返回两个值&#xff08;fork的工作原理&#xff09;如何解释父子进程相互输出printf 写时拷贝 fork函数 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;自进程中返回0&#xff0c;父进程返回子进程id&#xff0c;出错返回-1 fork函…

网络编程:学生管理系统

一、实现功能 1.添加学生信息 2.删除学生信息 3.修改学生信息 4.查找学生信息 二、添加 int do_add(sqlite3 *ppDb) {// 准备sql语句int add_num 0;char add_name[20] "";double add_score 0;// 提示并输入数据printf("请输入学号:");scanf("%d&q…

芯片公司SAP管理架构:科技与管理的完美融合

在当今日新月异的科技时代&#xff0c;芯片公司作为信息技术领域的核心力量&#xff0c;其运营管理的复杂性日益凸显。SAP管理架构作为一种高效的企业资源规划系统&#xff0c;为芯片公司提供了强大的管理支持。本文将为您科普芯片公司SAP管理架构的相关知识。 SAP管理架构是一…

使用倒模耳机壳UV树脂胶液制作舞台监听耳返入耳式耳机壳有哪些优点?

使用倒模耳机壳UV树脂胶液制作舞台监听耳返入耳式耳机壳有很多优点&#xff0c;具体如下&#xff1a; 高音质表现&#xff1a;通过倒模工艺制作的耳机壳能够更好地贴合耳朵&#xff0c;减少声音散射和反射&#xff0c;提高声音的清晰度和质感。这对于舞台监听来说非常重要&…

USB调试工具大全-USB中文网

USB中文网在此之前开发了很多的应用层USB设备调试工具&#xff0c;再加上收集的一些其它相关工具&#xff0c;并将这些调试工具分享给各位USB开发者爱好者&#xff0c;帮助大家更快的学习和了解USB相关的知识。 不过酒香也怕巷子深&#xff0c;今天我们就将这些调试工具的导航…

带你学会深度学习之卷积神经网络[CNN] - 5

前言 本文不讲述如泛化&#xff0c;前向后向传播&#xff0c;过拟合等基础概念。 本文图片来源于网络&#xff0c;图片所有者可以随时联系笔者删除。 本文提供代码不代表该神经网络的全部实现&#xff0c;只是为了方便展示此模型的关键结构。 CNN&#xff0c;常用于计算机视…

Leetcode 200. 岛屿数量

心路历程&#xff1a; 在没有看图论这一章之前看这道题没什么直接的思路&#xff0c;在看完图论之后&#xff0c;学着使用DFS和BFS去套用解决。第一次自己做的时候还是遇到了很多小问题。整体思路很流畅&#xff0c;但是需要处理的细节第一次没怎么处理好&#xff0c;花了很多…

如何使用Android平板公网访问本地Linux code-server

文章目录 1.ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址6.结语 1.ubuntu本地安装code-server 准备一台虚拟机,Ubuntu或者centos都可以&#xff0c;这里以VMwhere ubuntu系统为例 下载code server服务,浏览器…

OR-806A固态继电器光耦

固态继电器 VL60V输出端击穿电压光耦 高隔离电压 60 至 600V 输出耐受电压 工业温度范围&#xff1a;-40 to 85℃ 高灵敏度和高速响应、 特征 输入和输出之间的高隔离电压 &#xff08;Viso&#xff1a;5000 V rms&#xff09;。 控制低电平模拟信号 高灵敏度和高速响应…

含“AI”量上涨,智能模组SC208系列助力智慧零售全场景高质发展

AI正重塑智慧零售产业&#xff0c;加速零售在采购、生产、供应链、销售、服务等方面改善运营效率和用户体验。零售行业经历了从线下到线上再到全渠道融合发展过程&#xff0c;“提质、降本、增效、高体验”是亘古不变的商业化与智能化方向。含“AI”量逐渐上涨的智慧零售正经历…

Linux:Gitlab:16.9.2 (rpm包) 部署及基础操作(1)

1.基础环境 我只准备了一台gitlab服务器&#xff0c;访问就用真机进行访问&#xff0c;接下来介绍一下详细配置 centos7 内网ip:192.168.6.7 外网ip:172.20.10.4 运行内存&#xff1a;4G CPU:4核 先去配置基础环境 关闭防火墙以及selinux 再去下载基础的运行…

差分逻辑电平 --- SSTL、HSTL、HSUL结构

SSTL/HSTL/HSUL 属于DDR存储器接口逻辑电平&#xff0c;虽然是单端&#xff0c;本质上是差分对&#xff0c;因实现机制是将信号与参考电平Vref组成差分对进行比较。 SSTL SSTL&#xff1a;Stub Series Termination Logic&#xff0c;短截线串联端接逻辑。 我们所熟知的DDR 采…