Oracle Spacial(空间数据库)SDO_GEOMETRY介绍

create type SDO_GEOMETRY as object (

 SDO_GTYPE number,

 SDO_SRID number,

 SDO_POINT SDO_POINT_TYPE,

  SDO_ELEM_INFOMDSYS.SDO_ELEM_INFO_ARRAY,

 SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY

);

create type SDO_POINT_TYPE as object (

                         X number, y number, z number);

create type SDO_ELEM_INFO_ARRAY

                            asvarray(1048576) of number;

create type SDO_ORDINATE_ARRAY

                            asvarray(1048576) of number;


SDO_GTYPE

         指明了geometry的类型,对应OGIS几何对象模型中的类型

         是一个4位数字,格式为dltt,其中:

                   d代表geometry的维数:2,3,4

                   l代表线性参照系LRS测量维度,非LRS为0

                   tt指明了geometry的类型,00-07,08-99保留

         geometry的几个方法可以返回类型值

GET_DIMS, GET_LRS_DIM, GET_GTYPE

geometry类型

说明

dl00

UNKNOWN_GEOMETRY

Spatial忽略本类型

dl01

POINT

dl02

LINE or CURVE

折线或者带圆弧折线

dl03

POLYGON

多边形

dl04

COLLECTION

异质geometry集合

dl05

MULTIPOINT

点集

dl06

MULTILINE or MULTICURVE

线集

dl07

MULTIPOLYGON

多边形集



SDO_SRID

         SDO_SRID用来确定geometry所对应的空间参照系

                   null代表不对应任何参照系

                   非空值必须参照MDSYS.CS_SRS表的SRID字段,同时需要存入USER_SDO_GEOM_METADATA表的SRID字段

         在同一个字段里的所有geometry对象都必须具有相同的SRI


SDO_POINT

         为了性能优化而设置的

         如果SDO_ELEM_INFO和SDO_ORDINATES成员都为空的话,SDO_POINT就是一个POINT对象的坐标值,否则SDO_POINT被忽略

         如果图层中仅有POINT对象的话,强烈建议将坐标值存放在SDO_POINT中


SDO_ELEM_INFO
         变长的数值数组,说明SDO_ORDINATES成员中数值的意义
         每三个数值为一个单元,分别是:
                  SDO_STARTING_OFFSET:元素坐标值从SDO_ORDINATES数组第几个数开始,>=1
                  SDO_ETYPE:说明元素的类型,1/2/1003/2003表明是一个简单元素;4/1005/2005表明是一个复合元素
                  SDO_INTERPRETATION:当ETYPE=1003/2003,指明解释SDO_ORDINATES的方式;当ETYPE=1005/2005,指明后面的几个单元构成复合元素


SDO_ORDINATES
         SDO_ORDINATES是一个可变长度的数组,用于存储几何对象的真实坐标,该数组的类型为NUMBER型,它的最大长度为1048576。SDO_ORDINATES必须与SDO_ELEM_INFO数组配合使用,才具有实际意义;
         SDO_ORDINATES的坐标存储方式由几何对象的维数决定,
                如果几何对象为三维,则SDO_ORDINATES的坐标以{X1,Y1,Z1,X2,Y2,Z2,…..}的顺序排列,
                如果几何对象为二维,则SDO_ORDINATES的坐标以{X1,Y1,X2,Y2,…..}顺序排列。

有效性约束
        GTYPE=d001/d005(点),则ETYPE=1
        GTYPE=d002/d006(线),则ETYPE=2/4
        GTYPE=d003/d007(面),则ETYPE=3/5/1003/2003/1005/2005

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值