利用ArcToolBox ModelBuider进行数据处理
有一批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-One
4)设置结果字段 - 生成结果表
1)添加Table Select工具
2)设置Expression为Join_Count <> 1(结果表中仅保存不符合标准的数据)
制作完毕的模型如下图:
双击运行界面如下图:
检查结果:
- 从图中可以看到,蓝色为符合标准的数据,其它颜色不符合标准。
1)存在把一条路的路名按照多个文本标准的情况
2)存在没有标注路名的情况。 - 检查结果表中仅记录了不符合标准的要素的CAD实体handle,可以把检查结果表提供给数据处理人员,方便修改数据。