ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

创建查询图层

  • 描述
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

基于输入的 SQL 选择语句,从 DBMS 表创建查询图层。

使用方法

  • 查询图层仅适用于企业级数据库。对于此工具,文件或个人地理数据库不是有效的输入工作空间。

  • 该工具创建的图层是临时图层,如果不保存此图层,或者使用复制行或复制要素通过创建副本对数据进行持久化,则该图层在会话结束后将不会继续存在。

  • 如果输入的 SQL 查询的结果返回空间列,则输出将为要素图层。如果 SQL 查询没有返回空间列,则输出将为独立表。

  • 此工具所需的连接文件可使用创建数据库连接工具创建。

  • 如果 SQL 查询的结果未返回任何行,则输出查询图层将为空,只包含查询返回的列的方案。在这种情况下,如果返回的列包括空间列,则工具将使用以下默认设置创建查询图层:

    • 几何类型 - 点
    • SRID - 1
    • 空间参考 - NAD1983

    然后,您需要确定在执行工具之前是否应更改这些值中的任何一个。

  • 对于地理数据,SQL 语句返回的结果中的每条记录都将有一个关联的空间参考标识符 (SRID)。数据库将使用该 SRID 值确定数据的空间参考。SRID 的特定功能区别在各个 DBMS 平台之间有所不同。某些 DBMS 平台支持在同一表中包含多个 SRID 值;ArcGIS 只支持一个值。此工具允许您选择 SRID 值,或默认使用结果集中第一条记录的 SRID。

语法

arcpy.management.MakeQueryLayer(input_database, out_layer_name, query, {oid_fields}, {shape_type}, {srid}, {spatial_reference})
参数说明数据类型
input_database

包含要查询的数据的数据库连接文件。

Workspace
out_layer_name

要创建的要素图层或表视图的输出名称。

String
query

定义要向数据库发出的选择查询的 SQL 语句。

String
oid_fields
[oid_fields,...]
(可选)

SELECT 列表的 SELECT 语句中的一个或多个字段,可用于生成动态的唯一行标识符。

String
shape_type
(可选)

指定查询图层的形状类型。在输出查询图层中只会使用查询结果集中与指定形状类型匹配的那些记录。工具验证将尝试根据结果集中的第一条记录设置此属性。如果形状类型不是所需的输出形状类型,则执行工具之前可对此进行更改。如果查询结果集未返回几何字段,则忽略此参数。

  • POINT —输出查询图层将使用点几何。
  • MULTIPOINT —输出查询图层将使用多点几何。
  • POLYGON —输出查询图层将使用面几何。
  • POLYLINE —输出查询图层将使用折线几何。
String
srid
(可选)

返回几何查询的空间参考标识符 (SRID) 值。在输出查询图层中只会使用查询结果集中与指定 SRID 值匹配的那些记录。工具验证将尝试根据结果集中的第一条记录设置此属性。如果 SRID 值不是所需的输出 SRID 值,则执行工具之前可对此进行更改。如果查询结果集未返回几何字段,则忽略此参数。

String
spatial_reference
(可选)

输出查询图层将使用的坐标系。工具验证将尝试根据结果集中的第一条记录设置此属性。如果坐标系不是所需的输出坐标系,则执行工具之前可对此进行更改。如果查询结果集未返回几何字段,则忽略此参数。

Spatial Reference

派生输出

名称说明数据类型
out_layer

输出查询图层。

表视图

代码示例

MakeQueryLayer 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 MakeQueryLayer 工具。

import arcpy

sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")

arcpy.MakeQueryLayer_management("Connections/moab.sde",
                                "Slickrock",
                                "select * from moabtrails where name = 'slickrock'",
                                "OBJECTID",
                                "POLYLINE",
                                "32611",
                                sr)
MakeQueryLayer 示例 2(独立脚本)

以下独立脚本演示了如何使用 MakeQueryLayer 工具。

# Name: MakeQueryLayer.py
# Description: Creates an output query layer based on a where clause.
#   This example shows how to create a spatial reference object using the
#   name of a coordinate system. It also demonstrates how to use two fields
#   to generate a dynamic unique row identifier for the query layer.


# Import system modules
import arcpy

# Create the spatial reference for the output layer.
sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")

# Run the tool
arcpy.MakeQueryLayer_management("Connections/moab.sde",
                                "Single Track",
                                "select * from moabtrails where type = 'single'",
                                "UID;name",
                                "POLYLINE",
                                "32611",
                                sr)

环境

  • 当前工作空间
  • 输出坐标系

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题

  • 图层和表视图工具集概述
  • 使用图层和表视图
  • 使用图层和表视图

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明