ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

按位置选择图层

  • 描述
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

根据与另一个图层中的要素的空间关系来选择本图层中的要素。

将根据选择要素图层或要素类中的要素评估输入要素图层中的各个要素;如果满足指定的关系,输入要素即会被选择。

关系图示例

使用方法

  • 输入必须是要素图层;不可以是要素类。

  • 该工具可用于 ArcMap、ArcGlobe 或 ArcScene 中的图层,也可用于使用创建要素图层工具在模型和脚本中创建的图层。

  • 用来评估空间关系的坐标系可能会对结果产生影响。在一个坐标系中相交的要素在另一个坐标系中可能相交,也可能不相交。

    • 此工具可在输入要素图层数据源(磁盘上的要素类)的坐标系中评估空间关系。设置输出坐标系环境以评估不同坐标系中的空间关系。

  • 可使用该工具根据要素与同一图层内其他要素的空间关系来选择要素。欲获取相关示例,请参阅在图层内按位置选择。

  • 获取计数工具可用于获取按位置选择图层工具所选择的要素的数量。作为自动化工作流的一部分(即脚本或模型),此工具可用于在继续做进一步分析之前确定是否有要素与目标空间关系匹配。

  • 有关使用三维空间关系 INTERSECT_3D 和 WITHIN_A_DISTANCE_3D 的详细信息,请参阅按 3D 位置关系选择。

语法

