系统空间数据库设计

news2024/11/17 21:25:56

文章目录

    • 1 .空间数据库
    • 2. 空间数据库实体结构
    • 属性与空间数据库关联设计

1 .空间数据库

系统空间数据库存储电力管线设备和管网各业务图的地理空间信息, GIS 服务器GeoServer 通过读取空间数据库的实体表中的空间信息确定地物类的位置和几何形状,然后将其在地图上渲染出来。空间数据库实体清单如表
在这里插入图片描述

系统通过PostGIS 对空间数据库构建提供支持,空间数据库中地理空间数据统一使用Geometry 数据类型。由于PostGIS 很好地遵守OGC 的SFA 规范, Geometry 数据类型能够支持点、多点、线、多线、多边形、多多边形以及集合对象集等几何类型。G巳ometry 数据类型有两种表现形式: 一种是几何对象的文本表现形式CWKT ) ;另一种是SQL 实现形式,即Canonical Form o 井且PostGIS 可以通过ST_As Text (geometry )和ST一GeomFromEWKT(text )函数实现两种表现形式间的自由转换。

2. 空间数据库实体结构

空间数据库的实体结构如图 所示,空间数据库实体表统一继承于空间基础表(GEO_BASE )。工井俯视图实体表、单线图实体表、接线图实体表存储着可以渲染各种业务图的空间数据,它记录着业务图的各元素形状和位置信息。在这里插入图片描述

土建实体表和电气实体表分别记录的是土建层和电气层的空间数据;剖面实体表存储的是管沟段的横剖面的几何信息和关键属性;管孔实体表和支架实体表则记录着剖面图上的管孔的位置及几何形状。与属性数据库数据相对应的空间土建表、电气表、剖面图表、管孔和支架表继承于空间对象基础表( GEO_OBJECT_BASE) ,GE 。一OBJECT _BASE 的表结构如表
在这里插入图片描述

属性与空间数据库关联设计

系统通过GIS 技术实现空间数据的发布功能,通过结合电力管线属性数据与地理数据系统实现系统图文一体化操作,从地图上可以查询和管理设备与管线的地理位置等空间信息,也可以管理设备的相关属性信息。由于系统数据库采用了属性和空间的两层设计结构,因此实现系统的图文一体化操作的关键在于属性数据和空间数据间的关联设计。

属性数据库和空间数据库中各实体表的主键( AUTO_ID )是PostgreSQL 数据库中的序列对象( SEQUENCE )实现由数据库控制为每条记录生成唯一序号。而空间数据库和属性数据库中同一记录的一对一关联则是通过静态ID(STATIC_ ID )实现的, STATIC _ ID 的生成规则通过时间戳生成算法由系统业务逻辑层控制的。

由业务逻辑层控制静态ID 的生成不仅可以保证静态ID 的唯一性,而且可以保证属性数据库和空间数据库中相同记录的静态ID 也是相同的。属性和空间数据库中相同记录的静态ID 的一致性为属性和空间数据的关联操作提供的基础。获取SQL 类型的空间数据Geometry将Geometry转变为WKT形式ST_ AsText(geometry)拆分WKT形式的字符串获得更新后的经纬度判断设备类型OBJECT_TYPE通过STAT IC _ID更新属性数据库中相应记录的经纬度属性数据和空间数据的关联操作包括增加、删除和修改。添加数据记录的关联操作是由系统的业务逻辑层控制的,业务逻辑层会同时控制生成一一对应的属性和空间数据记录,而数据的删除和修改的关联则是通过数据库触发器控制的。在系统执行数据的删除和特定字段的更新操作时,触发器会通过静态ID 字段删除和更新相应数据库中的记录。

系统数据库设计的触发函数包括属性数据删除的触发函数、空间数据删除的触发函数、NAME字段更新触发函数以及经纬度更新的触发函数。其中,经纬度更新的触发函数的流程图如图所示,它的主要功能是在空间数据库中点设备的GEOMETRY 数据发生修改时,更新属性数据库中相应记录的经纬度。在这里插入图片描述

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

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

相关文章

全志V3S嵌入式驱动开发(spi-nor image制作和烧入)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 其实,我们之前就讨论过怎么把image烧入到v3s的spi-nor当中去。当时使用的方法是借助于sunxi-fel工具,烧入的image也比计较小…

重磅:微前端与模块联邦项目落地

微前端概念及诞生背景 微前端的出现背景可以追溯到大型前端应用的开发和维护过程中所面临的挑战和问题。 大型应用的复杂性:随着前端应用规模的扩大,应用的复杂性也增加。大型应用通常由多个团队协同开发,每个团队负责一部分功能模块&#x…

干货 | 智能网联车个人数据流通安全要求

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。 我们对相关已有的标准规范进行调研,在工业和信息化部办公厅印发的《车联网网络安全和数据安全标准体系建设指南》中规定了六个部分的安全要求,我们做的主要是个人信息保护…

MaskFormer:将语义分割和实例分割作为同一任务进行训练

目标检测和实例分割是计算机视觉的基本任务,在从自动驾驶到医学成像的无数应用中发挥着关键作用。目标检测的传统方法中通常利用边界框技术进行对象定位,然后利用逐像素分类为这些本地化实例分配类。但是当处理同一类的重叠对象时,或者在每个…

c++11 标准模板(STL)(std::basic_streambuf)(五)

定义于头文件 <streambuf> template< class CharT, class Traits std::char_traits<CharT> > class basic_streambuf; 类 basic_streambuf 控制字符序列的输入与输出。它包含下列内容并提供到它们的访问&#xff1a; 1) 受控制字符序列&#xff…

【探索 Kubernetes|作业管理篇 系列 13】StatefulSet 拓扑状态

