1.创建包含 ST_Geometry 列的表:
CREATE TABLE sensitive_areas (
area_id integer,
name varchar(128),
area_size float,
type varchar(10),
zone sde.st_geometry
);
2.注册 ST_Geometry 列
在 Oracle 中,于 ST_Geometry 列中创建空间索引将会注册列以使用特定空间参考。有关使用 SQL 在 Oracle 中创建空间索引的示例,请参阅为包含 ST_Geometry 列的表创建空间索引。
3.使用 SQL 创建空间参考(一般直接也用esri体系的空间索引,见步骤5)
INSERT INTO SDE.ST_SPATIAL_REFERENCES (SR_NAME, SRID,
X_OFFSET, Y_OFFSET, XYUNITS, Z_OFFSET, Z_SCALE, M_OFFSET,
M_SCALE, MIN_X, MAX_X, MIN_Y, MAX_Y, MIN_Z, MAX_Z, MIN_M,
MAX_M, CS_ID, CS_NAME, CS_TYPE, ORGANIZATION,
ORG_COORDSYS_ID, DEFINITION, DESCRIPTION)
VALUES (
'GCS_North_American_1983',
310000,
-400,
-400,
1000000000,
-100000,
100000,
-100000,
100000,
9.999E35,
-9.999E35,
9.999E35,
-9.999E35,
9.999E35,
-9.999E35,
9.999E35,
-9.999E35,
4269,
'GCS_North_American_1983',
'PROJECTED',
NULL,
NULL,
'GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]',
'ArcSDE SpRef'
);
4.向包含 ST_Geometry 列的表中插入要素
INSERT INTO SENSITIVE_AREAS (area_id, name, area_size, type, zone) VALUES (
1,
'Summerhill Elementary School',
67920.64,
'school',
sde.st_geometry('polygon ((52 28,58 28,58 23,52 23,52 28))', 4326)
);
5.使用 SQL 为包含 ST_Geometry 列的表创建空间索引
CREATE INDEX sa_idx
ON sensitive_areas(zone)
INDEXTYPE IS sde.st_spatial_index
PARAMETERS('st_grids=1,3,0 st_srid=4326');
6.更新 ST_Geometry 空间列中的值
UPDATE hazardous_sites
SET location = sde.st_geometry('point (18 57)', 4326)
WHERE site_id = 102;
7.从 ST_Geometry 空间列中删除值
DELETE FROM sensitive_areas WHERE names
(SELECT sa.names
FROM sensitive_areas sa, hazardous_sites hs
WHERE sde.st_overlaps (sa.zone, sde.st_buffer (hs.location,.01)) = 1);
8.将表或视图注册到地理数据库
按照以下步骤使用注册到地理数据库地理处理工具将表或视图注册到地理数据库:
启动 ArcGIS Desktop 客户端并连接到包含要注册的表或视图的企业级地理数据库。
请以表或视图所有者的身份连接,因为只有所有者方可将其注册到地理数据库。
打开注册到地理数据库工具。
可以搜索该工具,在“数据管理”工具箱的“地理数据库管理”工具集中将其打开,也可在 ArcMap 的目录树中右键单击数据库连接下的表或视图,然后单击注册到地理数据库。
指定 ObjectID 字段。
注册表时,请选择一个现有整型列以用作 ObjectID 字段或清空 ObjectID 字段,该工具将随即向表添加 ObjectID 字段。
注册视图时,请选择一个包含唯一非空值的现有整型字段以用作 ObjectID 字段。
如果表或视图包含空间字段,请提供以下信息:
从 Shape 字段下拉列表中选择空间字段名。
从几何类型下拉列表中,选择存储在 shape 字段中的几何类型。
从坐标系下拉列表中选择 shape 字段的坐标系。
指定表中数据的空间范围。
单击确定 (ArcMap) 或运行 (ArcGIS Pro) 以运行工具并将表或视图注册到地理数据库。
总结:以上步骤根据使用数据库的不同,会有差异,本例在Oracle下编写,其中步骤3、6、7可根据需求使用。