摘要:ArcSDE for Oracle提供了ST_Geometry类型来存储几何数据。ST_Geometry是一种遵循ISO和OGC规范的,可以通过SQL直接读取的空间信息存储类型。采用这种存储方式能够更好的利用oracle的资源,更好的兼容oracle的特征,比如复制和分区,并且能够更快的读取空间数据。使用ST_Geometry存储空间数据,可以把业务数据和空间数据存储到一张表中(使用SDENBLOB方式业务数据和空间数据是分开存储在B表和F表中的),因此可以很方便的在业务数据中增加空间数据(只需要在业务表中增加ST_Geometry列)。 一、简介
ArcSDE for Oracle提供了ST_Geometry类型来存储几何数据。ST_Geometry是一种遵循ISO和OGC规范的,可以通过SQL直接读取的空间信息存储类型。采用这种存储方式能够更好的利用oracle的资源,更好的兼容oracle的特征,比如复制和分区,并且能够更快的读取空间数据。使用ST_Geometry存储空间数据,可以把业务数据和空间数据存储到一张表中(使用SDENBLOB方式业务数据和空间数据是分开存储在B表和F表中的),因此可以很方便的在业务数据中增加空间数据(只需要在业务表中增加ST_Geometry列)。使用这种存储方式还能够简化多用户的读取,管理(只需要管理一张表)。barry
从 ArcGIS 9.3开始,新的 ArcSDE geodatabases for Oracle 会默认使用ST_Geometry 方式来存储空间数据。它实现了SQL3规范中的用户自定义类型(user-defined data types),允许用户使用ST_Geometry类型创建列来存储诸如界址点,街道,地块等空间数据。
使用ST_Geometry类型存储空间数据,具有以下优势: 1)通过SQL函数( ISO SQL/MM 标准)直接访问空间数据; 2)使用SQL语句存储、检索操纵空间数据,就像其他类型数据一样。 3)通过存储过程来进行复杂的空间数据检索和分析。 4)其他应用程序可以通过SQL语句来访问存储在geodatabase中的数据。从ArcGIS 9.3开始,新的ArcSDE geodatabases for Oracle 要求所以ST 函数调用的时候前面都要加上 SDE schema名称。例如:要对查询出来的空间数据进行union操作,则SQL函数需要这样写:"sde.ST_Union",在9,2版本之前,可以不加SDE schema名称。
二 存储结构
ST_Geometry 存储空间数据的结构如下表:
Name Type
ENTITY NUMBER(38)
NUMPTS NUMBER(38)
MINX FLOAT(64)
MINY FLOAT(64)
MAXX FLOAT(64)
MAXY FLOAT(64)
MINZ FLOAT(64)
MAXZ FLOAT(64)
MINM FLOAT(64)
MAXM FLOAT(64)
AREA FLOAT(64)
LEN FLOAT(64)
SRID NUMBER(38)
POINTS BLOB
Entity为要素类型,包括(linestring, multilinestring, multipoint, multipolygon, point, or polygon)。具体的值对应的类型可以通过 st_geom_util 存储过程获得。 NUMPTS为坐标点的个数
Minx, miny, maxx, maxy 几何的外包络矩形
Area 几何的面积
Len 几何的周长
SRID 空间参考系ID,对应 ST_Spatial_References 表中的空间参考信息
POINTS 坐标序列
三、操作函数
下面是一些针对ST_Geometry进行操作的函数,输入为ST_Geometry类型数据,输出为Number型数据、
ST_Area 返回几何的面积。
ST_Len 返回几何的周长。
ST_Entity 返回几何类型.
ST_NumPoints 返回几何坐标点的个数.
ST_MinM, ST_MinX, ST_MinY, ST_MinZ 返回几何不同维度的最小坐标. ST_MaxM, ST_MaxX, ST_MaxY, ST_MaxZ 返回几何不同维度的最大坐标. ST_SRID 返回空间参考系ID.
Get_release 返回版本信息.
如下面例子,在us_states表中查找所有state的名字并计算state的面积。
SELECT name, st_area(geometry)
FROM us_states
ORDER BY name;
四、构造ST_Geometry对象
ST_LineString, ST_MultiLineString, ST_MultiPoint, ST_MultiPolygon, ST_Point, and ST_Polygon 全部是ST_Geometry的子类. ST_Geometry和他的子类共享属性和方法. ST_LineString, ST_MultiLineString, ST_MultiPoint, ST_MultiPolygon, ST_Point and ST_Polygon的构造函数的定义是相同的,构造函数的名字就是类型名。
ST_Point是个有限对象(只有一个点),因此可以使用下面的方法来构造。
1,使用xy坐标和SRID来构造ST_Point
1,使用xy坐标和SRID来构造ST_Point
METHOD
FINAL CONSTRUCTOR FUNCTION ST_POINT RETURNS SELF AS RESULT
Argument Name Type In/Out Default?
PT_X NUMBER IN
PT_Y NUMBER IN
SRID NUMBER IN
SQL> insert into sample_pt values (ST_Point (10, 20, 1) );
2,使用xy坐标、高程值(z)和SRID来构造ST_Point
METHOD
FINAL CONSTRUCTOR FUNCTION ST_POINT RETURNS SELF AS RESULT
Argument Name Type In/Out Default?
PT_X NUMBER IN
PT_Y NUMBER IN
PT_Z NUMBER IN
SRID NUMBER IN
SQL> insert into sample_pt values (ST_Point (10, 20, 5, 1) );
3,使用xy坐标、高程值(z),量测值(m)和SRID来构造ST_Point
METHOD
FINAL CONSTRUCTOR FUNCTION ST_POINT RETURNS SELF AS RESULT
Argument Name Type In/Out Default?
PT_X NUMBER IN
PT_Y NUMBER IN
PT_Z NUMBER IN
MEASURE NUMBER IN
SRID NUMBER IN
SQL> insert into sample_pt values (ST_Point (10, 20, 5, 401, 1) );
五 用户权限限制
在oracle使用ST_Geometry ,用户必须有以下权限:
CREATE TYPE
UNLIMITED TABLESPACE
CREATE LIBRARY
CREATE OPERATOR
CREATE INDEXTYPE
CREATE PUBLIC SYNONYM
DROP PUBLIC SYNONYM
The CONNECT and RESOURCE roles include these privileges
本篇文章来源于 GIS空间站 转载请以链接形式注明出处 网址:http://www.gissky.net/Article/1782.htm
分享到:
相关推荐
从ArcGIS 9.3版本开始,ArcSDE Geodatabase在Oracle环境下默认使用ST_Geometry来存储空间数据。 ST_Geometry的数据类型允许用户通过标准的SQL语句直接存储、检索和操纵空间数据,无需使用专业的GIS软件。这意味着,...
在 Oracle Spatial 中,SDO_GEOMETRY 是一个用于存储空间数据的数据类型。本文将介绍如何使用 Oracle Spatial 对 ArcSDE 中的 SDO_GEOMETRY 类型数据进行空间操作。 一、在 Oracle Spatial 中建立 SDO_GEOMETRY ...
在 Oracle RAC 环境下,配置 ST_Geometry 技术可以实现高效的空间数据处理和分析。以下是 Oracle RAC 配置 ST_Geometry 技术文档的详细说明: 标题:Oracle RAC 配置 ST_Geometry 技术文档 描述:本文档实例介绍 ...
自ArcSDE推出ST_Geometry存储类型以来,用户可以直接通过SQL语句来查询和操作空间数据,极大地提高了空间数据处理的灵活性和效率。本文将详细介绍如何配置SQL空间查询ST_Geometry,以便于更好地利用ArcGIS进行空间...
6. **ST_GEOMETRY_INDEX表**:存储了ST_Geometry列的空间索引信息,是高效查询和数据分析的基础。通过合理的索引设计,可以极大地提升空间查询的性能。 7. **ST_SPATIAL_REFERENCES表**:与ST_COORDINATE_SYSTEMS表...
本文将详细解析如何配置Oracle数据库以支持ST_Geometry SQL函数,使数据库能够高效地进行空间数据的存储、检索与分析。 ### 配置Oracle网络服务以使用ST_Geometry #### 一、理解ST_Geometry ST_Geometry是用于...
### Oracle11g结合ArcGIS10.2建立空间数据库ST_Geometry类库配置 #### 一、环境搭建及软件安装 为了实现Oracle11g与ArcGIS10.2相结合来建立空间数据库,首先需要完成以下软件的安装: 1. **安装Oracle11g 64位...
ST_Geometry是ArcSDE中的一个空间数据类型,用于存储矢量几何数据。SQL中的ST_Geometry函数集提供了一系列空间操作方法,包括创建几何对象、执行几何分析、进行空间关系判断等。通过这些函数,用户可以对空间数据...
- **ST_GEOMETRY数据类型**:在Oracle中,空间数据被存储为ST_GEOMETRY类型,这是ArcSDE支持直接SQL操作的前提条件。只有当空间数据采用这种格式时,才能确保直接SQL操作的兼容性和有效性。 - **动态库与C外部过程*...
ArcSDE 支持使用 `ST_GEOMETRY` 类型来存储空间数据。虽然 ArcSDE 可以使用 `SDO_GEOMETRY` 类型,但 `ST_GEOMETRY` 提供了更多功能,并且与 ESRI 的其他 GIS 工具更兼容。 **2. 常见几何对象的构造** ArcSDE 同样...
此外,ArcSDE还支持利用ST_Geometry数据类型配合使用的SQL函数来进行更复杂的空间数据操作。 ST_Geometry是Oracle中用于存储和管理空间数据的数据类型,它使得Oracle数据库能够执行空间数据的查询和处理。ST_...
当涉及到Oracle数据库时,用户经常需要处理存储在Oracle数据库中的空间数据,即ST_Geometry类型的数据。为了直接在PL/SQL中查询这些数据,需要对Oracle数据库进行特定的配置。 #### 二、配置Oracle数据库以支持ST_...
在数据存储方式上,ArcSDE10相较于9.3.1版本,取消了对Geometry存储方式的选择界面。尽管9.3.1版本提供了ST_Geometry、BLOB和SDO_Geometry三种选择,但ArcSDE10默认使用ST_Geometry,这不仅简化了配置,还提高了性能...
综上所述,通过上述知识点的学习和理解,用户可以更好地掌握如何在Oracle数据库中创建ST_Geometry列的空间索引、如何在远程Windows服务器上创建ArcSDE服务,以及如何使用SQL查询SRID和使用`sdelayer`命令将空间表...
2. 创建地理数据库:在RDBMS中建立一个地理数据库,这是ArcSDE存储空间数据的地方。 3. 定义数据类型:根据数据特征定义相应的地理数据类型,如点、线、面等。 4. 导入数据:通过ArcGIS Desktop或其他ArcSDE工具将...
- 在Oracle等数据库中,`ST_Geometry`是一种用于表示几何对象的数据类型,支持点、线、面等多种空间数据结构。 4. **No RDBMS for SQL** - 指的是不依赖于关系型数据库管理系统(RDBMS)的SQL查询方式。这可能指...
- 然后,可以在ArcGIS Desktop或ArcGIS Server中建立连接,开始使用ArcSDE存储和管理地理空间数据。 在安装过程中,确保遵循官方文档的指示,每个步骤都至关重要,以确保ArcSDE和PostgreSQL之间的无缝集成。同时,...
- 需要注意的是,默认情况下Oracle使用`ST_GEOMETRY`类型来存储空间数据,这需要通过特定的配置来支持。 ##### 2. 查询和配置ST_SHAPELIB.DLL文件 - **查询ST_SHAPELIB.DLL文件位置**: - 在Oracle中执行如下...
- **支持的空间存储类型**:包括SQL Server 2008的Geography和Geometry类型、Oracle的ST_Geometry和SDO_Geometry类型、PostgreSQL的ST_Geometry类型以及PostGIS、DB2的ST_Geometry类型、Informix的ST_Geometry类型等...