前言 大家好&#xff0c;我是秋意零。 在上一篇中&#xff0c;我们讲解了 Deployment 这种无状态的控制器&#xff1b;而如果要部署有状态的应用&#xff0c;那么 Deployment 显然是达不到我们的需求的。 今天讲解的是 StatefulSet 有状态控制器。 最近搞了一个扣扣群&…

电气照明节能设计在智能控制系统中的应用

【摘要】&#xff1a;随着社会的不断发展&#xff0c;经济水平也随之稳步提升&#xff0c;人们的消防意识也正在逐步加强&#xff0c;这就促进了消防应急照明系统的发展。当今社会,智能照明系统已经普及到家家户户&#xff0c;并在建筑工程中被广泛应用&#xff0c;同时其自身具…

【计算机网络自顶向下】计算机网络期末自测题(一)

前言 “(学不懂一点) &#xff08;阴暗的爬行&#xff09;&#xff08;尖叫&#xff09;&#xff08;扭曲&#xff09;&#xff08;阴暗的爬行&#xff09;&#xff08;尖叫&#xff09;&#xff08;扭曲&#xff09;&#xff08;阴暗的爬行&#xff09;&#xff08;尖叫&#…

非公平锁实现原理+源码解读

目录 非公平锁实现原理 加锁解锁流程 加锁源码 解锁源码 非公平锁实现原理 加锁解锁流程 先从构造器开始看&#xff0c;默认为非公平锁实现 public ReentrantLock() {sync new NonfairSync(); } NonfairSync 继承自 AQS 没有竞争时 第一个竞争出现时 Thread-1 执行了…

解决不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接的问题

问题概述&#xff1a; 用windows server 2012 r2 vl x64搭了个文件服务器&#xff0c;在使用时有个问题&#xff0c;老是用户登录有问题&#xff0c;提示“不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接”。出现的原因不详&#xff0c;网上也没查到合理的…

操作系统3:CPU任务调度和进程调度

目录 1、处理机调度的层次 &#xff08;1&#xff09;高级调度(High Level Scheduling) &#xff08;2&#xff09;低级调度(Low Level Scheduling) &#xff08;3&#xff09;中级调度(Intermediate Scheduling) 2、处理机调度算法的目标 批处理系统的目标 3、作业与作…

MongoDB 基于角色的访问控制

一、概述 MongoDB采用基于角色的访问控制&#xff08;RBAC&#xff09;来管理对 MongoDB系统。向用户授予一个或多个角色那 确定用户对数据库资源和操作的访问权限。外面 在角色分配中&#xff0c;用户无权访问系统。 1、启用访问控制 MongoDB默认情况下不启用访问控制。您可…

Facebook Insights分析工具解读,掌握关键数据指标

什么是Facebook Insights&#xff1f; Facebook Insights是Facebook平台上的一项内置分析工具&#xff0c;旨在帮助企业和品牌了解其在Facebook上的表现和受众互动情况。该工具提供了丰富的数据和指标&#xff0c;可以帮助用户洞察粉丝群体、了解发布内容的表现&#xff0c;并…

闭门造轮(LVGL_2)

例程1_// 组件(widgets)&#xff1a; 标签(label)的用法 static void label_event_cb(lv_event_t * e) {lv_obj_t * obj lv_event_get_target(e); // 获取触发事件的部件(对象)lv_event_code_t code lv_event_get_code(e); // 获取当前部件(对象)触发的事件代码sw…

Golang每日一练(leetDay0105) 最小高度树、戳气球

目录 310. 最小高度树 Minimum Height Trees &#x1f31f;&#x1f31f; 312. 戳气球 Burst Balloons &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一…

用自定义域名访问Tailscale节点

需求 tailscale 是好东西&#xff0c;在任何地方都可以和在局域网访问一样&#xff0c;但是也有着 IP 访问的不便&#xff0c;一方面 IP 是 tailscale 分配的&#xff08;非子网路由模式&#xff09;&#xff0c;另一方面还要记住各种端口 tailscale 也考虑到了这些问题&…

SpringBoot 使用 TestRestTemplate 进行 RESTful API 集成测试

SpringBoot 使用 TestRestTemplate 进行 RESTful API 集成测试 RESTful API 集成测试是测试应用程序与其外部依赖项之间的集成。SpringBoot提供了TestRestTemplate来测试RESTful API&#xff0c;本文将介绍如何使用TestRestTemplate进行RESTful API集成测试。 1. 什么是 TestR…

java File类 和 IO流

File类 文件和文件夹(文件路径)的抽象表示&#xff0c;是专门来出来磁盘上面的文件或文件夹的 构造方法 方法 返回boolean creatNewFile() 生成一个文件&#xff0c;当且仅当具有该名称的文件尚不存在时 public class Demo02 {public static void main(String[] args) th…

知了汇智网安项目实训助力高校实战型人才培养

当前&#xff0c;随着信息技术的高速发展和网络的普及应用&#xff0c;网络安全面临着日益复杂和严峻的挑战。恶意黑客、网络病毒、数据泄露等安全威胁不断涌现&#xff0c;给个人、企业和国家的信息资产和社会稳定带来了巨大风险。新形势之下&#xff0c;培养网络安全实战型人…

深眸科技受邀参加昆山元宇宙装备展与产业论坛,为工业视觉注智赋能

为落实《“十四五”数字经济发展规划》&#xff0c;进一步夯实元宇宙在终端装备领域的落地与拓展&#xff0c;江苏昆山将于6月27至29日&#xff0c;举办“2023元宇宙装备展”。本届展会由昆山市人民政府主办&#xff0c;昆山市工业和信息化局、赛迪工业和信息化研究院集团&…