ArcGIS Pro 拓扑编辑和常见一些拓扑错误处理
7.4 拓扑编辑
拓扑编辑也叫共享编辑,多个数据修改时,一块修改,如使用数据:chp7\拓扑检查.gdb,数据集DS下JZX、JZD和DK,加载地图框中,在“地图”选项卡下选择“地图拓扑”或“ds_Topology(地理数据库)”,如图7-11所示。

图7-11 地图拓扑的位置
单击“编辑折点”,出现“修改要素”窗格,下面切换到“边”,如图7-12所示。

图7-12 共享编辑修改边和按比例拉伸的位置
修改数据时,一块修改。
![]()
按比例拉伸,不勾选,只修改节点,选中所有节点按比例拉伸,默认是选中。
7.5 常见一些拓扑错误处理
在Pro中没有一键处理所有错误方法,就像没有一种药物包治百病一样。我们不同拓扑错误,解决方法不一样。由于拓扑容差默认就是XY容差,很多矢量数据处理有XY容差参数工具,都是拓扑错误处理;同时本身要求没有拓扑错误,反过来也是拓扑错误的处理工具。
7.5.1 点、线、面完全相同处理
使用“删除相同项(DeleteIdentical)”工具,直接对输入数据本身修改,测试数据:chp7\拓扑处理.gdb\kk\宗地,操作如图7-13所示。

图7-13 删除完全重复的面
字段选“Shape(图形)”,对于点要素,删除重复点;对于线,是删除完全相同的线;对于面,是删除完全相同的面;选择其他字段就是值相同的,选择多个字段就是多个字段的值完全相同的。使用该工具,删除完全重叠面,如果几个完全相同的面,按表中记录的顺序,删除后面的,保留第一个。
7.5.2 线部分重叠
使用打断相交线,在划分下
![]()
,选择需要处理的线(只能一个图层的线数据),使用打断,可以删除完全重叠线,也可以删除部分重叠的线。测试数据:chp7\拓扑处理.gdb\kk\线重叠。
7.5.3 线有伪结点
测试数据:chp7\拓扑处理.gdb\l\xzqjx,拓扑规则:“不能有伪结点”,有927个错误,结果如图7-14所示。

图7-14 伪节点错误
处理方法:先使用“融合(Dissolve)”工具,融合字段是需要保留属性字段,且端点相同的线合并在一起,如图7-15所示。

图7-15 融合工具合并线
然后,在划分下
![]()
,打断相交线,如果还有伪结点错误,需要自己选择对象,处理方式:使用合并
![]()
。
7.5.4 面部分重叠
测试数据:chp7\拓扑处理.gdb\kk\部分重叠。使用“联合(Union)”工具,把部分重叠转换成完全重叠,操作如图7-16所示,后根据自己的需要修改,如果需要完全相同删除的按7.5.1小节方法;如果需要合并,开始编辑,选择合并,如果很多这种情况,可以使用“消除(Eliminate)”工具。联合工具也可以处理两个面要素图层,图形可以完全处理,处理后图形没有任何重叠,属性将两个要素图层的属性字段连接在一起。

图7-16 联合处理部分重叠的面
也可以“要素转面(FeatureToPolygon)”工具,如图7-17所示。

图7-17 使用要素转面处理面的重叠
使用该工具,输出面不保留任何属性。也可以两个以上的图层。
![]()
仅仅在下面选择标注要素(点要素)时,才有效。
7.5.5 点不为线的端点
测试数据:chp7\点线不重.gdb\ds下JZD和JZX,“捕捉(Snap)”工具主要适合用点和线,点和面,面和点,线和点,或者点和点的简单情况,概括一(点)对多(线和面多个折点),或多对一;不适合用于线和线,线和面,或者面和面等多(因为面或线要素有多个折点)对多的复杂情况,操作界面如图7-18所示:

图7-18 捕捉工具 让JZX的端点和点重合在一起
捕捉(SNAP)中输入要素是需要修改要素,这个选JZX,修改的要素就是JZX,如果想让JZD修改,输入要素就选JZD。捕捉环境的类型选项:
1.END - 将输入要素折点捕捉到(捕捉环境)要素末端。
2.VERTEX - 将输入要素折点捕捉到要素折点。
3.EDGE - 将输入要素折点捕捉到要素边。
选择时,优先选择1和2。距离 - 输入要素折点被捕捉到此距离范围内的最近折点,满足条件的最小值,如目前线到点的距离,2.8米多一点,所以输入3米。注意:直接修改输入要素,所以一定要先备份输入要素。
7.5.6 面线不重合
面线不重合,需要的是修改面,虽然可以使用4.2.2小节对齐边和对齐要素工具,或者7.5.5小节的捕捉工具,但处理起来工作量都很大。只要线闭合,没有“不能有悬挂点”拓扑错误,线在交叉地方打断,生成面的边界就和线重合。测试数据:chp7\面线不重合.gd\ds下xzq和xzqjx,我们方法如下:
1.面生成点 :使用“要素转点(FeatureToPoint)”工具,选中内部,如图7-19所示,一个面生成一个点,点在面内部,点的属性和面属性一致。

