基于GeoScene Pro的开源数据治理与二维制图规范化处理智能工具箱
内容导读
本文描述的是一个基于GeoScene Pro4.0+/ArcGIS3.1+ Pro平台的开源数据治理与二维制图规范化处理智能工具箱(免费试用,文末有获取方式),旨在解决GIS应用中数据转换、检查、治理和制图数据规范化处理方面的问题。
工具箱结合了Geoscene/ArcGIS Pro平台和Python环境,利用开源工具和包,提供了一个全面的数据治理与制图规范化处理解决方案。该工具箱涵盖了数据转换、检查和治理、制图数据规范化处理等方面,满足了从数据生产到最终地图成品全过程的需求。
通过自动化工具实现数据检查、修复和制图效果优化,减轻了手动操作的负担,提高了数据处理和地图制作的效率。
工具箱的创新点:
(1)综合性的数据处理与制图工具集:涵盖了数据检查和治理、制图数据规范化处理两个方面,满足了从数据源到最终地图成品全过程的需求。
(2)自动化与智能化处理:通过自动化工具实现数据检查、修复和制图效果优化,减轻了手动操作的负担。
(3)高性能与用户友好性:工具箱支持并行计算,处理大规模数据时具备高效性能,并提供易于使用的界面。
(4)重写与开源实现:部分工具是对现有GIS产品中的功能进行了重写,以提高效率和弥补存在的缺陷;绝大多数工具功能是开源实现的,便于技术交流和持续改进。
若您觉得文章内容对你有用,请转发分享。
内容很长,若只关注工具箱的,可直接到文末获取。
但为了能完整的介绍工具箱,还是将很多内容放到了这一篇文章中,请谅解。
关于工具箱中工具的使用问题,可在本账号下系列文章中找到答案(如:工具使用方法和参数含义),也可直接私信小编反馈问题和获取支持。
一、需求与背景
在地理信息系统(GIS)领域,规范的数据处理和高质量的地图配图是确保数据分析和可视化展示效果的关键。特别是在国土空间规划编制审批体系建设中,面对不同规划层级和类型的海量数据,需要一套高效、精准的数据处理方案来保证数据的质量和时效性。
本研究致力于开发一套全面的数据治理与制图规范化处理工具箱,以提高数据处理效率、确保数据质量,并增强规划辅助功能。
旨在为国土空间规划提供高效的数据处理和制图解决方案。该工具箱通过集成大量开源技术和方案,显著提高了数据处理的效率和质量,优化了地图配图效果,为国土空间规划的多个环节提供了强有力的支持。
![]()
NO.1 问题分析
在GIS中,数据质量和一致性直接影响空间分析和决策。然而,当前在数据检查、治理和制图规范化处理方面仍存在以下问题:
数据治理: 多样化的数据来源导致格式和属性字段不一致,特别是在大规模数据处理中,现有工具难以实现高效自动化的检测与修复。
制图数据规范化: 现有制图工具在处理不同显示比例尺、POI抽稀、路网和水网连通性检查等问题时,功能有限,效率低下,影响了地图的精度和美观性。
![]()
NO.2 需求分析
市场迫切需要一个能够全面解决数据治理和制图规范化问题的综合工具箱。具体需求包括:
数据质量检查与修复: 结合人工智能和自动化技术,工具箱应包括数据库初始化、图层合并、流向分析、中心线提取、悬挂点修复等功能,自动检测并修复常见数据质量问题。
制图数据规范化: 对于制图效果要求越来越精细,市场需要一个能够自动调整数据展示效果的工具箱。通过POI抽稀、路网和水网连通性检查、建筑物2.5D效果生成等功能,确保地图的美观和准确性,减少后期调整工作量。
![]()
NO.3 制图综合(Cartographic Generalization)
GIS技术的广泛应用,各行业对高精度数据和高质量地图的需求不断增长。当前市场缺乏一个能够同时满足数据质量检查与制图规范化处理的综合工具。开发一个集数据规范化、质量控制和制图效果优化于一体的工具箱,不仅填补市场空白,还将极大提高数据处理和地图制作的效率。
随着数据处理和制图复杂性的提升,市场迫切需要一种自动化、智能化的解决方案。开发综合性质检工具箱,通过先进技术手段,提高数据治理和制图规范化处理的效率,不仅能满足当前需求,还具有很大的市场机会和发展潜力。
二、总体框架
本研究的成果基于GeoScene Pro 4.0的Python工程环境,开发了一套包含数据检查和治理辅助工具集(21个工具)、制图数据处理规范化处理工具集(11个工具)以及mdb数据转出工具集(4个工具)共36个工具的智能工具箱。这些工具充分利用了开源包和方案,以克服传统工具在运行效率上的限制,并扩展了功能。具体包括:
数据检查和治理辅助工具集:用于数据质量检查和自动修复,辅助数据治理或生成衍生数据,确保数据的准确性、完整性和一致性。
制图数据处理辅助工具集:优化制图数据的处理,提升地图配图效果。

