关于查询图层 |
![]() ![]() ![]() |
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)。这样便于识别查询结果。注:创建后,查询图层与地图中的其他图层并无区别;可通过使用功能区中的工具,或右键单击“内容”窗口中的图层然后使用上下文菜单对其执行重命名、移动到文件夹、拖动到“内容”窗口中的其他位置或从地图中移除等操作。
搜索字符串值时...
注: 如果将字符串中的通配符与 = 运算符结合使用,则会将该字符视为字符串的一部分,而不视为通配符。
搜索数值时...
注: 无论区域设置如何,数值都始终使用点作为小数分隔符列出。在表达式中,不能将逗号用作小数分隔符或千位分隔符。
虽然查询构建器 中提供了最常见的运算符方便您使用,但您也可以直接在查询预览框中编写自己的 SQL 语句。这样,您就可以进行以下操作:使用其他 SQL 运算符、控制查询字符串不同部分的应用顺序(称为运算符优先级),甚至使用算术运算符(+、-、* 和 /)在数值字段和/或数字之间执行计算。
可通过合并各个部分来创建复合查询,从而构建更高级的查询。例如,您可能希望显示值为 Munro 的所有山峰以及值为 Corbett 的所有山峰。为此,可以首先根据值“Munro”创建查询图层,然后选择该新图层并使用值“Corbett”创建第二个查询图层。还可以采用另一种更快捷的方法来创建此查询:构建第一部分 "Type" = 'Munro',然后添加一个连接符(本示例中为 OR 连接符),最后添加查询的第二部分 "Type" = 'Corbett',这样,整个查询将类似于 "Type" = 'Munro' OR "Type" = 'Corbett'。