在PostGIS中检查孤线(Find isolated lines in PostGIS)

场景

在PostGIS中有一张线要素表,需要检查该表中的孤线,并且进行自动纠正的计算。
其中孤线定义为两端端点都不在任何其他线的顶点上。
本文介绍在PostGIS中的线要素点,通过函数计算指定线要素表中的孤线,并计算最接近的纠偏位置。
In PostGIS, there is a table of line features, and it is necessary to check the orphan lines in this table and perform the calculation for automatic correction. Among them, an orphan line is defined as a line whose both end points are not on the vertices of any other lines. This article introduces the line feature points in PostGIS, and through functions, calculates the orphan lines in the specified line feature table and calculates the closest corrected position. The test data situation is as follows. There are six lines, ABCDEM, distributed as follows:

测试数据情况如下,存在ABCDEM六条线,分布如下:
在这里插入图片描述
其中A和M的分布关系如下:
在这里插入图片描述
ABC在相交处的关系如下:
在这里插入图片描述
CDE的关系如下:
在这里插入图片描述
我们可以直观看出B和D属于孤线。

第一步线进行孤线查找

判断待检查的要素表如果不是线类型的,则直接返回:

execute SELECT EXISTS (SELECT POSITION(''Line'' in ST_GEOMETRYTYPE(GEOM)) FROM ' ||targetTb|| ' LIMIT 1) into _ISPOINTTYPE;-- 如果类型不是点,则不检查if _ISPOINTTYPE = false then return -1;end if;

获取自动修复的容差,如果偏差大于该阈值,则不做自动修复的计算

if EXISTS (SELECT ID FROM PUBLIC.sp_ck_settings WHERE ITEMNAME = 'single_line_tolerance_4_autofix') then execute 'SELECT ITEMVAL FROM PUBLIC.sp_ck_settings WHERE ITEMNAME = ''single_line_tolerance_4_autofix'' AND USERNAME = '  ||  curUserName into _TOLERANCE;if _TOLERANCE is null then execute 'SELECT ITEMVAL FROM PUBLIC.sp_ck_settings WHERE ITEMNAME = ''single_line_tolerance_4_autofix'' AND USERNAME = ''system'' ' 

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

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

相关文章

GPT-4o(OpenAI最新推出的大模型)

简介:最近,GPT-4o横空出世。对GPT-4o这一人工智能技术进行评价,包括版本间的对比分析、GPT-4o的技术能力以及个人感受等。 方向一:对比分析 GPT-4o(OpenAI最新推出的大模型)与GPT-4之间的主要区别体现在响应…

给程序员的 30 个基本 Python 贴士与技巧之三完结篇

贴士#21. 一行代码计算任何数的阶乘 Python 2.x. result (lambda k: reduce(int.__mul__, range(1,k1),1))(3) print(result) #-> 6 Python 3.x. import functools result (lambda k: functools.reduce(int.__mul__, range(1,k1),1))(3) print(result) #-&…

268 基于matlab的模拟双滑块连杆机构运动

基于matlab的模拟双滑块连杆机构运动,并绘制运动动画,连杆轨迹可视化输出,并输出杆件质心轨迹、角速度、速度变化曲线。可定义杆长、滑块速度,滑块初始位置等参数。程序已调通,可直接运行。 268 双滑块连杆机构运动 连…

Github单个文件或者单个文件夹下载插件

有时候我们在github上备份了一些资料,比如pdf,ppt,md之类的,需要用到的时候只要某个文件即可,又不要把整个仓库的zip包下载下来,毕竟有时文件太多,下载慢,我们也不需要所有资料,那么就可以使用到…

i-am-a-bot:一款基于多个大语言模型的验证码系统安全评估工具

关于i-am-a-bot i-am-a-bot是一款基于多个大语言模型的验证码安全评估工具,该工具提供了一个使用了多模态大语言模型(LLM)的自动化解决方案,可以帮助广大研究人员测试各种类型验证码机制的安全性。 从底层上看,i-am-a…

Flutter 中的 SliverIgnorePointer 小部件:全面指南

Flutter 中的 SliverIgnorePointer 小部件:全面指南 Flutter 是一个由 Google 开发的跨平台 UI 框架,它提供了一系列的组件来帮助开发者构建高性能、美观的移动、Web 和桌面应用。在 Flutter 的滚动组件中,SliverIgnorePointer 是一个用来包…

renren-fast-vue启动报错

