• Oracle DB 11g空间数据 – 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  第三、四位代表形状,从0009共有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_INFOSDO_ORDINATES属性为空,此属性不为空,表示几何形状为“点”。

    “点”是一种比较特殊的类型,如果SDO_ELE_INFOSDO_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)代表圆形……

  • 相关阅读:
    01模拟面试面试题汇总
    第一轮面试
    大觅网03Day
    大觅网02Day
    大觅网01Day
    树状数组
    HH的项链
    小z的袜子
    分块
    扩展欧几里德
  • 原文地址:https://www.cnblogs.com/esestt/p/971855.html
Copyright © 2020-2023  润新知