查找现有位置

查找现有位置查找现有位置工具用于选择研究区域中满足一系列基于空间或属性查询的条件的要素。

工作流示意图

“查找现有位置”工作流示意图

术语

术语描述

空间查询

空间关系查询。

属性查询

字段值查询。

示例

  • 某家投资公司已购买了一小型连锁杂货店,并在为新的配送中心寻找位置。 该配送中心将需要至少 20 英亩的空地,位于高速公路 1 英里范围以内和洪水区之外。 查找现有位置可用于选择城市中符合这些条件的所有地块。

  • 一名 GIS 分析师正在执行风力发电厂建厂申请的初步审查,以决定要提交哪些提案进行进一步的评估。 她的条件是,提案的区域必须有道路通行,并且不能建在自然保护区或其视野范围内。 查找现有位置可用于选择满足所有条件的位置。

  • 城市警方正在执行分析,以确定暴力犯罪是否与失业率有关。 将为暴力犯罪和失业多发区域内的高中执行扩展的暑期工作计划。 查找现有位置可用于选择位于距整治区域四分之一英里范围内的高中。

用法说明

需要单个输入点、线或面要素。 仅输入可查询的图层,除非有另一图层通过空间连接而添加。

可通过添加表达式来构建查询。 可添加多个表达式,包括空间和属性查询的组合。 会将输入图层中满足表达式的要素写入结果图层。

存在多种可用于属性查询的运算符,具体取决于您所查询的字段是分类字段还是数字字段。

如果字段为分类字段,则可以使用以下运算符:

  • 不等于
  • 开头是
  • 结尾是
  • 包含
  • 不包含
  • 为空
  • 不为空

如果字段为数字字段,则可以使用以下运算符:

  • 不等于
  • 最小为
  • 小于
  • 最大为
  • 大于
  • 介于
  • 不介于
  • 为空
  • 不为空

有关构建属性表达式的详细信息,请参阅查找现有位置的工作原理部分。

可以在空间查询中使用以下空间表达式:

  • 相交
  • 不相交
  • 某一距离范围内
  • 不在某一距离范围内
  • 完全包含
  • 不完全包含
  • 完全位于
  • 不完全位于
  • 最邻近

有关构建空间查询的详细信息,请参阅查找现有位置的工作原理部分。

可使用添加表达式按钮将多个表达式添加至查询。 可使用 andor 作为运算符来组合表达式。

如果选中使用当前地图范围,则仅分析当前地图范围中可见的输入图层要素。如果未选中,则将对所有要素进行分析,包括超出当前地图范围的要素。

“查找现有位置”的工作原理

构建表达式

要构建表达式,请单击添加表达式按钮打开添加表达式对话框。

属性表达式

使用位置(属性查询)作为表达式类型来创建属性表达式。

添加属性表达式示例
属性表达式的“添加表达式”对话框

数值描述
输入图层

此处列出了可在表达式中使用的图层。 最初,只能选择分析图层。 在建立与其他图层的空间关系之后(例如,Parcels completely within City Boundaries),下拉菜单中将列出其他图层。

表达式类型

这是表达式类型。 对于属性表达式,请选择位置(属性查询)

字段

从列表中选择要查询的字段。

运算符

为表达式选择运算符。

值、字段或唯一值

  • 如果想根据特定值查找要素,请选择,然后在输入框中输入值。
  • 如果想要对一个字段中的值和另一个字段中的值进行比较,则选择字段,单击下拉箭头,然后选择表达式的字段。 例如,在上面的屏幕截图中,将查找 POP UNDER 18 的值大于 POP OVER 18 的值的要素。
  • 如果想要根据为表达式选择的字段中的特定值查找要素,可选择唯一值,然后从字段中选择唯一值。 唯一值过滤器要求要素服务使用 ArcGIS Pro 或者 ArcGIS 10.1 for Desktop 或更高版本进行发布。

注:

如果任意图层应用了过滤器,则只有满足过滤表达式的要素才会应用到分析中。

空间表达式

空间表达式是通过选择诸如完全位于相交等表达式类型(完整的列表可在空间表达式类型部分中找到)创建的。

在选择空间表达式类型时,添加表达式对话框会根据您选择的表达式类型而有所改变。

空间表达式
空间表达式的“添加表达式”对话框

数值描述
第一个图层

第一个图层。 最初,只能选择分析图层。 在建立与其他图层的空间关系之后(例如,Parcels completely within Community Boundaries),下拉菜单中将列出其他图层。

表达式类型

空间表达式类型。 有关每种空间表达式类型的详细信息,请参阅下文

