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

Oracle 11g空间数据 – SDO_GEOMETRY类型

阅读更多
http://database.ctocio.com.cn/tips/467/7683467.shtml
 SDO_GEOMETRY是空间数据中最基本的类型,此类型用于存储几何形状……

  SDO_GEOMETRY是空间数据中最基本的类型,此类型用于存储几何形状。定义如下:

  CREATE 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 
  );

  其中包括了5个属性和3个函数。

  SDO_GTYPE

  SDO_GTYPE用于定义SDO_GEOMETRY的类型,由四位数组成:

  u 第一位代表了维数,可以是二维、三维、四维;

  u 第二位标识Linear Referencing System (LRS),非LRS的类型,此值为0;

  u 第三、四位代表形状,从00到09共有10种类型。00 – 忽略此形状;01 – 点;02 – 线;03 – 多边形或面;04 – 类型的集合;05 – 01类型的集合,既多点集;06 – 02类型的集合;07 – 03类型的集合;08 – 体(三维空间中有多个面封闭起来的空间);09 – 08类型的集合;

  SDO_SRID

  坐标系统的ID,可在MDSYS.SDO_COORD_REF_SYS表中找到坐标信息。

  SDO_POINT

  如果SDO_ELE_INFO与SDO_ORDINATES属性为空,此属性不为空,表示几何形状为“点”。

  “点”是一种比较特殊的类型,如果SDO_ELE_INFO与SDO_ORDINATES属性不为空,即使给出了SDO_POINT的值也将会被忽略。SDO_POINT_TYPE类型由x, y, z定义一个点的坐标,如果是二维点,z值为null。

  此外,有向点不使用SDO_TYPE属性。

  SDO_ORDINATES

  此属性是一个数组,包含了几何形状所有的坐标点。比如二维系统中,SDO_ORDINATES(5, 4, 2, 12, 8, 15, 3, 7)包含了四个点,分别是(5, 4); (2, 12); (8, 15); (3, 7)。

  SDO_ELEM_INFO

  SDO_ELEM_INFO代表几何形状包含的元素的信息,最基本的元素是点。比如,一个立方体包含多个面元素。元素还可以包含自己的子元素。

  一个元素的信息是一个数组,数组中有三个数。如(1, 1003, 1, 4, 2003, 1)包含两个元素,第一个元素是(1, 1003, 1),第二个元素是(4, 2003, 1)。每一个数组的含义如下:

  u 第一个数代表了元素在SDO_ORDINATES中起始偏移位。如SDO_ORDINATES是(5, 4, 2, 12, 8, 15, 3, 7),元素的起始偏移位是5,那么(8, 15)是元素的第一个点。如果元素是连接的,那么元素最后点的偏移位就是下一元素的起始偏移位,如(8, 15)是元素的终点,同时也是下一元素的起点。

  u 第二个数代表了元素的类型,最多有四位。如果元素是复合类型,那么在它之后跟着是它的子元素。

  u 第三个数指名如何解释元素。对复合元素来说,表明它子元素的个数。对单元素来说,通常元素类型的进一步解释,比如(1, 1003, 3)代表矩形,(1, 1003, 4)代表圆形……
分享到:
评论
1 楼 bgren 2009-11-26  
我用空间数据添加一个圆的数据,在geoserver中怎么也显示不出来,但是点击圆的那个位置却能显示相关字段信息,以下是该例子:
CREATE TABLE cola_markets ( mkt_id NUMBER PRIMARY KEY,name VARCHAR2(32),
shape MDSYS.SDO_GEOMETRY); --先建一个表
然后插入一个多边形:
INSERT INTO cola_markets VALUES(
1,
'cola_a',
MDSYS.SDO_GEOMETRY(
2003, -- 2-dimensional polygon
NULL,
NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3), -- one rectangle (1003 = exterior)
MDSYS.SDO_ORDINATE_ARRAY(1,1, 5,7) -- only 2 points needed to
-- define rectangle (lower left and upper right) with
-- Cartesian-coordinate data
)
);
上面插入的多边形是能够显示的(当然要先建空间索引),但是当插入一个圆时:
INSERT INTO cola_markets VALUES(
4,
'cola_d',
MDSYS.SDO_GEOMETRY(
2003, -- 2-dimensional polygon
NULL,
NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,4), -- one circle
MDSYS.SDO_ORDINATE_ARRAY(8,7, 10,9, 8,11)
)
);
无论我怎样更新索引也好,把geoserver里的连接重建也好,都看不到那个圆,只是点击圆的位置能有相关字段信息而已。而且文档中还有插入Compound Line String ,Compound Polygon 的呢,但是都一样不能显示,而且这些连字段信息也不显示。不知道要怎么办?
问题很长,先给那些有耐心看完的人一拜!!~~
    是不是我设的样式  sld有问题?
   有点着急   谢谢你在百忙中回答一下。 我的邮箱  ccsr_renbg@126.com

