注册到地理数据库 (数据管理)

摘要

向地理数据库注册要素类、表、视图和栅格图层,而这些要素类、表、视图和栅格图层是使用第三方工具或具有创建数据库视图工具的视图在数据库中创建的。 注册之后,有关项目(例如表和列的名称、空间范围和几何类型)的信息会存储于地理数据库系统表中,从而使这些注册的项目可参与地理数据库的功能。

使用情况

  • 使用此工具将利用第三方工具或 SQL 创建的要素类、表、视图和栅格图层注册到地理数据库。

  • 此外,还可以将在文件和企业级地理数据库中使用创建数据库视图工具创建的视图注册到文件地理数据库。

  • 要注册到企业级地理数据库,您必须以输入数据集所有者的身份进行连接。

  • 要素类、表或栅格图层必须先注册到地理数据库中,才能充分参与地理数据库功能。 如果未注册到地理数据库,则在 ArcGIS 客户端和服务中只有有限的功能可用。

  • 未注册到地理数据库中的视图不能参与某些地理数据库行为,并且只能通过 ArcGIS 客户端实现读取。 即使将视图注册到地理数据库,视图也不支持用于要素服务中。

参数

标注说明数据类型
输入数据集

使用第三方工具或 SQL 创建的要素类、表、视图或栅格,或者使用将在地理数据库中注册的创建数据库视图工具创建的视图。 数据集必须存在于与地理数据库相同的数据库中。

Table View; Raster Layer
Object ID 字段
(可选)

将用作 ObjectID 字段的字段。 注册视图时需要此输入,且您必须提供一个现有的整型字段。 注册其他数据集类型时该参数为可选参数;如果使用现有字段,则该参数必须为整形数据类型。 如果在注册这些数据集类型时未提供现有字段,则将创建 ObjectID 字段并进行填充。

Field
Shape 字段
(可选)

用于标识要素形状的字段。 如果输入数据集包含空间数据类型列,则在注册过程中应将该字段包括在内。

Field
几何类型
(可选)

指定几何类型。 如果存在 Shape 字段参数值,您必须指定一个几何类型。 支持的几何类型包括点、多点、面、折线和多面体。 如果正在注册的数据集包含现有要素,则指定的几何类型必须与这些要素的实体类型相匹配。

  • 该几何类型将为点。
  • 多点该几何类型将为多点。
  • 该几何类型将为面。
  • 折线该几何类型将为折线。
  • 多面体几何类型将为多面体。
String
坐标系
(可选)

如果 Shape 字段参数值存在,且表为空,则指定将要用于要素的坐标系。 如果正在注册的数据集包含现有要素,则指定的坐标系必须与现有要素的坐标系相匹配。

Spatial Reference
范围
(可选)

如果 Shape 字段参数值存在,则指定允许的 x,y 坐标的坐标范围。 如果正在注册的数据集包含现有要素,则将使用现有要素的范围。

Envelope

派生输出

标注说明数据类型
注册的数据集

已注册的数据集。

Table

arcpy.management.RegisterWithGeodatabase(in_dataset, {in_object_id_field}, {in_shape_field}, {in_geometry_type}, {in_spatial_reference}, {in_extent})
名称说明数据类型
in_dataset

使用第三方工具或 SQL 创建的要素类、表、视图或栅格,或者使用将在地理数据库中注册的创建数据库视图工具创建的视图。 数据集必须存在于与地理数据库相同的数据库中。

Table View; Raster Layer
in_object_id_field
(可选)

将用作 ObjectID 字段的字段。 注册视图时需要此输入,且您必须提供一个现有的整型字段。 注册其他数据集类型时该参数为可选参数;如果使用现有字段,则该参数必须为整形数据类型。 如果在注册这些数据集类型时未提供现有字段,则将创建 ObjectID 字段并进行填充。

Field
in_shape_field
(可选)

用于标识要素形状的字段。 如果输入数据集包含空间数据类型列,则在注册过程中应将该字段包括在内。

Field
in_geometry_type
(可选)

指定几何类型。 如果存在 in_shape_field 参数值,您必须指定一个几何类型。 如果正在注册的数据集包含现有要素,则指定的几何类型必须与这些要素的实体类型相匹配。

  • POINT该几何类型将为点。
  • MULTIPOINT该几何类型将为多点。
  • POLYGON该几何类型将为面。
  • POLYLINE该几何类型将为折线。
  • MULTIPATCH几何类型将为多面体。
String
in_spatial_reference
(可选)

如果 in_shape_field 参数值存在,且表为空,则指定将要用于要素的坐标系。 如果正在注册的数据集包含现有要素,则指定的坐标系必须与现有要素的坐标系相匹配。 有效值可以是 Spatial Reference 对象、扩展名为 .prj 的文件或坐标系的字符串表达形式。

Spatial Reference
in_extent
(可选)

如果存在 in_shape_field 参数值,则按以下顺序指定允许的 x,y 坐标的坐标范围:"XMin YMin XMax YMax"。 如果正在注册的数据集包含现有要素,则将使用现有要素的范围。

Envelope

派生输出

名称说明数据类型
reg_dataset

已注册的数据集。

Table

代码示例

RegisterWithGeodatabase 示例 1(Python 窗口)

以下 Python 窗口脚本显示了如何在 Python 窗口中使用 RegisterWithGeodatabase 函数以获得包含点几何要素的空间表。 由于基础表包含现有要素,所以可以查找坐标参考和要素范围信息而无需明确列出。

import arcpy
arcpy.env.workspace = r"Database Connections/connection.sde"
arcpy.management.RegisterWithGeodatabase("database.owner.COUNTIES", "OID", 
                                         "Shape", "POINT")
RegisterWithGeodatabase 示例 2(独立脚本)

以下独立脚本是如何在脚本环境中应用 RegisterWithGeodatabase 函数的简单示例。

# RegisterWithGeodatabase.py
# Description: Simple example showing use of RegisterWithGeodatabase tool
 
# Import system modules
import arcpy

# Set variables
inTable = r"c:\connectionFiles\Connection to esriServer.sde\database.dbo.cities"
oid_field = "OID"
shape_field = "Shape"
geometry_type = "POINT"
sr = arcpy.SpatialReference(4326)
in_extent = "11 10 14 34"

# Process: Register With Geodatabase
arcpy.management.RegisterWithGeodatabase(inTable, oid_field, shape_field, 
                                         geometry_type, sr, in_extent)
RegisterWithGeodatabase 示例 3(独立脚本)

在文件地理数据库中注册名为“trees”的视图。

# RegisterWithGeodatabase.py
# Description: Example showing use of RegisterWithGeodatabase tool with a file 
#              gdb view.

# Import system modules
import arcpy

# Create a view in the geodatabase
arcpy.management.CreateDatabaseView("C:\\testdata\\mytest.gdb",
                                    "trees",
                                    "select objectid, owner, parcel from inventory where type = trees")

# Set variables
inTable = r"C:\\testdata\\mytest.gdb\\trees"

# Process: Register With Geodatabase
arcpy.management.RegisterWithGeodatabase(inTable, "objectid")

许可信息

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

相关主题