第二个图层

第二个图层。 这些是地图中的其他图层。

已完成查询示例

本示例查询摘自 Understanding GIS 和 An ArcGIS Project Workbook 一书。 此书的前提是假设您正在洛杉矶市寻找适合开发为公园的闲置宗地。 合适的公园位置需满足以下条件:

  • 宗地必须闲置。
  • 其位置必须在洛杉矶市范围内。
  • 其面积必须大于一英亩。
  • 宗地中的一些部分必须距离洛杉矶河 0.75 英里以内。
  • 宗地必须至少距现有的公园 0.25 英里远。

以下截图显示了如何使用名为 ParcelsRiversCity Boundaries 的图层基于以上条件进行查找现有位置查询:

用于查找宗地的查询

注:

  • 表达式的顺序并不影响分析结果。
  • 可通过单击分组与取消分组按钮 分组与取消分组对表达式进行分组与取消分组。 要创建分组,请选择两个或两个以上表达式,然后单击分组按钮。 有关分组的详细信息,请参阅查找现有位置的工作原理中的分组主题
  • 单击 and 可以将运算符切换为 or。 单击 or 可以将运算符切换为 and

空间表达式类型

空间表达式可在两个图层之间建立关系。 如果需要在同一图层的要素之间建立空间关系(例如,希望选择在工业用宗地某一距离范围内的闲置宗地),请复制宗地图层并将其添加到您的地图中,这样您便拥有两个使用同一宗地要素的图层。

在某一距离范围内/不在某一距离范围内

在某一距离范围内

在某一距离范围内的关系使用第一个图层中要素与第二个图层中要素之间的直线距离。

  • 在某一距离范围内 - 如果第一个图层中的要素的任意部分处在第二个图层中要素的特定距离范围内,则选择第一个图层中的要素(包括到输出中);例如,位于河流 100 米距离范围内的宗地将包括到输出中。
  • 不在某一距离范围内 - 如果第一个图层中的要素在另一要素的某一距离范围内,则将排除第一个图层中的要素(不将其包括到输出中);例如,位于河流 100 米距离范围内的宗地将不会包括到输出中。 您可将此关系视为“距离大于”。

注:

计算的距离为要素最近部分之间的距离。 在以上示例中,宗地必须位于洛杉矶河 0.75 英里范围内,如果宗地任意部分在 0.75 英里范围内,则选择该宗地。 如果条件为整个宗地必须在 0.75 英里距离范围内,则应使用创建缓冲区工具在洛杉矶河 0.75 英里距离范围内创建新图层。 然后,创建一个宗地完全位于缓冲图层范围内的表达式。

完全包含/不完全包含

完全包含

如果第一个图层中的要素能够完全包围第二个图层中的要素,则第一个图层中的要素通过该测试。 被包含的要素不得有任何部分位于包含要素之外;但允许被包含要素与包含要素相接触(即,沿边界共享公共点)。

  • 完全包含 - 如果第一个图层中的要素包含第二个图层中的要素,则会将第一个图层中的要素包括到输出中。
  • 不完全包含 - 如果第一个图层中的要素包含第二个图层中的要素,则不会将第一个图层中的要素包括到输出中。

注:

可将此包含关系用于点和线。 例如,您拥有街道中心线(线)图层和检修孔盖(点)图层,且您希望查找包含检修孔盖的街道。 可以使用完全包含来查找包含检修孔盖的街道,但为了使线能够包含点,点必须正好位于该线上(即,在 GIS 术语中,它们互相捕捉)。 如果对此存在任何疑问,请在某一距离范围内关系中使用适当的距离值。

完全位于/不完全位于

完全位于

如果第一个图层中的要素能够被第二个图层中的要素完全包围,则第一个图层中的要素通过该测试。 第一个图层中的整个要素都必须位于包含要素之内;但允许这两个要素相接触(即,沿边界共享公共点)。

  • 完全位于 - 如果第一个图层中的要素完全位于第二个图层的要素中,则会将第一个图层中的要素包括在输出中。
  • 不完全位于 - 如果第一个图层中的要素完全位于第二个图层的要素中,则不会将第一个图层中的要素包括在输出中。

注:

和包含关系一样,此范围内关系也可用于点和线。 例如,您的第一个图层中包含表示检修孔盖的点,且您希望查找位于街道中心线上的检修孔(相对于停车场或其他非街道要素)。 可以使用完全位于来查找街道中心线中的检修孔点,但为了使点能够包含线,点必须正好位于该线上(即,在 GIS 术语中,它们互相捕捉)。 如果对此存在任何疑问,请在某一距离范围内关系中使用适当的距离值。