相关推荐

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

    在 Oracle Spatial 中,SDO_GEOMETRY 是一个用于存储空间数据的数据类型。本文将介绍如何使用 Oracle Spatial 对 ArcSDE 中的 SDO_GEOMETRY 类型数据进行空间操作。 一、在 Oracle Spatial 中建立 SDO_GEOMETRY ...

    Oracle为sdo_geometry创建空间索引

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

    Oracle Spatial 中的SDO_GEOMETRY类型

    SDO_GEOMETRY 类型是 Oracle Spatial 的核心数据类型,用于存储和处理空间数据。 SDO_GEOMETRY 类型的定义 SDO_GEOMETRY 类型是一个对象类型,由多个属性字段组成,包括 SDO_GTYPE、SDO_SRID、SDO_POINT、SDO_ELEM...

    Oracle sdo_geometry空间坐标系转换

    在Oracle数据库中,`sdo_geometry`数据类型被广泛应用于地理信息系统(GIS)领域,用于存储和处理空间数据。其中,空间坐标系的转换是一项重要的功能,尤其是在需要将不同坐标系下的地理数据进行集成与分析时。本文将...

    EclipseLink通过JPA方式映射Sdo_geometry字段

    首先,为了能够在EclipseLink中处理SDO_GEOMETRY字段,你需要引入Oracle提供的特定jar包,这些包包含了处理Oracle空间数据类型的类和接口。这些jar通常包括`ojdbc.jar`和`orai18n.jar`等,它们包含了对SDO_GEOMETRY...

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

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

    oracle spatial

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

    将shp格式空间数据转换为Oracle SDO数据类型操作步骤

    其中,SHP(Shapefile)是一种常见的矢量数据格式,而Oracle SDO(Spatial Data Object)是Oracle数据库中用于存储和管理地理空间数据的数据类型。当我们需要在Oracle数据库中使用SHP文件中的空间数据时,就需要进行...

    Oracle数据库空间数据类型和空间函数扩展实现.pdf

    3. Oracle数据库的空间数据类型和空间函数:包括SDO_GEOMETRY、SDO_POINT、SDO_LINESTRING等空间数据类型,和SDO_WITHIN_DISTANCE、SDO_RELATE、SDO_INTERSECTION等空间函数。 4. 用户自定义类型和函数:用户可以...

    运用Hibernate来支持在Oracle中的Java3D虚拟场景

    在Oracle中,一个基于...3D模型在Oracle 11g空间数据中存储和建模,也开发了2个自定义Java类来映射Oracle 11g空间类型中的SDO_GEOMETRY数据类型,用于解决Hibernate目前不支持对SDO_GEOMETRY数据类型进行映射的问题。

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

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

    SDO-Geometry结构说明

    SDO-Geometry结构说明,1 创建Oracle Spatial表说明Concatenate the segments that were just split

    学习Oracle数据库的空间数据类型.pdf

    Oracle数据库在空间数据类型的支持上,为满足GIS(地理信息系统)和CAD/CAM(计算机辅助设计/计算机辅助制造)等领域的需求,提供了丰富的功能。自9i版本起,Oracle引入了空间数据类型和相关操作,以及空间索引机制...

    oracle-java数据类型1

    在 Oracle 数据库与 Java 应用程序交互时,理解 SQL 数据类型和它们对应的 JDBC 类型以及 Oracle 扩展的 Java 类型是至关重要的。这里我们将深入探讨这些概念,并提供一个全面的指南。 首先,JDBC(Java Database ...

    空间数据类型例子大集合

    在Oracle数据库中,这些对象通常使用SDO_GEOMETRY对象类型来表示。下面将详细介绍标题和描述中提及的空间数据类型及其例子。 1. **矩形(Rectangle)** 矩形是二维几何对象的一种,它可以通过两个对角点定义。在...

    基于Oracle Spatial的地质空间数据管理系统的研究与实现.pdf

    这种模型允许在一个数据表中存储空间实体,表中的一个字段类型为MDSYS.SDO_GEOMETRY,用一行记录来存储一个空间数据实体。SDO_GEOMETRY类型包含几个关键组成部分,如SDO_GTYPE用于标识几何体类型,SDO_SRID标识坐标...

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

    Oracle Spatial把纯关系型数据库改造为对象关系型数据库,在数据类型中添加SDO_GEOMETRY类型,把空间信息作为一个字段存储;而ArcSDE则利用多张关联的表来把空间数据存储到纯关系型数据库中。 实际应用中,如何...

    Pro_Oracle_Spatial_for_Oracle_Database_11g_Apress.rar

    《Pro Oracle Spatial for Oracle Database 11g》是Oracle数据库11g版本中关于空间管理的一本专业著作,深入探讨了Oracle Spatial的功能和应用。Oracle Spatial是Oracle数据库的一个重要组件,专门用于处理地理空间...

Global site tag (gtag.js) - Google Analytics