三、应用情况
这些工具集已经在省级规模的数据上进行了验证和完善,证明了它们能够有效应对复杂的数据情况。它们不仅解决了数据治理方面的难题,还实现了数据规范化和制图效果优化的新功能,极大地提高了项目实施效率和用户体验。具体来说:
数据检查和治理辅助工具集:通过自动化的数据质量检查和修复功能,显著提高了数据的准确性、完整性和一致性,有效减少了数据治理过程中的人工干预,加快了数据准备的周期。
制图数据处理辅助工具集:通过优化制图数据的处理流程,提升了地图的配图效果,实现了更为精细和美观的制图成果,增强了最终用户的体验。
这些工具集的应用不仅提高了数据处理和制图工作的效率,而且为国土空间规划编制审批体系建设提供了有力的技术支撑,使得整个规划过程更加高效、准确和可靠。
四、mdb数据转换工具
将个人地理数据库(mdb)转出为文件地理数据库(gdb)或shapefile格式。
应用场景与功能:
地理数据的存储和交换是一个常见的需求。个人文件地理数据库(MDB)是一种常见的地理数据存储格式,但是在实际应用中,有时需要将MDB文件转换为gdb或shp格式,以便在不同的GIS软件中使用。
随着ArcMap退出历史的舞台,ArcGIS Pro不再支持mdb数据库,在Pro中如何实现mdb转出为其他格式,虽然别扭,但却是很有必要的。
五、数据检查与治理工具
5.1 初始化地理数据库
按分层属性结构表,创建地理数据库,统一数据库结构。
应用场景与功能:
在数据处理工作中,当数据分层和图层属性结构设计完成后,需要按照数据分层命名和图层属性结构创建地理数据库库体。规范的库体结构,对后续的数据合并,数据查询,数据分发等使用有着重要的意义。
工具通过读取数据分层命名和图层字段属性的表格,初始化数据库库体。数据库库体可通过编辑存储图层属性结构的表格来进行调整,确保在规范化约束数据库库体的基础上,实现库体结构的便捷拓展。
工具原型界面示例:

工具执行结果示例:

5.2 导出图层字段属性信息表
获取图层的属性结构信息,并可通过编辑修改后,结合“初始化地理数据库工具”,创建新的地理数据库。
应用场景与功能:
在“初始化地理数据库”工具中,有一个参数为:“输入Excel表”,要求表格中的图层字段属性项需要按工具的帮助文档中的示例进行组织,此外,总有一些特别的需求,需要你将要素类图层的字段属性输出。
工具通过遍历GDB中的所有要素类,读取要素图层的字段属性信息,按“输出类型”组织字段信息,并将其保存到Excel表格中(.xlsx)。
工具原型界面示例:

工具执行结果示例:
| tableInfo.xlsx | tabstructInfo.xlsx |
|
|
|
5.3 指定路径下同名图层合并
严格按数据库结构或自动解析适应图层属性结构,对指定目录下的所有空间矢量数据,按图层名,全部或部分合并为一个图层。
应用场景与功能:
对于数据管理人员,经常碰到数据汇总入库,或将作业单位提交的成果数据按项目作业范围、按行政区划范围等将多个同名图层合并到一起,按数据内容进行分类组织,存放到地理数据库中。
指定路径下同名图层合并工具,支持的功能:
(1)对指定目录下的要素类,按同名图层(忽略图层名大小写)进行合并。合并的过程中,对字段类型、几何错误以及空值进行处理。
(2)支持严格模式和非严格模式;严格模式下,默认所有同名图层字段属性项相同;非严格模式下,会对同名(忽略图层名大小写)图层的字段(忽略大小写)进行分析,优化和拓展字段属性项,以确保数据合并能正确执行;
(3)“非严格模式”,将解决影响数据合并规则的因子:
a) 忽略字段名存在大小写,合并或追加时会自动解决;如:feature,Feature;
b) 忽略图层名存在大小写;如:LCRA,Lcra ;
c) 同名字段类型不一致;如:string,date ;
d) 同名字段长度不一致;
e) 同名字段精度不一致;
f) 同名字段是否必填不一致;
g) 同名字段是否包含空值不一致;
(4)“严格模式”,此时,会忽略图层名称大小写问题。但同名图层下的字段属性,需保持一致,否则可能出现数据合并失败。
(5)在输出目录下,输出数据合并日志文本。
工具原型界面示例:

工具执行结果示例:
在“输出路径”下,输出“输出数据库名称”.gdb和数据合并日志。
5.4 按要素范围或要素属性值分割输入要素集
对多个不同数据源的图层,按输入要素的返回或输入要素指定字段属性唯一值,对其进行分割存放到多个地理数据库中。
应用场景与功能:
数据管理部门、数据管理系统或作业人员,通常需要对要素类集合按要素范围、按要素类属性值对其进行分割,达到数据下发,数据审批抽取及数据分块作业的目的。
按要素范围或要素属性值分割输入要素集工具,用于解决一个或多个图层数据,允许一定的缓冲距离,按指定要素范围,或要素属性唯一值,对输入要素类集合进行分割提取。
工具原型界面示例:

工具执行结果示例:

