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

描述

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

使用方法

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

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

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

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

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

语法

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
(可选)

如果输入数据集包含 shape 列,则在注册过程中应将其包括进去。

Field
in_geometry_type
(可选)

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

  • POINT点几何类型
  • MULTIPOINT多点几何类型
  • POLYGON面几何类型
  • POLYLINE折线几何类型
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

已注册的数据集。

代码示例

RegisterWithGeodatabase 示例 1(Python 窗口)

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

import arcpy
arcpy.env.workspace = r"Database Connections/connection.sde"
arcpy.RegisterWithGeodatabase_management("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.RegisterWithGeodatabase_management(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.CreateDatabaseView_management("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.RegisterWithGeodatabase_management(inTable, "objectid")

许可信息

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

相关主题