关于查询图层 | 反馈 通过电子邮件发送此主题 打印此主题

ArcGIS Explorer 中的查询图层 允许您根据指定的条件过滤地图图层中的数据。通过创建查询和选择适当的条件，可确保地图上只显示您感兴趣的数据。例如，您可能添加了一个包含世界各地城市的地理数据库图层，但只希望地图显示人口超过一百万的城市。为此，可使用查询构建器 来创建一个可生成新查询图层 的查询。不用对基础数据源进行任何更改，而是控制地图上绘制的信息量和信息类型。可以在“内容”窗口中轻松地移除查询图层 或对其进行移动和分组，直到获得所需的数据效果。也可以将查询图层 用作 ArcGIS Explorer 中“分析工具”的输入，或者根据“分析工具”的结果创建查询图层。

##### 打开查询构建器

要打开查询构建器，请在“内容”窗口中选择感兴趣的图层，然后选取功能区中的工具 选项卡，并单击查询 按钮。所选图层应该是点图层 ( )、线图层 ( )、面图层 ( ) 或地图服务图层 ()。发布者专门创建了 ArcGIS 图层和图层包（由 符号表示）来显示相关信息，因此无法进一步应用查询。

##### 创建查询图层

ArcGIS Explorer 中的查询图层 遵照标准的结构化查询语言 (SQL) 模式。查询将显示所选图层中的所有满足查询构建器 中所构建条件的要素。查询的第一部分（所有要素的选择来源，或 SELECT * FROM）由 ArcGIS Explorer 提供。通过选择图层（本示例中的 Mountains），表明您选择了此查询将要操作的目标图层，并且允许 ArcGIS Explorer 现在指示“SELECT * FROM Mountains WHERE...”。这是遵照此命令的条件，也就是您在查询构建器 中构建的 WHERE 子句。

步骤 1：选择字段

查询构建器 打开时，您将发现它已对图层的内容进行了检查，并且在左侧列出了属性字段。要开始创建查询，应选择一个属性字段名，例如下面示例中的字段“类型”。选择了字段名后，您将在对话框下半部分的查询预览框中看到所选的字段名。随着所选的选项不断增加，其余的查询部分将逐渐出现在此处。还可以根据需要直接在预览框中编辑查询，例如删除或复制并粘贴查询的某些部分。

步骤 2：选取运算符

接下来，使用对话框中间的各个按钮插入合适的查询运算符，例如单击 = 按钮插入等号，或单击 > 按钮插入大于号。查询预览框中的查询现在可能类似于 "Type" =。

步骤 3：提供值

为了帮助您选择合适的值以完成查询，ArcGIS Explorer 可为所选的字段搜索唯一值。单击“获取唯一值”按钮即可启动此搜索。搜索完唯一值后，每个唯一值都将显示在上述列表中。要在查询中添加某个值，应在列表中选择该值。或者，如果您知道要添加到查询中的值，则可将其输入到实例值列表上面的文本框中，然后单击“使用”将其添加到下面的查询预览中。此时的查询可能类似于 "Type" = 'Corbett'。

步骤 4：测试查询

完成查询后，应单击“测试”来确认该查询是否有效。查询可能会返回很多结果，此时，对话框将显示一条消息，指示至少找到了 100 个匹配的要素，这表明您可能需要考虑修改查询的条件。

步骤 5：应用查询

最后，单击“确定”将查询应用到所选图层并更新地图。查询将以新图层的形式显示在地图中以及“内容”窗口的顶部，它与所选图层使用相同的名称，并追加了用括号括起来的查询字符串，例如 Cities ("Population" >= 1000000)。这样便可轻松地识别查询结果中哪些结果可以进行重命名、移动到文件夹或拖动到“内容”窗口中的其他位置，或者仅从地图中移除。

##### 查询语法

下面介绍了构建查询时应遵照的一些规则：

搜索字符串值时...

- 字符串必须始终用单引号括起。
  例如："Name" = 'Ben Nevis' 将仅返回名为 Ben Nevis 的山峰。

- 可以使用 LIKE 运算符（代替 = 运算符）构建部分字符串搜索。
  例如："Name" LIKE 'Ben%' 将只返回名称以 Ben 开头的 46 个苏格兰山峰。

  注： 如果将字符串中的通配符与 = 运算符结合使用，则会将该字符视为字符串的一部分，而不视为通配符。

- 可以使用大于 (>)、小于 (<)、大于或等于 (>=) 及小于或等于 (<=) 运算符来根据字母排序顺序选择字符串值。
  例如："Name" > 'T' 将返回名称以大于或等于 T（Z 最大）的字母开头的 20 个苏格兰山峰。

搜索数值时...

- 可以使用相等 (=)、不相等 (<>)、大于 (>)、小于 (<)、大于或等于 (>=)、小于或等于 (<=) 和 BETWEEN 运算符来查询数字。
  例如："POPULATION" >= 1000000 将返回人口大于或等于一百万的所有城市。

  注： 无论区域设置如何，数值都始终使用点作为小数分隔符列出。在表达式中，不能将逗号用作小数分隔符或千位分隔符。

##### 创建更高级的查询

虽然查询构建器 中提供了最常见的运算符方便您使用，但您也可以直接在查询预览框中编写自己的 SQL 语句。这样，您就可以进行以下操作：使用其他 SQL 运算符、控制查询字符串不同部分的应用顺序（称为运算符优先级），甚至使用算术运算符（+、-、* 和 /）在数值字段和/或数字之间执行计算。

可通过合并各个部分来创建复合查询，从而构建更高级的查询。例如，您可能希望显示值为 Munro 的所有山峰以及值为 Corbett 的所有山峰。为此，可以首先根据值“Munro”创建查询图层，然后选择该新图层并使用值“Corbett”创建第二个查询图层。还可以采用另一种更快捷的方法来创建此查询：构建第一部分 "Type" = 'Munro'，然后添加一个连接符（本示例中为 OR 连接符），最后添加查询的第二部分 "Type" = 'Corbett'，这样，整个查询将类似于 "Type" = 'Munro' OR "Type" = 'Corbett'。