5.5 国家基本比例尺地形图分幅计算
根据输入图层的范围,按国家地形图分幅标准,生成标准图幅,用于元数据制作和数据管理等。
应用场景与功能:
国家基本比例尺地形图分幅是一种制图和地理信息管理的方法,它将一个国家或地区的地形图分成多个小区域或分幅。在作业生产过程中,根据图层数据范围生成指定基本比例尺下图幅号,能快速完成对于与归档数据的查找、比对及元数据信息的补充。
支持的功能:
(1) 输入经纬度,计算指定的国家基本比例尺图幅号(模块提供接口);
(2) 根据国家基本比例尺下的标准图幅号计算当前图幅左上角坐标(支持经纬度坐标值和投影坐标值)(模块提供接口);
(3) 根据输入要素类四至范围,生成基本比例尺图幅面,属性值为图幅号;
工具原型界面示例:

工具执行结果示例:

5.6 水系流向错误分析及修复
对河网中水系线的流向进行分析,一键实现所有不合理流向水系线的翻转。
应用场景与功能:
河网流向分析计算工具用于解决水系线数据流向错误的问题。
工具基于河流流向分析的结果,并提供了“翻转线”的功能,能一次解决河流流向错误的问题。
工具原型界面示例:

工具执行结果示例:

5.7 面中心线提取
对任意多边形提取中心线,用于道路面或水系面等需要提取骨架线的数据衍生生产需求。
应用场景与功能:
面中心线提取工具,用于解决面要素图层中任意多边形的中心线提取,正确处理面要素图层中面要素之间,面要素图层与其他连接要素(点、线、面)图层间的连接,并对提取的中心线进行平滑和简化处理。
工具支持的功能如下:
1)对面要素提取中心线,面要素形状可以是任意多边形,能很好的处理狭长多边形,非狭长多边形,有孔洞多边形。
2)当面要素有其他连接要素图层,如点、线、面图层,将按照输入面要素与之相交的其他要素的公共点(共享边中点)进行有效连接;
3)对提取的中心线进行了平滑和简化处理;
4)输出的中心线记录了原始多边形的ID,可用于源数据字段的连接和传递;并在每一个连接点处记录构成连接点的源图层名称和要素ID,用于区分连接点类型,和解决汇入段属性值的连续性问题。
工具原型界面示例:

工具执行结果示例:

5.8 文本属性值规范化处理
对图层中所有文本字段,一次完成属性值中空格,标点符号,字符替换等需求,快速解决非法字符和字符的替换;
应用场景与功能:
数据检查方案中,对文本属性值的检查一般包括以下内容:
-
检查属性值中不能含有不合理的标点符号(“,”、“?”、空格、换行符等);
-
确认全部属性字段是否为半角;
-
名称简称中不能出现异常字符;
而我们在属性表中处理文本类型字段属性值时,也常碰到这样的烦恼:
-
一次只能处理一个字段;
-
一次只能处理一种非法字符类型;
-
文本查找与替换,又不能支持字符串两端或中间模糊匹配;
要素类文本属性值规范化处理工具,用于处理输入要素文本字段值中,存在的全角半角、空格、数字、中文、中文标点、英文、英文标点以及值替换等文本规范化需求。
工具原型界面示例:

工具执行结果示例:

5.9 线要素网络连通性分组计算
对道路线、水系线等线层数据,分析网络的连通性,对位于同一个网络中的要素赋相同的属性值。
应用场景与功能:
对于需要构建网络的线要要素图层,一般采取检查悬挂点,或按距离缓冲线后融合面,用来判断整个网络数据是否是一个完整的网络。两种检测方法,检查悬挂点的方式工作量过大且不能保障正确性。而使用线缓冲融合面的方式,缓冲距离的选择会导致方法不准确,且数据量大时,不能输出结果。
计算线要素连通性分组值工具,计算线要素图层中的网络连通性,同一网络中的线要素将被赋予相同的值。
工具原型界面示例:

工具执行结果示例:

5.10 在点处分割线
对线连接未打断,点、线间需要在点位置,或点临近位置分割线的需求,实现快速分割线;
应用场景与功能:
在对矢量数据加工处理时,尤其是基于特殊需求和批量操作时,线要素需要根据线交点或临近点,对其进行分割处理。
支持的功能:
(1)它功能上与Geoscene Pro“在点处分割线”工具相同,但是效率高很多;
(2)支持原地修改,即不用输出新的要素类,直接更改到源要素图层。
工具原型界面示例:

工具执行结果示例:
所有输出的要素类都存放在输出目录中的scratch.gdb中。若scratch.gdb不存在,则自动创建,若已存在,不会覆盖其中已有的要素。
5.11 曲线线段修复
将线层数据中存在曲线线段(贝塞尔曲线、圆弧、椭圆弧等)的部分替换为多段线;
应用场景与功能:
在GIS中,曲线一般有两种表示方式:一类是由多个直线段(多段线)组成的曲线,另一类是由贝塞尔曲线、圆弧和椭圆弧等数学曲线表示的曲线。在某些情况下,入库的数据不能包含曲线。
使用Geoscene Pro提供的地理处理工具“增密”,通过指定“增密方法”为“偏移”,可以实现对曲线线段替换为线段。但不会输出被替换的曲线,即无法对比验证。
“曲线线段修复”工具将曲线线段(贝塞尔、圆弧和椭圆弧)替换为线段。并输出被替换的部分,用于对比验证。
工具原型界面示例:

工具执行结果示例:

5.12 mdb转shp或gdb
对指定目录下的所有mdb数据或指定的mdb数据,转为shp或gdb格式;
应用场景与功能:
地理数据的存储和交换是一个常见的需求。个人文件地理数据库(MDB)是一种常见的地理数据存储格式,但是在实际应用中,有时需要将MDB文件转换为Shapefile(SHP)格式,以便在不同的GIS软件中使用。虽然听起来简单,但实际上这个过程可能会面临一些挑战。
使用ArcMap处理这样的需求,是很简单的。但是使用Geoscene Pro、GDAL 命令行工具以及FME都无法圆满的解决这个需求。
工具支持的功能:
(1) 将mdb转出为shp或gdb;
(2) 迭代指定文件夹路径下的所有mdb,将其批量导出为shp或gdb;
工具原型界面示例:

工具执行结果示例:

5.13 数据投影转换
对地理坐标系下的图层,按标准分带或指定的分带经差,自动计算分带对应的投影坐标系并将其转出;
应用场景与功能:
地图投影是把地球表面的任意点,利用一定数学法则,转换到地图平面上的理论和方法。在地图制作、空间数据分析以及工程和建筑项目中,面对地理坐标系的图层数据,进行精确的面积计算、距离量测、规则分块等需求时,需要进行地图投影。
工具支持的功能:
(1)按标准分带或自定义分带,使用高斯克吕格投影对数据按分带投影输出;
工具原型界面示例:
暂未封装。
工具执行结果示例:
按3°带,使用高斯克吕格投影对某省水系数据进行投影并输出。

5.14 面要素规则化处理(直角化、曲线)
消除面图层几何要素中不需要的伪影,实现轮廓的正交或平滑处理;
应用场景与功能:
在数据获取过程中,受GPS精确度、遥感影像分辨率或人为因素的影响,数据往往存在不同程度的误差。其中,图像分割、深度学习等技术提取的建筑物多边形边界由任意折线构成,直角特征弱,点数冗余,无法实现地理信息的规范化表达。
工具对面要素的轮廓线,按直角或平滑进行规则化处理,用于消除面要素范围几何中不规整的边界及细节。
工具原型界面示例:
暂未封装。
工具执行结果示例:
直角:

平滑:

5.15 线悬挂点检查和修复
智能检测线图层中不合理的悬挂点,并自动修复;
应用场景与功能:
悬挂点是指在地图数据中孤立存在的点,它们不与任何线或面的节点相连接。悬挂点通常是数据中的异常情况,可能是由于数字化或数据编辑错误而导致的。


线要素悬挂点修复工具用于解决,在指定距离容差(距离为扇形半径,扇形角度默认180)范围内,沿着线走向向前自动检测线要素图层存在的悬挂点,并按更为合理的方式将悬挂点给予修复,可根据需要是否输出被修剪、延伸、连接的部分。同时,工具支持另存修复结果或直接原地修复源数据。

工具与常规GIS软件中的裁剪、延伸有明显的区别。本工具功能将更加高效、准确和合理。
工具原型界面示例:

工具执行结果示例:
1)连接
在悬挂点处,寻找最近的悬挂点进行连接,且连接后不能与其他要素相交;

2)裁剪
裁剪功能除了包含arcgis中的“修剪线”功能外,将在裁剪处对线进行打断,一步到位解决网络连通问题,且可以将被裁剪的部分输出,使用该记录可用于数据修复情况的检查和验证。

3) “延伸”功能,不是简单的解决两条线要素的延长相交问题。而是优先寻找“合适点”,找不到合适点的线将不进行延伸处理,避免因为延伸带来的极小角、自相交、增加新的点位等额外的数据问题。
此外,“延伸”功能将在连接处打断线,一步到位解决网络连通问题。
GIS软件中的“延伸线”工具,是一种不考虑延伸后线要素之间夹角的“粗暴”做法。示例插图如下:

5.16 线、面极小角检查
输出线、面层中因编辑或空间分析造成的极小角的位置;
应用场景与功能:
极小角,类似Geoscene中的“急锐角化”,急锐角化校验用于识别折点之间包含大角度转弯的要素。
但是本文中介绍的极小角,主要是指折线中结点之间包含大角度转弯或折线间存在小角度夹角的线要素图层,以及面要素图层中,面要素折点的大角度转弯造成的小夹角。

线、面要素极小角查找工具,对输入的线、面要素,找出小于指定角度的夹角或转角位置,并记录该点所在的输入要素ID,该点处的夹角,并输出点。
工具原型界面示例:

工具执行结果示例:
1)面极小角输出示例如下:

2)线极小角输出示例如下:

5.17 线、面打折修复
对线、面层中出现打折的结点,进行自动修复;
应用场景与功能:
在数据编辑、空间分析以及数据转化中,总会出现“打折”的情况;同时,极小角存在地方,往往伴随着线、面要素的打折。
在对矢量数据质量检查时,对线要素图层的验收方案中,拓扑一致性提到的图形正确性,就包括检查图形相交、打折、重线。

“打折”可以通过质量检查软件自动检查,但并没有对“打折”问题修复的工具。
线层、面层打折修复工具,用于在线、面要素存在打折的地方,对打折线、打折面进行修复,消除打折质量问题。
工具原型界面示例:

工具执行结果示例:
1)线图层修复示例:

2)面图层修复示例:

5.18 线、面间悬挂点检查和修复
对线、面层间需要保证要素间正确连接的要求(如水系数据),自动检测和修复不合理悬挂点;
应用场景与功能:
当地理空间数据主要以线或面表达时,如水系数据。有条件采集面状水系骨架线的,应采集骨架线、赋骨架线分类代码,并与线状河流构成河网。
如下图①、②、③处,水系线与水系面未正确连接,即满足线、面间悬挂点的定义。

工具原型界面示例:

工具执行结果示例:

5.19 线重叠检查修复
对线层中,要素间存在重叠的区域,按周边要素的连接情况,智能化裁剪修复;
应用场景与功能:
先明确一下“线重叠”的定义。
不能自重叠(线):线要素不得与自身重叠。这些线要素可以交叉或接触但不得有重合的线段。此规则适用于街道等线段可能接触闭合线的要素,但同一街道不得出现两次相同的路线。
不能重叠(线):线不得与同一要素类(或子类型)中的线重叠。例如,当河流要素类中线段不能重复时,使用此规则。线可以交叉或相交,但不能共享线段。

“线重叠检查修复修复”工具,支持的功能如下:
(1)对线自重叠部分进行查找输出,支持自动修复功能;
(2)对线重叠部分进行查找输出,支持批量、合理性自动修复。
工具原型界面示例:

工具执行结果示例:

5.20 线缠绕检查修复
多源数据融合时,对同一实体选择了多条重复记录,形成线缠绕的数据情况,实现自动检测和修复;
应用场景与功能:
做数据融合时,经常碰到这样的问题?
我获取的数据源有A、B、C,……,在数据分析阶段,需要选择表达准确、现势性好、精度高、内容全的要素进行融合更新,通过对比分析,A、B的几何都好,C中有几个属性项需扩展到成果数据中。

“缠绕线”,主要是指表达同一段实体的多条折线存在来回穿插相交,或整体偏移,在数据处理编辑时,不能简单的通过删除其中一条线要素而实现网络的构建的数据现象。

“缠绕线查找和修复”工具,支持的功能如下:
(1)在指定搜索距离范围内,分析线要素周边的其他线要素,计算其与自身的曲线相似度,对相似度值满足指定阈值的曲线,计算两条曲线间的最优路径,使用最优路径替换原曲线。
(2)能有效解决线要素图层中存在的线缠绕数据质量问题,以及提取双线至单线的需求。
工具原型界面示例:

工具执行结果示例:

5.21 点实体查重
对点层数据,按属性值和位置的临近关系,分析同一点位实体的重复的可能性;
应用场景与功能:
在兴趣点数据的融合过程中,由于数据来源的繁多,数据质量参差不齐,表达同一点位实体的要素可能会出现多条记录的情况。
点实体数据重复示例:

工具对输入点图层,在指定距离范围内任意点,查找出名称与之相似度最高的点位,记录其ID,与之的方位角和距离,输出到属性表中。相似度字段similarity的取值为[0,1],为1时,表示在指定距离范围内找到一个与之名称完全相同的点位。值越大,相似程度越高。
工具原型界面示例:

工具执行结果示例:
1)输出类型为点

2)输出类型为线

5.22 面要素形状指数(狭长度)计算
计算面的形状指数,按计算值,找出狭长面或规则面,一般用于查找因编辑和叠加分析造成的小面或狭长带。
应用场景与功能:
如何确定一个面要素是近圆的还是扁的?如下图所示,哪些图形更加规整,而哪些图形比较“狭长”?

狭长面通常是由诸如相交或联合等叠加操作生成的较小的面。通常,狭长面的面积远远小于周长。
那些场景下需要鉴别狭长面?
(1)有很多小碎面需要消除,但不能简单的只通过设置面积大小去筛选面是否是“极小面”,会错过那些大面积但狭长的面要素;
(2)面要素有孔洞(裂缝),要消除这种裂缝,又不能把面中的孔洞全部补起来,会错误的删除合理的孔洞;
(3)一些应用场景下,需要找出比较规整的分类地块。
面要素形状指数(狭长度)计算工具,用于计算面要素的“形状指数”,形状指数表示多边形的紧凑度,最小值为1,值越大,多边形越狭长。并提供修复的功能,修复的内容包括在计算面要素形状指数时,删除极小面和删除狭长面。此功能主要应用在非完整覆盖地表的图层。
工具原型界面示例:

工具执行结果示例:

六、制图数据规范化工具
6.1 POI数据显示抽稀
不同显示比例尺下,按规则对POI数据进行过滤抽稀。
应用场景与功能:
制图工作中,经常会遇到大量密集的地名地址与兴趣点(以下简称“兴趣点”)的显示问题,兴趣点在空间分布上位置临近甚至重叠,造成标注信息存在压盖和重叠,为了制图美观,突出制图内容标注主题,通常需要对大量的兴趣点进行抽稀 。
POI显示抽稀工具用于解决密集POI 点显示和标注时,点位均匀分布和疏密得当的要求。抽稀过程中,算法只对数据进行过滤筛选,不对数据空间位置和其他属性值进行更改,能确保抽稀前后数据质量不发生改变。
工具原型界面示例:

工具执行结果示例:

6.2 POI简称处理
按简称规则和要求,对POI的标注名称进行简称处理。
应用场景与功能:
外业采集或收集到的兴趣点点位名称,一般是点位名称的全称,有些公司、单位或机构的名称字符较长,甚至超过了20个汉字,如:XX 区YY 县ZZ 镇人民代表大会常务委员会,简称为“ZZ 镇人大”。
在制图中对于点要素名称的标注,当名称长度超过6个字符时,为了地图美观和有限的图幅内能容纳更多的标注信息,一般对名称采取换行标注或采用名称简称的方式进行标注。如,中国社会科学院,简称为“社科院”;XX 市税务局 YY 区(县)分局第一税务所,简称为“YY 区(县)第一地税所”。
POI简称处理工具用于解决名称简称的规范化处理。
工具原型界面示例:

工具执行结果示例:

6.3 POI换行标注
对名称长度超过6字符的,在不分割词语、成语、短句等字符单元的情况下,进行字符分割。
应用场景与功能:
标注是制图中一个非常重要的内容,它是最直接的地图信息传递方式,一般用于标识某类要素的主体信息或辅助几何图形表达要素内容。在电子地图的制作中,最为常见的标注就是地名地址与兴趣点的名称标注。
对名称的标注,有一些常规约束,如每行标注的字符一般不应超过6个字,对POI名称字符长度超过6的记录,需按语义进行字符串分割等。
注记基本要求:
1) 注记,符号相互不能压盖;
2) 注记文字长度超过6个汉字时一般分行显示;
3) 根据图面负载,文字可放置在注记符号的八个方向,优先顺序分别为:右方、左方、上方、下方、右上、右下、左上、左下。
工具使用自然语言分词模型HanLP 的依存句法分析功能,在不破坏名称句法关系,即在不分割词语、成语、短句等字符单元的情况下,为过长名称的标注进行换行。
工具原型界面示例:

工具执行结果示例:

6.4 顶层道路线制作
在道路立交区域,提取顶层道路线。
应用场景与功能:
道路数据在制图中,为了在道路存在立交的区域,显示出道路的正确压盖关系,最简单的做法,就是在立交区域,截取最顶层道路线,让其长度能够跨越下层道路线,在渲染显示时,让截取的顶层道路线最后渲染,便能展示出道路的高低层级关系。

顶层道路线制作工具在路网存在立交的地方,按指定的长度截取相交道路线。
工具原型界面示例:

工具执行结果示例:

6.5 路网连通性检查
对不同显示比例尺下的路网,进行连通性检查。
应用场景与功能:
制图对道路数据的要求:
(1)道路名称:检查道路名称合理性,道路名称字段不能含有不合理的字符,有道路编号的道路NAME不能为空;
(2)道路编号:道路名称相同的等级道路,其道路编号必须一致,其应保持道路编号的连续性。
(3)显示类别:道路应保持连通,避免物理孤立或显示孤立。道路显示类别DISPCLASID与CLASID保持一致,当遇到与周边道路显示不连通时,适当升降显示类别,保持与周边路网的显示连通。
路网显示连通性检查工具用于找出不同显示级别下的道路数据,其存在不连通的位置和类型。
工具原型界面示例:

工具执行结果示例:

6.6 水网连通性检查
对水网,进行连通性检查(检查项包括水系流向)。
应用场景与功能:
河网和路网连通性的区别,在于河网不仅需要物理连通性,还需要判断河流汇入点河流流向的逻辑正确性,即每个河流汇入点,一定有河流流入,也一定有河流流出。
河网连连通性检查,和道路连通性检查一样,需要检查“孤立线”、“不合理悬挂点”、以及“不合理立交”等。
水系流向错误检查工具,用于找出不同显示级别下的水系线数据,其存在不连通的位置和类型。
工具原型界面示例:

工具执行结果示例:

6.7 水系河流分级
分别按STRAHLER和SHREVE分级方法,对水网进行分级,根据分级结果,可实现河网渐变效果。
应用场景与功能:
河网分级工具用于对矢量河流线数据进行分级计算,河网分级是一种将级别数分配给河流网络中的连接线的方法。此级别是一种根据支流数对河流类型进行识别和分类的方法。仅需知道河流的级别,即可推断出河流的某些特征。
“河网分级工具有两种可用于分配级别的方法。这两种方法由 Strahler (1957) 和 Shreve (1966) 提出。

在主流的GIS桌面产品中,如ArcGIS的地理处理工具中,有河网分级工具,但只有针对栅格数据的河网分级工具,该工具一般用于水系栅格数据进行矢量化提取。缺乏解决水系线矢量数据河网分级按Strahler法或Shreve法进行分级的工具。
工具原型界面示例:

工具执行结果示例:
输出新增字段“strahler”、“shreve”,记录河流分级的计算结果。分别表示按STRAHLER和SHREVE分级方法分析计算的值。同时,输出字段“node_level”,记录当前河流从源头到终点的层次。

对于水系线矢量数据,有河流分级结果,不仅能推断出河流的某些特征,还能在制图中通过对分级值分级符号渲染,展示出河流从支流到干流的汇入的渐变效果。

