`
cryolite
  • 浏览: 581551 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle Spatial中的SDO_GEOMETRY

阅读更多
在ISO/IEC国际标准SQL/MM的第三部分定义了空间数据及其相关例程用来存储、管理二维空间数据。
ISO/IEC 13249-3:2003, “Information technology – Database languages – SQL multimedia and application packages – Part 3: Spatial,” http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=31369.

OGC也定义了一套空间数据存储和操作标准。

Oracle为存储空间信息定义数据类型,可以表达点、线、面及其组合的几何体。逻辑上使用一列元素数组实现。如图所示



SDO_GEOMETRY数据类型有两个逻辑部分组成:几何体的空间参考系统(也叫坐标系统)和ElementArray。

ElementArray(或者说元素数组)描述了SDO_GEOMETRY对象的形状和位置。这一元素数组组


DESCRIBE SDO_GEOMETRY;
user type definition                                                                       TYPE SDO_GEOMETRY          AS OBJECT (
      SDO_GTYPE NUMBER,
      SDO_SRID        NUMBER,
      SDO_POINT       SDO_POINT_TYPE,
      SDO_ELEM_INFO   SDO_ELEM_INFO_ARRAY,
      SDO_ORDINATES   SDO_ORDINATE_ARRAY,
      MEMBER FUNCTION GET_GTYPE  RETURN NUMBER DETERMINISTIC, 
      MEMBER FUNCTION GET_DIMS RETURN NUMBER DETERMINISTIC,
      MEMBER FUNCTION GET_LRS_DIM RETURN NUMBER DETERMINISTIC) 
                               
ALTER TYPE SDO_GEOMETRY ADD MEMBER FUNCTION GET_WKB RETURN BLOB DETERMINISTIC,
ADD MEMBER FUNCTION GET_WKT RETURN CLOB DETERMINISTIC,
ADD MEMBER FUNCTION ST_CoordDim RETURN SMALLINT DETERMINISTIC,
ADD MEMBER FUNCTION ST_IsValid RETURN INTEGER DETERMINISTIC,
ADD CONSTRUCTOR FUNCTION SDO_GEOMETRY(wkt IN CLOB,
            srid IN INTEGER DEFAULT NULL) RETURN SELF AS RESULT,
ADD CONSTRUCTOR FUNCTION SDO_GEOMETRY(wkt IN VARCHAR2,
            srid IN INTEGER DEFAULT NULL) RETURN SELF AS RESULT,
ADD CONSTRUCTOR FUNCTION SDO_GEOMETRY(wkb IN BLOB,
            srid IN INTEGER DEFAULT NULL) RETURN SELF AS RESULT
CASCADE


SDO_GTYPE属性表示几何体类型,如点、线、面等
SDO_SRID属性表示空间参考系统的ID

如果几何体是点,最好使用SDO_POINT属性直接表示几何体,这样速度也要快些;
如果是其他类型,使用SDO_ORDINATES和SDO_ELEM_INFO存储坐标信息:
  • SDO_ORDINATES属性存储几何体的所有元素的坐标数据;
  • SDO_ELEM_INFO属性指定几何体元素在SDO_ORDINATES数组中的起始位置、链接方式(直线还是弧线),它是点还是线或者面。


SDO_GEOMETRY对象自带了GET_WKT()和GET_WKB()方法将几何体转换成标准的WKT和WKB。或者使用SDO_UTIL的TO_WKTGEOMETRY和TO_WKBGEOMETRY方法。

在SQL INSERT语句中直接使用SDO_GEOMETRY构造器生成几何体对象然后插入到数据库表中有诸多问题,第一是速度很慢,第二是插入的坐标数据有限(不能超过1000个)

参考:
Oracle Spatial基本操作

  • 大小: 45.2 KB
分享到:
评论

相关推荐

    使用Oracle Spatial对ArcSDE中的SDO_GEOMETRY类型数据进行空间操作

    "使用Oracle Spatial对ArcSDE中的SDO_GEOMETRY类型数据进行空间操作" Oracle Spatial 是 Oracle 数据库中的一个空间数据处理组件,用于存储、管理和操作空间数据。ArcSDE 是一个空间数据引擎,用于存储和管理大规模...

    Oracle Spatial 中的SDO_GEOMETRY类型

    Oracle Spatial 中的 SDO_GEOMETRY 类型详解 Oracle Spatial 中的 SDO_GEOMETRY 类型是对空间对象的几何描述,定义了空间对象的形状和位置。SDO_GEOMETRY 类型是 Oracle Spatial 的核心数据类型,用于存储和处理...

    Oracle为sdo_geometry创建空间索引

    sdo_geometry 是 Oracle 中的一种特殊数据类型,用于存储空间数据。例如,下面是一个创建包含 sdo_geometry 数据类型的表的示例: ```sql CREATE TABLE G_GADGETS_TC2_LF_520 ( ID NUMBER, SHAPE SDO_GEOMETRY ); ...

    Oracle sdo_geometry空间坐标系转换

    MDSYS.SDO_CS.TRANSFORM_LAYER('MY_GEOMETRY_TABLE', 4326, 23033); END; ``` #### 六、总结 通过上述介绍,我们可以看到Oracle数据库提供了强大的空间数据处理能力,特别是对于坐标系统的转换。无论是单个空间...

    EclipseLink通过JPA方式映射Sdo_geometry字段

    在处理特定数据库特性时,如Oracle的SDO_GEOMETRY(Spatial Data Object Geometry)类型,EclipseLink提供了扩展机制来支持这些非标准的数据类型。本文将详细解释如何通过EclipseLink和JPA来映射和操作SDO_GEOMETRY...

    oracle spatial

    在 Oracle Spatial 中,空间数据被存储在 SDO_GEOMETRY 字段中,这是一个符合 OpenGIS 规范的对象类型,包含了关于几何形状的信息,如类型(SDO_GTYPE)、空间参考ID(SDO_SRID),以及点(SDO_POINT)、线(SDO_...

    ORACLE SPATIAL 笔记(完整版)

    **SDO_GEOMETRY** 是 Oracle Spatial 提供的一种特殊的数据类型,用于存储空间数据,广泛应用于 GIS(地理信息系统)、CAD(计算机辅助设计)及 CAM(计算机辅助制造)等领域。 - **SDO_GTYPE**: 表示几何体类型,...

    Pro_Oracle_Spatial_for_Oracle_Database_11g_Apress.rar

    SDO_GEOMETRY是Oracle Spatial中的核心类型,用于存储空间对象。书中会介绍如何创建和使用R-Tree索引来加速空间查询。 3. **空间查询与分析**:包括基于距离、覆盖、相交等的空间关系查询,以及缓冲区分析、网络...

    OCCI添加Oracle特殊数据字段类型

    在 Oracle 数据库中,有多种特殊数据字段类型,例如 SDO_GEOMETRY 字段,该字段用于存储空间几何数据。SDO_GEOMETRY 字段是一种复杂的数据类型,无法使用普通的数据类型来存储,因此需要使用 OCCI 来添加对该字段的...

    OracleSpatial_OCI-code\code

    通过深入研究 "OracleSpatial_OCI-code" 中的代码,开发者可以了解到如何利用 OCI 接口来操作 Oracle Spatial 中的空间数据,这对于开发地理信息系统(GIS)应用程序或进行空间数据分析是非常有价值的。这个压缩包中...

    oracle.spatial的jar包

    在Java开发环境中,Oracle Spatial 提供了对应的jar包,如 `sdoutl.jar`、`sdoapi.jar` 和 `sdotype.jar`,以便开发者能够集成空间功能到他们的应用程序中。 `sdoutl.jar`:这是 Oracle Spatial 的输出库,包含了...

    ArcSDE vs Oracle Spatial

    尽管 `SDO_GEOMETRY` 是 Oracle Spatial 的核心几何类型,但在某些情况下,Oracle Spatial 也支持 `ST_GEOMETRY` 类型,这有助于与其他支持该类型的地理信息系统进行互操作。 ##### ArcSDE **1. ST_GEOMETRY** ...

    e10777_oracle_OracleSpatial_

    - **SDO_GEOMETRY对象类型**:Oracle Spatial引入了一个名为SDO_GEOMETRY的内置对象类型,用于存储几何对象,如点、线、面等。它包含了坐标系统信息、维度信息和几何图形的边界框。 - **地理坐标系统和投影坐标...

    Oracle Spatial和ArcSDE的应用比较研究.pdf

    Oracle Spatial存储机制:在Oracle的对象关系模型中,定义了一种新的对象模型,即空间对象类型SDO_GEOMETRY。该类型可以和其他数据类型一样单独存储于数据表中的某一列。SDO_GEOMETRY类型可以和其他数据类型一样...

    shp2sdo,shp转oracle spatial

    在Oracle Spatial中,空间数据通常存储在具有SDO_GEOMETRY列的表中,该列定义了空间对象的类型、维度、坐标和元数据。通过Oracle的SQL扩展,可以执行复杂的空间查询、分析和操作,如缓冲区分析、空间关系判断和地理...

    基于OracleSpatial的Shapefile数据存储研究

    在Oracle Spatial中,所有空间数据都存储在空间字段SDO_GEOMETRY中。SDO_GEOMETRY是根据OpenGIS规范定义的一个对象类型,包括以下几个关键组成部分: - **SDO_GTYPE**:定义存储对象的类型。 - **SDO_SRID**:标识...

    基于Oracle Spatial的矢量空间数据管理机制.pdf

    Oracle Spatial的数据模型包括对象关系模型和抽象数据类型SDO_GEOMETRY。对象关系模型可以存储和管理空间几何实体,抽象数据类型SDO_GEOMETRY可以存储矢量空间数据。 Oracle Spatial的数据组织结构是一个层次结构...

    Oracle Spatial用户指南

    Oracle Spatial使用SDO_GEOMETRY数据类型来存储空间对象,该数据类型包含了对象的几何信息和坐标系统信息。此外,还支持多种空间参考系统,允许用户在不同坐标系之间转换数据。 三、空间索引 为了提高空间查询的...

    Oracle Spatial的中文简介

    Oracle Spatial的核心功能是通过元数据表、空间数据字段(SDO_GEOMETRY)和空间索引来管理空间数据。元数据表存储了空间数据的相关信息,如数据表名称、空间字段、坐标范围、坐标参考系(SRID)和维度信息。用户通常...

Global site tag (gtag.js) - Google Analytics