arcpy.management.SelectLayerByLocation(in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
参数说明数据类型
in_layer

包含将根据 select_features 进行评估的要素的图层。选择将应用于该图层。输入不能为磁盘上某个要素类的路径。

Feature Layer; Mosaic Layer; Raster Catalog Layer
overlap_type
(可选)

要评估的空间关系。

  • INTERSECT —如果输入图层中的要素与某一选择要素相交,则会选择这些要素。这是默认设置。
  • INTERSECT_3D —如果输入图层中的要素与三维空间(x、y 和 z)中的某一选择要素相交,则会选择这些要素。
  • WITHIN_A_DISTANCE —如果输入图层中的要素在某一选择要素的指定距离内,则会选择这些要素。在搜索距离参数中指定距离。
  • WITHIN_A_DISTANCE_3D —如果输入图层中的要素在三维空间中的某一选择要素的指定距离内,则会选择这些要素。在搜索距离参数中指定距离。
  • WITHIN_A_DISTANCE_GEODESIC —如果输入图层中的要素在某一选择要素的指定距离内,则会选择这些要素。将通过测地线方法计算要素间的距离,这种方法会考虑地球的曲率,并可以正确处理日期变更线和两极附近及之间的数据。
  • CONTAINS —如果输入图层中的要素包含某一选择要素,则会选择这些要素。
  • COMPLETELY_CONTAINS —如果输入图层中的要素完全包含某一选择要素,则会选择这些要素。
  • CONTAINS_CLEMENTINI —该空间关系产生的结果同 COMPLETELY_CONTAINS,但下列情况例外:如果选择要素完全位于输入要素的边界上(没有任何一部分完全位于里面或外面),则不会选择要素。Clementini 将边界面定义为用来分隔内部和外部的线,将线的边界定义为其端点,点的边界始终为空。
  • WITHIN —如果输入图层中的要素在某一选择要素内,则会选择这些要素。
  • COMPLETELY_WITHIN —如果输入图层中的要素完全位于或包含在某一选择要素内,则会选择这些要素。
  • WITHIN_CLEMENTINI —结果同 WITHIN,但下述情况例外:如果输入图层中的要素完全位于选择图层中要素的边界上,则不会选择该要素。 Clementini 将边界面定义为用来分隔内部和外部的线,将线的边界定义为其端点,点的边界始终为空。
  • ARE_IDENTICAL_TO —如果输入图层中的要素与某一选择要素相同(就几何而言),则会选择这些要素。
  • BOUNDARY_TOUCHES —如果输入图层中要素的边界与某一选择要素接触,则会选择这些要素。如果输入要素为线或面,则输入要素的边界只能接触选择要素的边界,且输入要素的任何部分均不可跨越选择要素的边界。
  • SHARE_A_LINE_SEGMENT_WITH —如果输入图层中的要素与某一选择要素共线,则会选择这些要素。输入和选择要素必须是线或面。
  • CROSSED_BY_THE_OUTLINE_OF —如果输入图层中的要素与某一选择要素的轮廓交叉,则会选择这些要素。输入和选择要素必须是线或面。如果将面用于输入或选择图层,则会使用面的边界(线)。将选择在某一点交叉的线,而不是共线的线。
  • HAVE_THEIR_CENTER_IN —如果输入图层中要素的中心落在某一选择要素内,则会选择这些要素。要素中心的计算方式如下:对于面和多点,将使用几何的质心;对于线输入,则会使用几何的中点。
String
select_features
(可选)

输入要素图层中的要素将根据它们与此图层或要素类中要素的关系进行选择。

Feature Layer
search_distance
(可选)

仅当 overlap_type 参数设置为以下其中一项时,该参数才有效:WITHIN_A_DISTANCE_GEODESIC, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN, CONTAINS, 或 WITHIN。

如果使用了 WITHIN_A_DISTANCE_GEODESIC 选项,则应使用线性单位(如公里或英里)。

Linear unit
selection_type
(可选)

确定如何将选择内容应用于输入,以及如何同现有选择内容进行组合。注意:此处没有用于清除现有选择内容的选项。要清除选择内容,请使用按属性选择图层工具上的 CLEAR_SELECTION 选项。

  • NEW_SELECTION —生成的选择内容将替换任何现有选择内容。这是默认设置。
  • ADD_TO_SELECTION —当存在一个选择内容时,会将生成的选择内容添加到现有选择内容中。如果不存在选择内容,该选项的作用同 NEW_SELECTION 选项。
  • REMOVE_FROM_SELECTION —将生成的选择内容从现有选择内容中移除。如果不存在选择内容,该操作将不起作用。
  • SUBSET_SELECTION —将生成的选择内容与现有选择内容进行组合。只有两者共同的记录才会被选取。
  • SWITCH_SELECTION —切换选择内容。将所选的所有记录从选择内容中移除,将未选取的所有记录添加到选择内容中。选择该选项时,将忽略 select_features 和 overlap_type 参数。
String
invert_spatial_relationship
(可选)

评估空间关系后,此选项可用于确定按原样使用结果还是反向使用结果。例如,可使用此选项快速获取不相交或与另一数据集中的要素不在一定距离范围内的要素的列表。

  • NOT_INVERT —不会反转查询结果。这是默认设置。
  • INVERT —将反转查询结果。如果使用 selection_type 选项,将在选择内容与现有选择内容组合之前进行反转。
Boolean

派生输出

名称说明数据类型
out_layer_or_view

已应用选择的已更新输入。

要素图层;栅格目录图层;镶嵌图层

代码示例

SelectLayerByLocation 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 SelectLayerByLocation 函数。

import arcpy
# First, make a layer from the feature class
arcpy.MakeFeatureLayer_management("c:/kamsack.gdb/parcel", "parcel_lyr")
# Then add a selection to the layer based on location to features in another feature class 
arcpy.SelectLayerByLocation_management("parcel_lyr", "have_their_center_in", "c:/kamsack.gdb/city_limits")
SelectLayerByLocation 示例 2(独立脚本)

以下独立脚本显示了如何在工作流中使用 SelectLayerByLocation 函数,以便根据位置和属性查询提取要素并将其导入一个新要素类中。

# Name: ExtactFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a Location and an attribute query
# Import arcpy and set path to data
import arcpy
arcpy.env.workspace = "c:/data/mexico.gdb"
# Make a layer and select cities which overlap the chihuahua polygon
arcpy.MakeFeatureLayer_management('cities', 'cities_lyr') 
arcpy.SelectLayerByLocation_management('cities_lyr', 'intersect', 'chihuahua')
 
# Within the previous selection sub-select cities which have population > 10,000
arcpy.SelectLayerByAttribute_management('cities_lyr', 
                                        'SUBSET_SELECTION', 
                                        '"population" > 10000')
# If features matched criteria write them to a new feature class
matchcount = int(arcpy.GetCount_management('cities_lyr')[0]) 
if matchcount == 0:
    print('no features matched spatial and attribute criteria')
else:
    arcpy.CopyFeatures_management('cities_lyr', 'chihuahua_10000plus')
    print('{0} cities that matched criteria written to {0}'.format(
                                                  matchcount, chihuahua_10000plus))

环境

  • 当前工作空间
  • 输出坐标系

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题

  • 图层和表视图工具集概述
  • 使用图层和表视图
  • 使用图层和表视图
  • 创建和使用图层选择
  • 使用“按位置选择”(ArcMap 对话框)

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明