图7-19 要素转点,需要面的属性
注意:要素转点,可以是面,或线,一个面就得到一个点;选中“内部”参数,生成点在面内,线上(默认长度的中点),未选中“内部”参数,获得几何中心,但几何中心不一定在面内和线上;点的属性和输入要素的属性一致。
2.线生成面:使用“要素转面(FeatureToPolygon)”工具,输入要素就是原始线(JZX),下面的标注要素:选“要素转点”得到的点要素,保留属性一定选中(默认是选中,不要去掉),如图7-20所示。生成的面,图形来自线要素,属性来自最早的面。
注意:该操作面要素不要有多部件要素,如果存在多部件要素先使用“多部件至单部件(MultipartToSinglepart)”工具转成单部件;此方法只适合面线边界稍微不重合,由线生成面的记录数和最早面的记录数一致。如果不考虑最早面的属性,直接使用要素转面一步操作就可以,下面标注要素不需要填写。

图7-20 要素转面 生成图形取线,属性取点
7.5.7 面必须被其他面要素覆盖
测试数据:chp7\不能跨行政区.gdb下DLTB和XZQ,DLTB不能跨XZQ,拓扑检查,有29个拓扑错误,如图7-21所示。

图7-21 必须被其他要素覆盖的拓扑错误
一般的解决方法:两个图形相交,跨行政区自动分解,如图7-22所示,拓扑错误就自动解决了,后面再根据自己情况,解决碎的图斑和属性问题。

图7-22 相交解决拓扑错误
也可以直接根据属性XZQDM,XZQMC生成XZQ数据,使用“融合(Dissolve)”工具,如图7-22所示。该操作前提条件是:先填写对应字段的属性。

图7-23 融合解决拓扑错误
7.5.8 多部件检查
Pro拓扑中没有直接检查面多部件功能(线有,点的多部件是多点),我们有两种方法:
1.自己建一个长整数字段,使用字段计算,使用Python语法:!Shape!.partcount,大于1就是多部件要素。
2.使用“多部件至单部件(MultipartToSinglepart)”工具,看记录数是否增加,没有增加,就没有多部件。ORIG_FID是原来图形的ID,使用“频数(Frequency)”工具,频数字段选“ORIG_FID”,输出表中字段“FREQUENCY”,大于1都是多部件。
7.5.9 锐角检查
Pro中默认没有检查工具,本人写一个Python,工具在“Chp7\锐角检查工具.tbx”,如图7-24所示,同时提供其他一些工具,就是上面说的Pro工具,封装一下。

图7-24 提供一些拓扑处理的工具
数据:chp7\拓扑检查.gdb\锐角检查,运行“锐角检查”工具,如图7-25所示。

图7-25 锐角检查工具
结果如图7-26所示,小于角度位置输出点;属性表中有具体角度字段。错误处理,需要自动根据情况处理,无法自动处理。

