基于AutoCAD的DLG自动化质量检查探究
2014-08-05詹必伟
詹必伟,高 颖,翟 翔,李 涛
(成都市规划信息技术中心,四川成都 610041)
基于AutoCAD的DLG自动化质量检查探究
詹必伟,高 颖,翟 翔,李 涛
(成都市规划信息技术中心,四川成都 610041)
一、引 言
DLG产品为满足日益广泛的前端应用,其定位不能拘泥于传统的制图模式,需同时满足制图与建库的需求。某城市1∶2000 DLG产品采用Auto-CAD格式存储,并以扩展属性的方式录入社会经济相关属性。其图幅编号由基本图号和尾号两部分组成。采用1∶5000图廓西南角点的平面坐标千米数(用阿拉伯数字)作为基本图号;在基本图号基础上,按从左至右、从上到下的顺序,附加一个子号数字(用罗马数字Ⅰ、Ⅱ、Ⅲ、Ⅳ)构成1∶2000的图幅编号。
DLG生产标准主要以地理要素编码为纲,规定地理要素的所在层名、几何类型,以及相关参数(线型、字体样式、色号)、属性(属性名称、属性值类型)等信息。质量检查工具将DLG生产标准作为检查的依据,将相关信息纳入可配置的后台数据库中(以下称为标准库)。该工具利用VB.NET开发环境,基于AutoCAD、Microsoft Access等软件进行开发,实现批量自动化检查功能,并将检查结果输出为报表。
二、幅内检查内容
幅内检查模块可根据指定路径自动搜索该路径及其子文件夹下的待检文件,以实现批量自动化无人值守的检查。
1.图层检查
图层检查依据标准库,检查图层名称、默认色号等信息是否正确,是否存在多余或非标准的图层。
2.要素属性特性检查
要素属性特性检查包含两个方面:
1)属性字段正确性和完整性检查:依据标准库,检查各地理要素属性表中字段名称、字段类型、字段顺序等信息是否正确,是否存在缺少字段和冗余字段的问题,以保证属性表结构的正确性和完整性,为以后的数据格式转换和数据建库工作把关。
2)属性值的正确性和有效性检查:依据标准库,检查必填属性字段是否均已录入属性值,属性值类型是否正确,属性值是否有效(如枚举型的属性值是否在枚举范围之内、等高线高程值是否符合自身规律)等。
3.要素几何特性检查
要素几何特性检查包含几何类型检查(包含线型、文字样式、宽度比例、倾斜角度等)、微小碎线检查、重复性检查、线自相交检查等。几何类型检查是依据标准库,检查要素对应的几何类型是否正确,包含线型、文字样式、宽度比例、倾斜角度、符号样式等信息的检查。微小碎线检查是根据人为设定的阈值对异常短的线段进行检查,以减少数据冗余。下面详细介绍重复性检查和线自相交检查。
(1)重复性检查
要素重复是指属性完全相同的多个要素在空间形态上存在异常压盖的现象。重复性检查是以要素为核心,生成一定的缓冲区,在缓冲区内搜素重复要素。缓冲区内属性完全相同的文字、点、块等以定位点形式表达的要素,依据其定位点进行重复性判断。缓冲区内属性完全相同的线(面)要素的重复性判断是将两条不同折线分别按照其连接顺序分解为多条两点组成的线段,两两判断分别来源于这两条折线的线段是否重复,以此实现对两条折线重复情况的判断,这就将两折线重复性判断转换为两线段重复性判断。
两条线段重复有3种情形:完全重合、部分重复、包含关系,如图1所示。线段A的两个端点为P1(x1,y1)、P2(x2,y2),线段B的两个端点为P3(x3,y3)、P4(x4,y4),其重复有3种情形:完全重合、部分重复、包含。两线段重复判定步骤如下:
图1 线段重复的3种情形
1)判断A、B两线段是否平行(斜率相同)。两线段重复则其必定平行,但平行的两线段不一定重复。平行是两线段重复的必要条件,不平行(斜率不同)的两线段一定不重复。两线段平行算法如下:若y1=y2且y3=y3,则两线段平行且平行于x轴;若y1≠y2且y3=y3,或y1=y2且y3≠y3,则两线段不平行;若y1≠y2、y3≠y4且(x1-x2)/(y1-y2)=(x3-x4)/(y3-y4),则两线段平行,否则两线段不平行。
A、B两线段不平行(斜率不同)则可认为一定不重复,只有平行的两线段才进入步骤2)运算。
2)遍历判断A、B两线段端点是否在对方的线段上。判断点是否在线上,可以通过判断点到线段两个端点的距离之和是否等于线段的长度。若两者相等,则点在线段上;否则,点不在线段上。如若则可判定P1在B线段上。
3)根据端点在对方线段上的情况判定两线段是否重复:若B线段的端点只有一个在A线段上,A线段的端点也只有一个在B线段上,且两点不重合,则两线段部分重复;若B线段的端点两个都在A线段上,或A线段的端点两个都在B线段上,则A包含B或B包含A;若B线段的端点两个都在A线段上,且A线段的端点两个都在B线段上,则两线完全重合。
以上3种情形可判定为两线重复,否则判定为不重复。
(2)线自相交检查
线自相交的定义:设有折线l={P1,P2,…,Pn},Pi(i=1,2,…,n)是折线上顺次连接线段的端点。若除了相邻线段间的连接端点P1,P2,…,Pn外,折线上的线段还存在其他交点,则定义此折线为自相交折线。
线自相交检查算法:对于折线l上的线段,按照其连接顺序分解为多条两点组成的线段,两两判断这些线段是否相交,并根据交点情况来判断折线l是否自相交,将问题转换为两线段的相交问题。
折线n={P1,P2,P3,P4,P5,P6}由K1{P1,P2}、K2{P2,P3}、K3{P3,P4}、K4{P4,P5}、K5{P5,P6} 5条线段组成(如图2所示),利用AutoCAD提供的IntersectWith函数两两线段进行判断,若相交且交点不是两线段的端点,则判定折线n自相交。
图2 自相交线
三、幅间接边检查
图幅接边检查主要针对线要素、面要素进行检查,根据工程文件路径及图幅编号命名规则自动打开主图幅文件及与其接边的副图幅文件,并按照一定的阈值生成东南西北4个缓冲区(如图3所示)。检查分为两步:①对同一缓冲区内的主、副图幅中编码相同的实体(同类型地物)采用两两遍历的方式,通过几何匹配度进行定标,确定其是否为同一地理要素;②对其进行属性检查,检查两者属性是否一致。接边检查的关键点是几何匹配度定标,找到配对的地理要素,线要素和面要素采取不同的方式。
图3 缓冲区示意图
1.线要素几何匹配算法
遍历缓冲区内主图幅的线要素实体(以下称为主体要素),在缓冲区内遍历搜索副图幅中具有相同编码的线要素(以下称为副体要素),并遍历计算主体要素节点与副体要素节点的欧式距离,最小距离即可代表主、副体要素的距离。与主体要素距离最小的副体要素作为疑似匹配实体,若该距离小于设定的阈值,则认为是几何匹配的,即两者表达的是同一地物要素。
2.面要素几何匹配算法
面要素几何匹配通过线要素的匹配实现,遍历缓冲区内主图幅的面要素实体(以下称为主体要素),在缓冲区内遍历搜索副图幅中具有相同编码的面要素(以下称为副体要素)。主体要素生成小阈值的缓冲区,求其与接边线的交线(主交线),并采用同样的方法产生副体要素与接边线的交线(副交线),同时算出主交线与副交线的重合部分(重合线)(如图4所示)。通过主交线、副交线、重合线三者关系来判定几何匹配度,将面要素几何匹配的问题转换为线要素来处理。若主交线与重合线长度之差或副交线与重合线长度之差在设定的阈值范围内,则认为两者长度相等。
图4 主交线、副交线、重合线示意图
面要素几何匹配判定规则如下:
1)若主交线与副交线无重合,即主交线与副交线是相离关系,则判定两者几何不匹配,即两者表达的不是同一地理要素。
2)若重合线长度等于主交线长度,且等于副交线长度,即主交线与副交线是等于关系(如图5所示),则判定两者几何匹配,即两者表达的是同一地理要素。
3)若重合线长度等于主交线或副交线长度,但小于另一交线的长度,且重合线长度大于设定的阈值,即主交线与副交线是包含关系(如图5所示),则判定两者几何匹配,即两者表达的是同一地理要素。
4)若重合线长度小于主交线和副交线长度,且重合线长度大于设定的阈值,即主交线与副交线是相交关系(如图5所示),则判定两者几何匹配,即两者表达的是同一地理要素;若重合线长度小于设定的阈值,则判定两者几何不匹配,即两者表达的不是同一地理要素。
图5 主交线、副交线关系示意图
四、结束语
相比传统的人工检查方式,质量检查工具在一定程度上提高了工作效率和检查结果的准确性,为DLG成果入库工作奠定了基础,但也存在不足之处。
在相关算法的实现过程中,需要设定阈值进行判断,不合理的阈值会导致检查结果的异常,因此,阈值的设定需要进行反复试验;同时,一些算法的实现过程中未充分考虑少数特殊情况,因此,检查结果的准确率虽然较高,但不能保证百分之百正确,算法还需进一步优化完善。
[1]黄海英,钟生伟,胡景海.DLG质量检查探究[J].地理空间信息,2009,7(6):135-137.
[2]周建康,冷泠,王瑞青.AutoCAD中判断折线自相交的一种快速算法[J].城市勘测,2012(1):84-86.
[3]赵江洪.GIS中多幅图自动接边功能的算法实现[J].测绘通报,2005(9):32-34.
[4]张昭云,夏启兵,许志海.基于线要素的图幅自动接边问题的探讨[J].测绘学院学报,2001,18(9):77-80.
[5]张振利,孙建华.数字地图自动接边实现[J].北京测绘,2008(2):27-31.
[6]霍春玲,刘达.AutoCAD数据接边检查自动化的实现[J].测绘工程,2006,15(4):74-76.
[7]廖振环,左志进,魏德照.DLG数据接边检查的设计与实现[J].地理空间信息.2009,7(4):60-62.
[8]戴相喜,周卫,高磊.DLG数据任意范围接边算法及实现[J].测绘通报,2008(7):32-35.
[9]华慧,童小华.数字化地图的自动接边及其精度[J].同济大学学报,2000,28(1):33-36.
[10]刘庆元,周容.一种基于ArcGIS Engine的线状图幅接边方法[J].计算机时代,2008(2):4-5.
Exploration of DLG Quality Check Based on AutoCAD
ZHAN Biwei,GAO Ying,ZHAI Xiang,LI Tao
介绍基于AutoCAD和Microsoft Access工具软件在VB.NET环境中开发实现的DLG质量检查工具。该工具实现了批量自动化检查功能,包含幅内检查和幅间检查两大模块,对DLG进行实体的属性和几何拓扑等质量要素的检查,并将检查结果输出为报表。
数字线划图;质量检查;AutoCAD
P208
B
0494-0911(2014)10-0111-03
2014-06-30
詹必伟(1979―),男,湖北仙桃人,硕士,工程师,主要从事3S技术在城市规划中的应用。
詹必伟,高颖,翟翔,等.基于AutoCAD的DLG自动化质量检查探究[J].测绘通报,2014(10):111-113.
10.13474/j.cnki.11-2246. 2014.0344