利用ArcToolBox ModelBuider进行数据处理

it2022-05-05  138

有一批CAD图,包括了道路中心线和规划地块数据。道路中心线需要有文本标注,且每条道路必须标注一个道路名称文本。规划地块也需要包含标注,且一个规划地块有一个标注。

数据如下图:

需要检查数据是否满足标准,而且数据的标准有可能不一致,如:A图的道路中心线在ZX层,B图的在ZXX层。按照以往的做法,打开VS,建立工程,引入Esri的dll,然后是痛苦的Coding+调试过程。

下面我来讲一下如何使用ArcToolBox来完成这个任务。首先分析,我们需要完成以下几步:

打开CAD文件将识别道路中心线道路中心线缓冲识别文本注记利用道路缓冲区判断落入缓冲区的注记生成结果表

具体操作:

添加变量,设置数据类型为Cad Drawing DataSet识别道路中心线:1)添加Select Data工具,设置Child Data Element等于"POLYLINE"。设置为模型参数2)添加Make Layer工具,设置InputFeatures等于之前从CAD文件中选择出来的的Polyline数据3)由于道路中心线所在图层不确定,需要实时修改,添加变量,类型为String,名字修改为“道路中心线图层名”,设置为模型参数。Make Layer工具的Express选择该变量道路中心线缓冲1)添加Buffer工具,设置Input features等于识别出来的道路中心线2)设置输出路径3)设置缓冲参数:右键点击buffer工具,Make Variable——From Parameters——Distance。设置为模型参数识别文本注记操作类似识别道路中心线空间关系判断1)添加Sptial Join工具,设置Taget Features为道路中心线缓冲后的结果数据;2)设置Join Feautres为标注图层数据3)Join Operation选择 One-To-One4)设置结果字段生成结果表1)添加Table Select工具2)设置Expression为Join_Count <> 1(结果表中仅保存不符合标准的数据)

制作完毕的模型如下图:

双击运行界面如下图:

检查结果:

从图中可以看到,蓝色为符合标准的数据,其它颜色不符合标准。1)存在把一条路的路名按照多个文本标准的情况2)存在没有标注路名的情况。检查结果表中仅记录了不符合标准的要素的CAD实体handle,可以把检查结果表提供给数据处理人员,方便修改数据。

转载于:https://www.cnblogs.com/ITGIS/archive/2010/11/15/1877718.html


最新回复(0)