6.8 水系要素显示抽稀
对水网数据,按显示比例尺,逐级提取水系骨架,在制图中均匀显示水系数据。
应用场景与功能:
水系数据的处理要求中,对“显示级别”的要求为:
(1)显示级别字段“LEVEL”一般是必填;
(2)地下河段、 消失河段、 干涸河、干河床、 河道干河、坎儿井、地下渠道、暗渠、干沟、泉、漫流干河、干涸湖、干涸水库、干涸池塘、河、湖岛、水系结构线等地表不可见水系不显示, 其 LEVEL 赋值为-1;
(3)同一水系其 CLASID、 NAME、 LEVEL 属性需保持一致,MINLEVEL 有值的要素 LEVEL 赋值为 11;
(4)取值范围 11-18。

我们获取到的水系线数据,可能如如上图一样,采集粒度比较细,水系线数据就显得非常密集,尤其是水系发达的区域,更是如此。
无论是制图中对水系数据的表达,还是水文分析中对水域骨架结构的需要,都需要对水系按从干流到支流的梳理。
水系显示级别就是在这样的需求背景下,迫切需要。
河网显示抽稀工具用于解决河网在不同显示级别下,保持河流骨架和河网结构,解决水系的显示抽稀问题。极大的解决了水系线在制图过程中的数据处理工作。
工具原型界面示例:

工具执行结果示例:

6.9 水系注记字头朝北实现
解决地图中水系名称注记的排版设计字头朝北的要求。
应用场景与功能:
电子地图中水系注记(如河流名称)的排版设计有其特定的要求,以确保地图的可读性和一致性。具体要求河流左斜体,且字头朝北。
但是,在实际制图中,注记仅使用左斜体,字头朝北却很少实现(这部分有一定的难度)。
“水系注记字头朝北”工具用于解决在Geoscene Pro中制图时,注记字符朝北的需求。
工具原型界面示例:

工具执行结果示例:

6.10 创建建筑物2.5D效果
在二维地图中,实现建筑物数据的立体效果。
应用场景与功能:
我们知道,在完成地图模板的制作后,还有很多优化的工作需要处理,优化的内容一般是提升地图的美观,提高数据的表达维度,平衡多个要素之间的突出程度,以实现图面的整洁美观,酷炫突出制图主题,更容易提取地图信息,使得制图效果更加赏心悦目。
制图中,居民地图层在二维地图制图中立体效果的呈现,是非常有必要和难实现的一个优化内容。
本工具用于解决在二维地图中,建筑物呈现立体效果的需求。
工具原型界面示例:

工具执行结果示例:

6.11 居民地要素简化(直角化和规则化处理)
对居民地面数据,近似直角的节点处进行直角化处理,冗余点或复杂区域按特征分组简化。
应用场景与功能:
在地图综合和地理信息系统(GIS)中,建筑物多边形的轮廓数据是重要的空间信息之一,建筑物轮廓通常由任意折线构成,通常呈现出以下特点:
-
直角特征弱:实际建筑物通常具有直角特征,但边界由任意折线构成,缺乏直角特征。
-
点数冗余:为了精确描述边界,多边形顶点数目冗余,增加了数据处理的复杂度和存储负担。
-
规范化表达困难:数据不规范,难以满足地理信息系统(GIS)中的规范化表达要求。
这些特点不仅影响了数据的可读性和美观性,还可能导致后续分析工作中的精度问题。建筑物多边形的简化通常包括三种处理模型:化简、直角化与制图综合。
工具原型界面示例:

工具执行结果示例:
(1)消除冗余点

(2)建筑物轮廓直角化

(2)分组简化建筑物轮廓

