可以使用地图选项卡上的添加数据按钮 在地图中创建一个查询图层。
提示:
在目录窗格中根据数据库连接将数据库要素类、表或视图拖动到地图上时,ArcGIS Pro 将自动创建一个查询图层,用于从该要素类、表或视图中选择所有行和字段。但是,此操作仅适用于数据库,不适用于企业级地理数据库。
ArcGIS Pro 在您将图层拖动到地图时,计算该图层的范围。如果要添加一个包含大量要素的表,范围的计算则需要花费一段时间。如果了解数据范围或想要使用空间参考的范围,而不是等待对范围进行计算,则可以执行此操作。在计算范围对话框上单击相应按钮。如果单击输入范围,则必须输入包括表中所有要素的有效范围。
以下内容是有关如何使用新建查询图层对话框来创建查询图层的概述:
- 连接到数据库。
在 ArcGIS 中创建查询图层的第一步是与所要查询的数据库建立连接。可以在目录窗格中创建数据库连接,如 ArcGIS Pro 中的数据库连接部分所述,也可以在新建查询图层对话框中创建连接。
- 选择表。
与数据库建立连接后,在该数据库中找到的表和视图的列表将显示在新建查询图层对话框中。选择其中一个表后,将显示该表的各个列。
数据库中的每一列都具有特定的数据类型。ArcGIS 可以处理最常用的数据库类型。但不支持某些不常用的数据库类型。如果属性列的类型为未知,这表明 ArcGIS 不支持该数据类型。指定某个查询时,必须在查询中排除数据类型为“未知”的所有列,或者将这些列的数据类型更改为 ArcGIS 支持的数据类型。
有关详细信息,请参阅 ArcGIS 中支持的 DBMS 数据类型。
- 定义 SQL 查询。
在查询文本框中指定一个 SQL 查询。
构建查询时,通过双击表或者将该表从表列表窗口拖放到查询文本框中,可将整个表添加到查询文本框中。同样,通过双击表中的特定列或者将这些列从列窗口拖放到查询文本框中,也可将这些列添加到查询中。也可以输入特定查询,或者从外部应用程序剪切查询并将其粘贴到查询文本框中。
构建查询图层时,应使用特定于数据库的 SQL 语法。以下是常见的示例:SELECT * FROM Test.myuser.US_States。这将生成一个包含 US_States 表中所有行的查询图层。在地图中,这将显示美国的所有州。
要了解如何在 SQL 查询中使用变量,请参阅定义查询图层中的参数。
- 验证 SQL 语句。
查询创建完成后,必须对其进行验证。在验证过程中,ArcGIS 将尝试基于表中返回的第一行确定查询图层的属性。
在验证过程中,ArcGIS 将尝试基于表中返回的第一行确定查询图层的属性。
查询图层的属性用于过滤从数据库返回 ArcGIS 的行。例如,如果要素类中的要素使用不同的 SRID,则查询图层中设置的 SRID 属性将用于防止数据库表中与该 SRID 不匹配的任何行显示在地图中。
- 请指定唯一标识符或者使用在验证期间由 ArcGIS 找到的标识符。
唯一标识符是 ArcGIS 用于标识表中各行的一个或多个字段。
- 对于包含空间列的要素类或视图,可以定义以下内容,或者使用在验证时 ArcGIS 检测到的默认值:
- 几何类型 - 决定图层将存储点、多点、线或面要素。
- 空间参考 - 图层的坐标系和其他相关空间属性。
有时,ArcGIS 可能无法根据为数据库中某些要素设置的当前 SRID 值准确地确定空间参考。在这种情况下,查询图层将具有未知空间参考,您必须手动定义一个空间参考。要特别注意的是,为查询图层定义空间参考并不会对数据进行重新投影,而只是定义在 ArcGIS 内绘制查询结果地图时应使用的空间参考。
- SRID - 这是图层的空间参考标识符,用于确保查询仅返回具有相同空间参考标识符的几何。如果查询图层不包含空间字段,则 SRID 值将为空。如果设定了该值,则结果集中将排除所有不包含指定几何 SRID 值的要素。
请按照以下步骤在地图中创建查询图层:
- 可通过单击地图功能区上的添加数据按钮 并从下拉列表中选择查询图层按钮 将查询图层添加到地图。这将打开查询图层窗口。
- 在新建查询图层对话框中,在名称文本框中指定要创建的查询名称。此名称将显示在内容窗格中。
- 新查询图层窗口显示后,必须选择存储数据的数据库连接。如果工程中已存在连接,请从下拉列表中选择连接。如果工程中不存在连接,请选择“新建数据库连接”按钮 并创建一个连接。
- 在查询文本框中输入一个 SQL 查询。
建立了与数据库的连接后,在该数据库中找到的表和视图的列表将填充该对话框的左侧窗口。可通过单击表名选择要使用的表;表中的列将会在右侧窗口显示。
构建查询时,通过双击表或者将该表从表列表窗口拖放到查询文本框中,可将整个表添加到查询文本框中。
选择其中一个表后,将显示该表的各个列。可以将表中的特定列添加到查询中,方法是双击列名称或将这些列从列窗口拖放到查询文本框。
- 选择是要为图层定义空间属性,还是使用默认选项以使 ArcGIS Pro 为您完成此操作。
验证过程中,ArcGIS 将为查询图层设定维数、几何类型、空间参考、SRID 以及唯一标识符属性。这些值取决于查询返回的第一行。如果要手动定义这些属性,请选择定义图层的空间属性选项。
- 查询创建完成后,必须对其进行验证。单击验证以确认查询语法正确并且返回的数据能够为 ArcGIS 所用。验证过程将在数据库中执行查询,并检查查询的结果集是否符合 ArcGIS 所实施的数据建模标准。只有当查询图层有效时,才会将其添加到地图。
验证规则如下:
- 结果集最多只能包含一个空间字段。
- 结果集最多只能包含一个空间参考。
- 结果集必须只有一种 shape 类型。
- 结果集不得包含 ArcGIS 不支持的任何字段类型。
如果由于任何原因而导致验证失败,系统将返回一条错误消息以便您修改查询。
如果所使用的空间数据库中的数据执行的标准与 ArcGIS 不同,则验证尤为重要。
- 成功验证查询后,单击下一步。
- 为查询图层选择唯一标识符字段。
地图中的所有要素都需要唯一标识符。因此,查询图层必须包含一个唯一标识符字段,该字段将包含每个要素的值。有关详细信息,请参阅为查询图层选择唯一标识符字段。
- 通过选择几何类型和空间参考来定义查询图层的空间属性。如果选择使用 ArcGIS Pro 为您确定空间属性,则已对这些参数进行相应设置。
- 从下拉菜单中选择几何类型。
- 单击 以选择要用于空间参考的坐标系,或者从现有数据集中导入空间参考。
- 如果在步骤 5 中选择了定义图层的空间属性,则需要从图层范围属性中选择一个选项。可以选择键入范围、使用地图范围或使用空间参考范围。如果键入范围,则您指定的范围必须有效,并且包含表中的所有要素。如果您未选择提供自己的值,请单击下一步以提供范围值或者检查地图或空间参考范围值。
- 单击完成将查询图层添加到地图中。
有关更改查询图层属性的信息,请参阅修改查询图层。