相交/不相交

Intersects

如果第一个图层中的要素与第二个图层中要素的任何部分相重叠,包括相接触(要素共享公共点),则第一个图层中的要素将通过此相交测试。

  • 相交 - 如果第一个图层中的要素与第二个图层中的要素相交,则会将第一个图层中的要素包括到输出中。
  • 不相交 - 如果第一个图层中的要素与第二个图层中的要素相交,则不会将第一个图层中的要素包括到输出中。

最邻近

最邻近

如果第一个图层中的要素最邻近第二个图层中的要素,则第一个图层中的要素通过该测试。

  • 最邻近 - 如果第一个图层中的要素最邻近第二个图层的要素,则会将第一个图层中的要素包括在输出中。

分组

可使用分组按钮 分组将两个或两个以上的连续表达式分为一组。 使用 Shift + 单击选择要分组的多个表达式。

下面是一个需要进行分组的示例:

  • 您拥有包含有毒化学物质的站点的点图层。 每个点都具有属性 CHEMICAL,其中包含该站点中已知存在的有毒化学物质的名称。
  • 您希望查找位于河流附近的含 MERCURYSELENIUM 的有毒站点。
  • 您还希望查找位于公园附近的含 BENZENELEAD 的有毒站点。

上述示例在同一有毒站点图层中创建了两组要素:公园附近的有毒站点和河流附近的有毒站点。 这两组要素彼此之间是独立的。

由于河流附近的有毒站点组与公园附近的有毒站点之间是独立的,您可能希望使用分组来构建查询。 图 1 显示了未进行逻辑运算符(逻辑运算符均为 and)的任何分组或修改的初始查询。 此查询的结果是同时位于公园及河流一千米范围内的有毒站点。 这并不是我们想要的结果;我们希望得到一组位于河流一千米距离范围内的有毒站点,以及另一组位于公园一千米距离范围内的有毒站点。

初始查询
图 1:初始查询

要构建满足上述条件的查询,需要创建分组。 每个分组构成一个子查询,其结果将与之前的表达式相结合。

由选择前两个属性表达式开始,如图 2 所示。

选择第一组属性表达式
图 2:选择第一组属性表达式。

在选择这两个属性表达式后,单击分组按钮 分组。 该分组会发生缩进,如图 3 所示。

选择第二组属性表达式,如图 3 所示。

选择下一组属性表达式
图 3:选择第二组属性表达式。

在选择第二组之后,单击分组按钮。

最后,选择第二组属性表达式及其所属的空间表达式,如图 4 所示。

选择第二组属性表达式及其所属的空间表达式
图 4:选择第二组属性选择及其所属的空间表达式。

单击分组按钮,查询会发生缩进,如图 5 所示。 最后一步,将 and 切换为 or,如图 5 所示。

初始查询
图 5:最终查询

图 5 中显示的查询将生成所需的结果。

  • Toxic Sites (具有 LEADBENZENE)已找到,这些要素是查找位于 Parks 一千米距离范围内的有毒站点的子集。
  • 接下来,查找到具有 SELENIUMMERCURYToxic Sites,这些要素是查找位于 River 一千米距离范围内的有毒站点的子集。
  • 最后,使用逻辑 or 对这两组要素进行组合。

只有需要在同一图层中创建两组或两组以上不同的要素时才需要进行表达式分组。 可以这样理解分组:如果不分组,则需要执行两遍查找当前位置,第一遍用于查找位于河流附近的站点,第二遍用于查找位于公园附近的站点。 然后使用合并工具对这两个结果进行组合。

可单击文本按钮 文本以查看查询的文本表达。 文本表达使用括号来表示分组。

类似工具

使用查找现有位置选择满足一系列基于属性和空间查询条件的要素。 其他工具或许在解决略有差异的类似问题时十分有用。

Map Viewer分析工具

如果要查找与参考位置相似的位置,请使用查找相似位置工具。

如果尝试使用查询创建新要素,请使用派生新位置工具。

注:

查找现有位置工具和派生新位置工具的主要区别在于派生新位置的结果可包含部分要素。

  • 在两种工具中,属性表达式位置以及空间表达式完全在其他要素范围内完全包含会返回相同的结果,因为这些表达式都返回整个要素。
  • 使用相交在某一距离范围内时,派生新位置将在输出结果图层中创建新要素。

ArcGIS Pro 分析工具

查找现有位置可在 ArcGIS Pro 中执行按属性选择图层按位置选择图层的功能。