问题描述 拉取人人开源vue项目启动失败 报错信息 版本信息 序号名称版本号1node14.21.3 启动方案 1.拉取项目 git clone https://gitee.com/renrenio/renren-fast-vue.git 2.执行安装依赖命令 npm install 3.此时报错 chromedriver2.27.2 install: node install.js 4.手动…

vscode写html不会自动补全

解决VSCode中HTML自动补全功能不工作的问题,可以通过以下几种方法之一进行解决:12 通过VSCode的Settings进行配置: 打开VSCode的Settings(通过点击左下角的设置图标或使用快捷键CtrlShiftP或CmdShiftP打开命令面板&#xff0c…

安装与使用ChatTTS文本转语音模型

非常自然的文本转语音(Text To Speech)TTS,支持中英文混读,还可以穿插笑声,听起来很真实自然。 1、有哪些优点 对话式 TTS: ChatTTS针对对话式任务进行了优化,实现了自然流畅的语音合成,同时支持多说话人。细粒度控制…

老师如何使用小程序发成绩?

作为一名老师,你有没有想过,发成绩其实可以不用那么麻烦?以前,我们可能得一张张地写成绩,或者一封封邮件地发,有时候还得担心信息泄露。但现在,有了小程序,一切都变得简单多了。 老师…

连锁超市能源能效管理方案

1.概述 连锁超市的能源消耗是其运营成本的重要组成部分。有效的能源能效管理不仅可以降低运营成本,也有助于环保,实现可持续发展。本文将探讨几种关键的能源能效管理策略。 2.智能照明系统 采用智能照明系统是提高能效的关键一步。这些系统可以根据店…

Oracle 数据库 varchar2 从 4000 扩展到 32k

Oracle 数据库 varchar2 从 4000 扩展到 32k 0. 引言1. 扩展 varchar2 支持长度2. 测试 0. 引言 今天来个项目需求,有1个字段的存储内容大概1万字。 当然其中1个方法是将这个字段的内容切分成几个字段,还有1个方法就是将 varchar2 默认支持 4000 的能力…

慎用lombok.Builder

lombok是一个Java库,使用注解方式来简化 Java 代码,可以减少诸如getter、setter的方法。 它常用的注解有: Getter、Setter、ToString 不必多说,分别实现getter、setter、toString、hashCode等方法。Data 则是包含上面的那些&…

【linux】自定义快捷命令/脚本

linux自定义快捷命令 场景自定义命令自定义脚本 场景 深度学习经常要切换到自己环境,conda activate mmagic,但是又不想每次重复打这么多字,想使用快捷命令直接切换。 自定义命令 使用别名(alias)或自定义脚本来创建…

CEF编译打包(支持MP4播放,windows-x64版本)

CEF编译打包(支持MP4播放,x64版本) 标签(空格分隔): CEF C Windows vs2022 文章目录 CEF编译打包(支持MP4播放,x64版本)背景一、准备工作二、编译环境准备三、具体编译流程大概流程创建工作目录init.batdown_cef.batdown_chromium.batdown_d…

先进的无人机GPS/GNSS模块解决方案

由于多星座支持和增强的信号接收能力,先进的GNSS模块提供了更高的精度和可靠性。集成传感器融合补偿信号中断,实现无缝导航。内置实时运动学(RTK)支持提供厘米级的定位精度。这些模块还优先考虑低功耗和紧凑的尺寸,确保更长的飞行时间和对无人…

【SpringMVC】_SpringMVC实现用户登录

目录 1、需求分析 2、接口定义 2.1 校验接口 请求参数 响应数据 2.2 查询登录用户接口 请求参数 响应数据 4、服务器代码 5、前端代码 5.1 登录页面login.html 5.2 首页页面index.html 6、运行测试 1、需求分析 用户输入账号与密码,后端校验密码是否正确&a…

【论文速读】Self-Rag框架,《Self-Rag: Self-reflective Retrieval augmented Generation》

关于前面的文章阅读《When to Retrieve: Teaching LLMs to Utilize Information Retrieval Effectively》,有网友问与Self-Rag有什么区别。 所以,大概看了一下Self-Rag这篇论文。 两篇文章的方法确实非常像,Self-Rag相对更加复杂一些。 When …

华为校招机试 - 矿车运输成本(20240522)

题目描述 露天矿采矿作业的特点是规模大,矿石和废料的移动量达到百万吨,运输成本开销较大,需要寻求一种最优的运输路径节省成本。 已知矿场可以划分成 N * M 的网格图,每个网格存在地形的差异,因此通过不同网格时,成本开销存在差异。 网格有以下 5 种类型: 标志为 S …

深度搜索算法(c++)

迷宫出口 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态, 0和1,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(…