ArcGIS 中的查询图层是 SQL 查询所定义的数据库中的空间图层或独立表。您可以连接数据库,并将数据库中的图层或表添加到您的地图中。由于查询图层将通过 SQL 对数据库表和视图进行直接查询,所以查询图层所使用的空间信息不需要位于地理数据库中。
当您将地理数据库中的空间表(要素类)添加到地图中时,ArcGIS 会读取地理数据库系统表中的空间信息以便绘制要素。相反,当您将数据库中的空间表添加到地图中时,ArcGIS 会查询数据库以确定其需要的信息,以便绘制要素,所需要查询的信息包括唯一标识符字段 (ObjectID)、图层是否包含 z 或 m 坐标、几何类型(点、多点、线或面)、空间参考以及数据的空间范围。由于大多数数据库不会存储每个图层的此类信息,所以 ArcGIS 会查询表以获取信息。
您可以通过将表拖拽到地图中(如上所述)来在 ArcMap 中创建查询图层,ArcGIS 会定义可返回表中所有数据的 SQL 查询。您可以修改查询图层以过滤数据或将表连接至另一个表。或者,您可以使用新建查询图层对话框定义查询图层。这样,在绘制所有数据之前,您便可以构建您自己的 SQL 查询。如果您仅想使用地图中的数据的子集,此功能大有用处。
每次在 ArcMap 中显示或使用该图层时都将执行该查询。这样,无需生成数据的副本或快照便可显示最新信息,这尤其适用于处理频繁更改的动态信息。查询图层功能适用于 ArcGIS 支持的所有数据库管理系统。
使用查询图层快速浏览
- 要使用地图中的查询图层,可以将数据库或地理数据库中的表拖拽到地图中,或者使用新建查询图层对话框对数据库中的表或视图定义查询。
- 查询图层和任何其他要素图层或独立表一样,所以这些图层可用于作为地理处理工具的输入来显示数据,或使用开发人员 API 通过编程方式进行访问。
- 创建查询图层后,您可以将其保存为图层文件 (.lyr) 或用其创建一个图层包 (.lpk)。这样便可以很容易地与其他应用程序、地图文档和其他人员共享查询图层。