【ModuleBuilder】GP服务实现SDE中两个图层相交选取

本文介绍了如何通过ArcGIS Geoprocessing Services(GP服务)实现指定范围线筛选目标要素类中相交要素的功能。首先,推荐使用【数据管理工具-图层与表视图-按空间位置选择图层】来判断相交,而非【分析工具-叠加分析-相交】,因为前者不生成中间要素类且效率更高。其次,详细阐述了如何连接SDE数据并构建GP工具流,包括使用MakeFeatureLayer指定要素图层,按空间位置选择相交要素,然后剔除共边要素。最后,给出了实现这一功能的GP工具流程,并提供了示例GP工具下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 需求

SDE中保存两个要素类,一个是范围线数据,一个是目标要素数据。需要使用GP服务实现一个功能,即指定范围线要素类中的一个要素,自动筛选出目标要素类中与范围线存在相交关系的要素,并返回相交要素的属性信息。

1 思路

需要解决几个问题:

  1. 使用什么分析方法来判断要素之间的相交关系?
  2. 如何让GP服务能调用SDE中的数据?

关于问题1:

判断相交关系最直截了当的方法是使用【分析工具-叠加分析-相交】工具,这种方式没有大问题,但它需要生成中间要素类,并且相对而言耗时较长,不是好的解决方案。一个推荐的方式是使用【数据管理工具-图层与表视图-按空间位置选择图层】工具,该工具同样可实现复杂的空间关系选择,不产生中间要素类且耗时短。

判断相交关系的时候还需要注意一点,在使用【按空间位置选择图层】工具判断相交要素时,与范围线共边的要素类会同样被判定为相交,需要在搜索结果中剔除这种特殊情况。

关于问题2:

调用SDE中的数据的前提是连接SDE,可以生成SDE连接文件保存至特定路径并将该绝对路径指定给GP工具。

2 实现

GP工具流如图所示:

在这里插入图片描述

该工具流中,上方支路为目标要素类,下方支路为范围线要素类。两者相交于【按空间位置选择图层】,之后剔除共边要素类,得到目标结果。对各步骤做出详述:

步骤1:指定要素图层

Make Feature Layer工具即指定要素图层,将要素类转为要素图层,使之成为后续【按空间位置选择图层】工具的输入类。

上方支路中Dest_Name作为Make Feature Layer工具的前置条件,表示目标要素类的名字,用于动态地指定使用SDE中那个要素类作为目标要素,可以提升整个GP工具的复用性。

在这里插入图片描述上方支路中Dest是一个字符串变量,用于设置SDE要素类的位置,内容为SDE连接文件及其内部要素类的绝对路径。
在这里插入图片描述上方支路中Make Feature Layer输入变量为Dest,输出Dest_Layer
在这里插入图片描述上方支路整体思路与上方支路类似,唯一的差别是增加Code变量的输入,该变量用于构造SQL语句从而筛选范围线要素类中特定的一个要素。该变量指定为GP工具的输入参数,确保发布服务后能从前端指定该参数。
在这里插入图片描述

步骤2:按位置选择图层

该环节将Dest_LayerExtent_Layer均选择为输入,空间关系选择INTERSECT
在这里插入图片描述

步骤3:剔除共边要素

输入步骤2的选择结果,空间关系选择【边相交】,再次输入范围线,选择类型选择为【从已选结果中剔除】。将该步骤的处理结果设定为输出参数,确保发布GP服务后前端可获取处理结果。
在这里插入图片描述在这里插入图片描述

步骤4:执行工具并发布服务

按部就班完成GP服务发布

3 示例GP工具下载

CSDN资源下载地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值