七、应用价值
(1)省级规模的数据验证:工具箱已经在省级规模的数据上进行了验证和完善,证明了它们能够有效应对复杂的数据情况。
(2)提高项目实施效率:通过自动化和智能化的数据处理,显著提高了项目实施效率和用户体验。
(3)增强制图效果:优化制图数据处理,提升了地图的配图效果,实现了更为精细和美观的制图成果。
(4)综合性的解决方案:不仅解决了制图数据处理方面的难题,还实现了数据规范化和制图效果优化的新功能,极大地提高了项目实施效率和用户体验。
(5)易部署与高效功能:工具箱易于部署,具备全面高效的特性,能够快速应用于各种GIS项目中,支持大规模数据处理。
链接:https://pan.baidu.com/s/1dhziqLrFZ3MA4G4dzzjJ6Q?pwd=1012 提取码:1012
欢迎反馈使用过程中存在的问题、建议和新的需求。
相关文章:
基于GeoScene Pro的开源数据治理与二维制图规范化处理智能工具箱
内容导读 本文描述的是一个基于GeoScene Pro4.0/ArcGIS3.1 Pro平台的开源数据治理与二维制图规范化处理智能工具箱(免费试用,文末有获取方式),旨在解决GIS应用中数据转换、检查、治理和制图数据规范化处理方面的问题。 工具箱结合了Geoscene/ArcGIS Pr…...
CSS 设置网页的背景图片
背景 最近正好在写一个个人博客网站“小石潭记”,需要一张有水,有鱼的图片。正好玩原神遇到了类似场景,于是截图保存,添加到网站里面。以下是效果图: css 写个class,加到整个网页的body上 .bodyBg {ba…...
如何使用DockerSpy检测你的Docker镜像是否安全
关于DockerSpy DockerSpy是一款针对Docker镜像的敏感信息检测与安全审计工具,该工具可以帮助广大研究人员在Docker Hub上检测和搜索自己镜像的安全问题,并识别潜在的泄漏内容,例如身份验证密钥等敏感信息。 功能介绍 1、安全审计:…...
数据结构练习题4(链表)
1两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head [1,2,3,4]…...
【前端】如何制作自己的网站(7)
以下内容接上文。 结合图片的超链接 将img元素作为内容,放在a元素中。即可为图片添加一个超链接。 例如右边的代码,点击头像就会打开“aboutme.html“。 点击右边的图片试试~ 两个非文本元素——图片与超链接。 从现在开始࿰…...
《数字图像处理基础》学习02-BMP位图文件
目录 一,BMP文件组成 二,使用ultra edit软件查看图像结构 1,ultra edit软件的下载和安装 2,ultra edit打开图像 三,使用matlab显示RGB图像 在之前的文章学习到,计算机只能处理数字图像,因…...
车辆管理系统设计与SpringBoot技术融合
3系统分析 3.1可行性分析 通过对本车辆管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本车辆管理系统采用Spring Boot框架,JAVA作为开发语…...
常见TCP/IP协议基础——计算机网络
目录 前言常见协议基础常见协议-基于TCP的应用层协议常见协议-基于UDP的应用层协议常见协议-网络层协议习题自测1.邮件发送协议2.接收邮件协议端口3.建立连接4.层次对应关系5.FTP服务器端口 前言 本笔记为备考软件设计师时的重点知识点笔记,关于常见TCP/IP协议基础…...
SVM支持向量机python实现
支持向量机(Support Vector Machine, SVM)是一种强大的监督学习算法,主要用于分类和回归任务。SVM的核心思想是找到一个最优的超平面,使得不同类别的数据点能够被尽可能清晰地分开,并且这个超平面与最近的数据点之间有…...
linux查看系统类型
要确定系统是 Ubuntu 还是 CentOS,可以通过查看系统的发行版信息来判断。以下是几种常见的方法: 方法一:使用 cat 命令查看 /etc/os-release 文件 这个文件包含了系统的详细信息,包括发行版名称和版本号。 cat /etc/os-release…...
SpringSecurity 捕获自定义JWT过滤器抛出的异常
自定义过滤器如下: /*** jwt过滤器,验证令牌是否合法** author 朱铭健*/ Slf4j public class JwtAuthenticationFilter extends OncePerRequestFilter {Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse resp…...
中小型企业网络的设计与实现
资料下载中小型企业网络的设计与实现论文资源-CSDN文库 摘 要 本文规划的是一个公司的网络搭建,网络设计包括了多个部门的网络架构,每个部门通过VLAN进行隔离,确保了网络的安全性和高效。 华为企业网络模拟平台(ENSP)…...
小马识途海外媒体推广有何优势?
互联网让地球变得像一个村子一样,信息可以瞬间变得人尽皆知,商品和服务也同样习惯了跨国合作。中国不少物美价廉的产品在世界各地都很受欢迎,国内小资群体对国外的服饰和美妆更是偏爱有加。小马识途营销顾问认为,中国品牌不出走国…...
Spring Boot知识管理:跨平台集成方案
4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…...
逆向工程基本流程
1 逆向的基本流程 1获取目标app (官网,豌豆荚),尽量不要去华为应用市场,小米应用市场下载–多渠道打包,安装到手机上 2使用抓包工具 抓包分析(charles,fiddler…) 3使用反编译工具 (JADX,JD-GUI。。),把apk反编译成java代码,分析java代码,定位代码位置 4 使用动态分…...
target_include_directories是如何组织头文件的?
target_include_directories(mylib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 这条 CMake 命令用于指定编译目标(在此例中为 mylib 静态库)的头文件搜索路径。具体来说,这条命令的作用包括以下几个方面: 1. 添加包含目录 mylib&…...
【Flutter】Dart:运算符
在 Dart 中,运算符是非常重要的组成部分,它们可以对变量和常量进行多种运算操作。理解和掌握 Dart 中的各种运算符不仅可以帮助你编写更加高效、简洁的代码,还能更好地理解其背后的逻辑和设计。本文将深入探讨 Dart 中的运算符,包…...
ChatGPT01-preivew体验报告:内置思维链和多个llm组合出的COT有啥区别呢?丹田与练气+中学生物理奥赛题测试,名不虚传还是名副其实?
一个月前,o1发布的时候,我写了篇文章介绍 逻辑推理能力堪比博士生,OpenAI发布全新AI模型系列: o1 - 大模型或许进入新阶段,还翻译了官方的介绍 解密OpenAI o1是如何让LLMs获得逻辑推理能力的 - CoT * RL,也…...
《云计算网络技术与应用》实训6-1:配置KVM虚拟机使用NAT网络
任务1、计算节点基础环境准备 1. 使用VMware安装CentOS 7虚拟机,安装时记得开启CPU虚拟化,命名为“KVMC6”。 2. (网卡配置和之前的一样,都用100网段)网关设置为192.168.100.1,地址段为192.168.100.10-25…...
【Unity新闻】Unity 6 正式版发布
Unity CEO Matt Bromberg 在今天自豪地宣布,Unity 6 正式发布!作为迄今为止最强大和稳定的版本,Unity 6 为游戏和应用开发者提供了大量的新功能和工具,帮助他们加速开发并提升性能。 本次正式版是6.0000.0.23f1(LTS&a…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...