图7-26 锐角检查结果
相关文章:
ArcGIS Pro 拓扑编辑和常见一些拓扑错误处理
7.4 拓扑编辑 拓扑编辑也叫共享编辑,多个数据修改时,一块修改,如使用数据:chp7\拓扑检查.gdb,数据集DS下JZX、JZD和DK,加载地图框中,在“地图”选项卡下选择“地图拓扑”或“ds_Topology(地理数据库)”&…...
前端踩坑之——antDesignVue的upload组件
本地启动时控制台会报404,放到服务器上控制台会报405(多发一个请求) 原因:upLoad有默认的上传事件 解决:阻止默认事件即可 beforeUpload Hook function which will be executed before uploading. Uploading will be stopped with false or …...
设计模式——策略模式
策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,并将每一个算法封装起来,使它们可以相互替换。策略模式让算法独立于使用它的客户端代码,使得算法的变化不会影响到使用该算法的客户端…...
Ubuntu12.0安装g++过程及其报错
Ubuntu12.0安装g过程及其报错 https://blog.csdn.net/weixin_51286763/article/details/120703953 https://blog.csdn.net/dingd1234/article/details/124029945 2.报错二: [41/80] Building CXX object absl/synchronization/CMakeFiles/graphcycles_internal.di…...
rime中州韵小狼毫 汉语拼音输入方案
教程目录:rime中州韵小狼毫须鼠管安装配置教程 保姆级教程 100增强功能配置教程 在word中,我们可以轻易的给汉字加上拼音,如下👇: 但是,如何单独的输入拼音呢?例如输入 pīn yīn, 再如 zhōn…...
网页设计(八)HTML5基础与CSS3应用
一、当当网企业用户注册页面设计 当当网企业用户注册页面 改版后当当网企业用户注册页面 <!-- prj_8_1.html --> <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>当当网企业用户注册页面设计</title><s…...
模拟瑞幸小程序购物车
是根据渡一袁老师的大师课写的,如有什么地方存在问题,还请大家指出来哟ど⁰̷̴͈꒨⁰̷̴͈う♡~ index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-e…...
react js自定义实现状态管理
redux基础实现 myRedux export const createStore (reduce) > {if (typeof reduce ! function) throw new Error(Expected the reducer to be a function.)let state,listeners []state reduce()const getState () > stateconst dispatch (action) > {if(typeo…...
行为型设计模式——中介者模式
中介者模式 中介者模式主要是将关联关系由一个中介者类统一管理维护,一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即…...
通信行业无线基本概念
fast roaming(快速漫游):使用户在不同的基站(access point)间可以平滑的切换,在802.11r协议标准中定义。band steering(波段转向):在双频段(2.4G和5G…...
grep 在运维中的常用可选项
一、对比两个文件 vim -d <filename1> <filename2> 演示: 需求:~目录下有两个文件一个test.txt 以及 text2.txt,需求对比两个文件的内容。 执行后会显示如图,不同会高亮。 二、两次过滤 场景:当需要多…...
python读取Dicom文件
文章目录 1. pydicom Library2. SimpleITK Library3. ITK Library (Insight Toolkit)4. GDCM Library (Grassroots DICOM) 下面提供几种用python方法读取Dicom文件 1. pydicom Library import pydicom # Read DICOM file dataset pydicom.dcmread("path_to_dicom_file.d…...
UL2034详细介绍UL 安全单站和多站一氧化碳报警器标准
在介绍相关标准之前先介绍一下UL认证和UL测试报告的区别,检测认证行业6年老司机 UL认证是自愿性的认证,需要检测产品和审核工厂,每个季度审核一次,费用高、时间久,而且审厂非常的严格。 UL测试报告是根据产品选用相应…...
鸿蒙HarmonyOS-SDK管理使用指南
鸿蒙HarmonyOS-SDK管理使用指南 文章目录 鸿蒙HarmonyOS-SDK管理使用指南sdkmgr使用指导查看SDK组件安装组件卸载组件查看sdkmgr版本查看sdkmgr帮助options选项说明ohsdkmgr使用指导查看SDK组件安装组件卸载组件查看ohsdkmgr版本查看ohsdkmgr帮助option...
QT上位机开发(进度条操作)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 进度条是一个比较常见的控件。如果某个操作需要很长的时间才能完成,那么这个时候最好有一个进度条提示,这样比较容易平复一…...
637_二叉树的层平均值
描述 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受 思路 无需思路,乱杀 解答 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, righ…...
Ubuntu20.4 Mono C# gtk 编程习练笔记(三)
Mono对gtk做了很努力的封装,即便如此仍然与System.Windows.Form中的控件操作方法有许多差异,这是gtk本身特性或称为特色决定的。下面是gtk常用控件在Mono C#中的一些用法。 Button控件 在工具箱中该控件的clicked信号双击后自动生成回调函数prototype&…...
What is `JsonSanitizer.sanitize` does?
JsonSanitizer.sanitize 是一个Java库中的方法,用于处理和净化JSON字符串,特别是针对跨站脚本攻击(XSS, Cross-Site Scripting)。 例如,在处理富文本内容、用户评论、从第三方服务获取的数据时,使用 JsonSa…...
K8S测试pod
背景 用于测试ping,curl等类型的pod Centos pod apiVersion: apps/v1 kind: Deployment metadata:name: centos-deploymentlabels:app: centos spec:replicas: 1selector:matchLabels:app: centostemplate:metadata:labels:app: centosspec:containers:- name: c…...
序章 熟悉战场篇—了解vue的基本操作
了解vue 的基本目录: dist 是打包后存放的目录(打包目录后续可以改)node_modules 是依赖包public 是静态index页面src 是存放文件的目录assets 是存放静态资源的目录components 是存放组件的目录views 是存放页面文件的目录(没有views 自己新建一个&…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
