首页 理论教育 SDO_GEOMETRY示例

SDO_GEOMETRY示例

时间:2023-08-29 理论教育 版权反馈
【摘要】:下面将结合具体的例子,讨论如何利用SDO_GEOMETRY来构建二维和三维几何对象。

SDO_GEOMETRY示例

下面将结合具体的例子,讨论如何利用SDO_GEOMETRY来构建二维和三维几何对象。

3.2.7.1 点(Point)

在SDO_GEOMETRY中定义如图3-3所示的二维点:①SDO_GTYPE=2001,第一个数字“2”表示二维,最后一个数字“1”表示单一点;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=SDO_POINT_TYPE(x0,y0,NULL),表示其空间位置为(x0,y0);④SDO_ELEM_INFO and SDO_ORDINATES都是NULL。

单点(Point)也可以采用这两个元素来存储数据,但为了提高效率,这种方案尽量不要采用。

如图3-3所示的点处于三维中,并且其坐标点为(x0,y0,z0),则SDO_GEOMETRY的属性设置如下:①SDO_GTYPE=3001,第一个数字“3”表示三维,最后一个数字“1”表示单一点;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=SDO_POINT_TYPE(x0,y0,z0),表示其空间位置为(x0,y0,z0);④SDO_ELEM_INFO and SDO_ORDINATES都是NULL。

单点(Point)也可以采用这两个元素来存储数据,但为了提高效率,这种方案尽量不要采用。如果点维数超过了三维,则即使是单点也必须采用这两个属性来存储管理。

图3-3 点(Point)

3.2.7.2 直线段连接的线串(Line String)

在SDO_GEOMETRY中定义如图3-4所示的二维线串:①SDO_GTYPE=2002,第一个数字“2”表示二维,最后一个数字“2”表示线串;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,2,1},前面“1”表示从SDO_ORDINATES(1)开始,“2”表示线串,后面“1”表示线串是通过直线段连接的;⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3,x4,y4,x5,y5},存储坐标。

图3-4 线串(线段连接)

如图3-4所示的几何对象处于三维环境中,假定整数i∈[1,5],每个坐标点的Z值p(i).z=z(i),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3002,第一个数字“3”表示三维,最后一个数字“2”表示线串;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,2,1},前面“1”表示从SDO_ORDINATES(1)开始,“2”表示线串,后面“1”表示直线段连接;⑤SDO_ORDINATES={x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5},存储坐标。

3.2.7.3 圆弧段连接的线串(Line String)

在SDO_GEOMETRY中定义如图3-5所示的二维线串。①SDO_GTYPE=2002,第一个数字“2”表示二维,最后一个数字“2”表示线串;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,2,2},“1”表示从SDO_ORDINATES(1)开始,第一个数字“2”表示线串,第二个数字“2”表示线串是通过圆弧段连接的,{p1,p2,p3}与{p3,p4,p5}分别构成一个圆弧段;⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3,x4,y4,x5,y5},存储坐标。

图3-5 线串(线段连接)

如图3-5所示的几何对象处于三维环境中,假定整数i∈[1,5],每个坐标点的Z值p(i).z=z(i),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3002,第一个数字“3”表示三维,最后一个数字“2”表示线串;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,2,2},“1”表示从SDO_ORDINATES(1)开始,第一个数字“2”表示线串,第二个数字“2”表示圆弧段连接,{p1,p2,p3}与{p3,p4,p5}分别构成一个圆弧段;⑤SDO_ORDINATES={x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5},存储坐标。

3.2.7.4 直线段连接的单边界多边形(Polygon)

在SDO_GEOMETRY中定义如图3-6所示的单边界多边形:①SDO_GTYPE=2003,第一个数字“2”表示二维,最后一个数字“3”表示多边形;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1003,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,“1003”表示外环,第二个数字“1”表示是采用线段连接的;⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x1,y1},存储坐标。由于是封闭的,需要重复第一个点p1

图3-6 单边界多边形(线段连接)

如图3-6所示的几何对象处于三维环境中,假定整数i∈[1,5],每个坐标点的Z值p(i).z=z(i),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3003,第一个数字“3”表示三维,最后一个数字“3”表示多边形;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1003,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,“1003”表示外环,第二个数字“1”表示是采用线段连接的;⑤SDO_ORDINATES={x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5,x1,y1,z1},存储坐标。由于是封闭的,需要重复第一个点p1

3.2.7.5 圆弧段连接的单边界多边形(Polygon)

在SDO_GEOMETRY中定义如图3-7所示的圆弧段连接的单边界多边形:①SDO_GTYPE=2003,第一个数字“2”表示二维,最后一个数字“3”表示多边形;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1003,2},“1”表示从SDO_ORDINATES(1)开始,“1003”表示外环,“2”表示是采用圆弧段连接的,总共包含三个弧段{p1,p2,p3},{p3,p4,p5},{p5,p6,p1};⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x1,y1},存储坐标。由于是封闭的,需要重复第一个点p1。这里存储的节点个数应该总是奇数,例如,这里是七个节点。

图3-7 单边界多边形(圆弧段连接)

如图3-7所示的几何对象处于三维环境中,假定整数i∈[1,6],每个坐标点的Z值p(i).z=z(i),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3003,第一个数字“3”表示三维,最后一个数字“3”表示多边形;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1003,2},“1”表示从SDO_ORDINATES(1)开始,“1003”表示外环,“2”表示采用圆弧段连接的,总共包含三个弧段{p1,p2,p3},{p3,p4,p5},{p5,p6,p1};⑤SDO_ORDINATES={x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5,x6,y6,z6,x1,y1,z1},存储坐标。由于是封闭的,需要重复第一个点p1。这里存储的节点个数应该总是奇数,例如,这里是七个节点。

3.2.7.6 矩形(Rectangle/Box)

在SDO_GEOMETRY中定义如图3-8所示的矩形多边形:①SDO_GTYPE=2003,第一个数字“2”表示二维,最后一个数字“3”表示多边形;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1003,3},“1”表示从SDO_ORDINATES(1)开始,“1003”表示外环,“3”表示矩形;⑤SDO_ORDINATES={x1,y1,x2,y2},存储左下和右上两个节点坐标。

如图3-8所示的几何对象处于三维环境中,它是一个三维矩形,常用作包围盒。假定整数i∈[1,2],每个坐标点的Z值p(i).z=z(i),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3008,第一个数字“3”表示三维,最后一个数字“8”表示三维体;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1007,3},“1”表示从SDO_ORDINATES(1)开始,“1007”表示体元素,“3”表示三维优化矩形盒;⑤SDO_ORDINATES={x1,y1,z1,x2,y2,z2},存储左下和右上两个节点坐标。

图3-8 二维矩形多边形

例如:

SDO_GEOMETRY(3008,NULL,NULL,

SDO_ELEM_INFO_ARRAY(1,1007,3),

SDO_ORDINATE_ARRAY(1,1,1,3,3,3))

表示的就是一个最小边界点在(1,1,1),最大边界点在(3,3,3)的三维矩形。

3.2.7.7 圆(Circle/Sphere)

在SDO_GEOMETRY中定义如图3-9所示的圆形多边形:①SDO_GTYPE=2003,第一个数字“2”表示二维,最后一个数字“3”表示多边形;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1003,4},“1”表示从SDO_ORDINATES(1)开始,“1003”表示外环,“4”表示圆形;⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3},存储圆上的三个节点坐标。

图3-9 圆形多边形

注:Oracle Spatial11g中不支持优化球体。

3.2.7.8 复合线串(Compound Line String)

在SDO_GEOMETRY中定义如图3-10所示的二维复合线串:①SDO_GTYPE=2002,第一个数字“2”表示二维,最后一个数字“2”表示线串;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,4,2,1,2,1,5,2,2},各数字含义依次是“1”表示从SDO_ORDINATES(1)开始,“4”表示集合,“2”表示有两个元素(对于第一个元素{1,2,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,“2”表示线串,第二个数字“1”表示线串用线段连接;而对于第二个元素{5,2,2},“5”表示从SDO_ORDINATES(5)开始,第一个数字“2”表示线串,第二个数字“2”表示采用圆弧段连接);⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3,x4,y4,x5,y5},存储坐标。

图3-10 复合线串

如图3-10所示的几何对象处于三维环境中,假定整数i∈[1,5],每个坐标点的Z值p(i).z=z(i),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3002,第一个数字“3”表示三维,最后一个数字“2”表示线串;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,4,2,1,2,1,7,2,2},各数字含义依次是“1”表示从SDO_ORDINATES(1)开始,“4”表示集合,“2”表示有两个元素(对于第一个元素{1,2,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,“2”表示线串,第二个数字“1”表示线串用线段连接;对于第二个元素{7,2,2},“7”表示从SDO_ORDINATES(7)开始,第一个数字“2”表示线串,第二个数字“2”表示采用圆弧段连接);⑤SDO_ORDINATES={x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5},存储坐标。

3.2.7.9 复合多边形(Compound Polygon)

在SDO_GEOMETRY中定义如图3-11所示的二维复合多边形:①SDO_GTYPE=2003,第一个数字“2”表示二维,最后一个数字“3”表示多边形;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,4,2,1,2,2,9,2,1},各数字含义依次是“1”表示从SDO_ORDINATES(1)开始,“4”表示集合,“2”表示有两个元素(对于第一个元素{1,2,2},“1”表示从SDO_ORDINATES(1)开始,第一个数字“2”表示线串,第二个数字“2”表示圆弧段连接;对于第二个元素{9,2,1},“9”表示从SDO_ORDINATES(9)开始,“2”表示线串,“1”表示采用线段连接);⑤SDO_OR-DINATES={x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x1,y1},存储坐标。由于需要闭合,所以x1,y1重复存储。

图3-11 复合多边形

如图3-11所示的几何对象处于三维环境中,假定整数i∈[1,6],每个坐标点的Z值p(i).z=z(i),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3003,第一个数字“3”表示三维,最后一个数字“3”表示多边形;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,4,2,1,2,2,13,2,1},各数字含义分别为“1”表示从SDO_ORDINATES(1)开始,“4”表示集合,“2”表示有两个元素(对于第一个元素{1,2,2},“1”表示从SDO_ORDINATES(1)开始,第一个数字“2”表示线串,第二个数字“2”表示圆弧段连接;对于第二个元素{13,2,1},“13”表示从SDO_ORDINATES(13)开始,“2”表示线串,“1”表示采用线段连接);⑤SDO_ORDINATES={x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5,x6,y6,z6,x1,y1,z1},存储坐标。由于需要闭合,所以x1,y1,z1重复存储。(www.xing528.com)

3.2.7.10 带洞多边形(Polygon With Hole)

在SDO_GEOMETRY中定义如图3-12所示的二维带洞多边形:①SDO_GTYPE=2003,第一个数字“2”表示二维,最后一个数字“3”表示多边形;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1003,1,13,2003,1},(对于第一个元素{1,1003,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,“1003”表示外环,第二个数字“1”表示线段连接;对于第二个元素{13,2003,1},“13”表示从SDO_ORDINATES(13)开始,“2003”表示内环,“1”表示采用线段连接);⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x1,y1,x6,y6,x7,y7,x8,y8,x6,y6},存储坐标。由于需要闭合,{x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x1,y1}表示外环,x1,y1重复存储;由于是外环,节点按照逆时针方向存储。{x6,y6,x7,y7,x8,y8,x6,y6}表示内环,x6,y6重复存储以保证闭合,且由于是内环,需按照顺时针方向存储。

如图3-12所示的几何对象处于三维环境中,假定整数i∈[1,8],每个坐标点的Z值p(i).z=z(i),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3003,第一个数字“3”表示三维,最后一个数字“3”表示多边形;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1003,1,19,2003,1}(对于第一个元素{1,1003,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,“1003”表示外环,第二个数字“1”表示线段连接;对于第二个元素{19,2003,1},“19”表示从SDO_ORDINATES(19)开始,“2003”表示内环,“1”表示采用线段连接);⑤SDO_ORDINATES={x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5,x1,y1,z1,x6,y6,z6,x7,y7

z7,x8,y8,z8,x6,y6,z6},存储坐标。由于需要闭合,{x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5,x1,y1,z1}表示外环,x1,y1,z1需要重复存储,且由于是外环,节点应按照逆时针方向存储。{x6,y6,z6,x7,y7,z7,x8,y8,z8,x6,y6,z6}表示内环,x6,y6,z6需要重复存储以保证闭合,且由于是内环,应按照顺时针方向存储。

图3-12 带洞多边形

3.2.7.11 点集合(MultiPoint)

在SDO_GEOMETRY中定义如图3-13所示的点集合:①SDO_GTYPE=2005,第一个数字“2”表示二维,最后一个数字“5”表示多点;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1,1,3,1,1,5,1,1}(对于第一个元素{1,1,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,第二个数字“1”表示点元素,第三个数字“1”表示连接方式也是点;对于第二个元素{3,1,1},“3”表示从SDO_ORDINATES(3)开始,第一个数字“1”表示是点元素,第二个数字“1”表示连接方式也是点;对于第三个元素{5,1,1},“5”表示从SDO_ORDINATES(5)开始,第一个数字“1”表示点元素,第二个数字“1”表示连接方式也是点);⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3}。

如图3-13所示的几何对象处于三维环境中,假定整数i∈[1,3],每个坐标点的Z值p(i).z=z(i),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3005,第一个数字“3”表示三维,最后一个数字“5”表示多点;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1,1,4,1,1,7,1,1}(对于第一个元素{1,1,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,第二个数字“1”表示点元素,第三个数字“1”表示连接方式也是点;对于第二个元素{4,1,1},“4”表示从SDO_ORDINATES(4)开始,第一个数字“1”表示点元素,第二个数字“1”表示连接方式也是点;对于第三个元素{7,1,1},“7”表示从SDO_ORDINATES(7)开始,第一个数字“1”表示点元素,第二个数字“1”表示连接方式也是点);⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3}。

图3-13 点集合

3.2.7.12 线串集合(MultiLine String)

在SDO_GEOMETRY中定义如图3-14所示的线串集合:①SDO_GTYPE=2006,第一个数字“2”表示二维,最后一个数字“6”表示多线串;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,2,1,5,2,2}(对于第一个元素{1,2,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,“2”表示点元素,第二个数字“1”表示直线段连接;对于第二个元素{5,2,2},“5”表示从SDO_ORDINATES(5)开始,第一个数字“2”表示点元素,第二个数字“2”表示圆弧段连接);⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3,x4,y4,x5,y5}。

图3-14 线串集合

如图3-14所示的几何对象处于三维环境中,假定整数i∈[1,5],每个坐标点的Z值p(i).z=z(i),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3006,第一个数字“3”表示三维,最后一个数字“6”表示多线串;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,2,1,7,2,2}(对于第一个元素{1,2,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,“2”表示点元素,第二个数字“1”表示直线段连接;对于第二个元素{7,2,2},“7”表示从SDO_ORDINATES(7)开始,第一个数字“2”表示点元素,第二个数字“2”表示圆弧段连接);⑤SDO_ORDINATES={x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5}。

3.2.7.13 多边形集合(MultiPolygon)

在SDO_GEOMETRY中定义如图3-15所示的多边形集合:①SDO_GTYPE=2007,第一个数字“2”表示二维,最后一个数字“7”表示多边形集合;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1003,1,13,1003,1}(对于第一个元素{1,1003,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,“1003”表示外环,第二个数字“1”表示直线段连接;对于第二个元素{13,1003,1},“13”表示从SDO_ORDINATES(13)开始,“1003”表示外环,“1”表示直线段连接);⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x1,y1,x6,y6,x7,y7,x8,y8,x6,y6},由于两个多边形都要封闭,所以需要重复存储x1,y1和x6,y6

图3-15 多边形集合

注:在三维中没有MultiPolygon对象,只有MultiSurface几何对象,所以关于图3-15的三维几何对象,只能将其表示成两个Surface元素,然后由这两个Surface元素构建一个MultiSurface几何对象,具体请参考MultiSurface的几何示例。当然,还有另外一种解决方案就是将其处理成两个三维共面多边形的集合,请参考集合Collection。

3.2.7.14 集合(Collection)

在SDO_GEOMETRY中定义如图3-16所示的二维异形集合:①SDO_GTYPE=2004,第一个数字“2”表示二维,最后一个数字“4”表示集合;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,2,1,9,1,1,11,1003,1}(对于第一个线串元素{1,2,1},第一个数字“1”表示从SDO_ORDINATES(1)开始,“2”表示线串,第二个数字“1”表示直线段连接;对于第二个点元素{9,1,1},“9”表示从SDO_ORDINATES(9)开始,第一个数字“1”表示点元素,第二个数字“1”表示连接为点;对于第三个多边形元素{11,1003,1},“11”表示从SDO_ORDINATES(11)开始,“1003”表示多边形外环,“1”表示直线段连接);⑤SDO_ORDINATES={x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x8,y8,x7,y7,x6,y6},第三个元素为多边形,由于是外环,节点顺序应该是逆时针方法,所以它们的节点排列为{x6,y6,x8,y8,x7,y7,x6,y6}。

图3-16 集合

如图3-16所示的几何对象处于三维环境中,假定整数i∈[1,8],每个坐标点的Z值p(i).z=z(i),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3004,第一个数字“3”表示三维,最后一个数字“4”表示集合;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,2,1,13,1,1,16,1003,1}(对于第一个线串元素{1,2,1},其中第一个数字“1”表示从SDO_ORDINATES(1)开始,“2”表示线串,第二个数字“1”表示直线段连接;对于第二个点元素{13,1,1},其中“13”表示从SDO_ORDINATES(13)开始,第一个数字“1”表示点元素,第二个数字“1”表示连接为点;对于第三个多边形元素{16,1003,1},其中“16”表示从SDO_ORDINATES(16)开始,“1003”表示多边形外环,“1”表示直线段连接);⑤SDO_ORDINATES={x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5,x6,y6,z6,x8,y8,z8,x7,y7,z7,x6,y6,z6},第三个元素为多边形,由于是外环,节点顺序应该是逆时针方法,所以它们的节点排列为{p6,p8,p7,p6}。

3.2.7.15 曲面(Surface)

曲面(Surface)是只针对三维环境的几何对象类型。在三维环境中,多边形都是共面的。一个曲面由一个或多个多边形构成。以图3-17中的两个可见面{p1,p4,p6,p3}和{p4,p5,p6}构成的曲面为例,假定整数i∈[1,6],节点p(i)=(xi,yi,zi),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3003,第一个数字“3”表示三维,最后一个数字“3”表示三维曲面;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1006,2,1,1003,1,16,1003,1},各数字含义依次为“1”表示从SDO_ORDINATES(1)开始,“1006”表示由多边形构成曲面,“2”表示构成曲面的多边形个数为2,“1”表示第一个多边形坐标,“1003”表示外多边形环,“1”表示直线段连接方式,“16”从SDO_ORDINATES(16)开始,“1003”表示外多边形环,“1”表示直线段连接方式;⑤SDO_ORDINATES={x1,y1,z1,x4,y4,z4,x6,y6,z6,x3,y3,z3,x1,y1,z1,x4,y4,z4,x5,y5,z5,x6,y6,z6,x4,y4,z4},其中,{x1,y1,z1,x4,y4,z4,x6,y6,z6,x3,y3,z3,x1,y1,z1}是第一个多边形的坐标序列,{x4,y4,z4,x5,y5,z5,x6,y6,z6,x4,y4,z4}是第二个多边形的坐标序列。

图3-17 三棱柱体

3.2.7.16 曲面集合(MultiSurface)

曲面集合是由多个曲面对象构成的一个集合。它可以存放相接的曲面,也可以存放不相接的曲面。对于图3-17,如果要构建的是三棱柱的整个外表面,可以采用多曲面集合。假定整数i∈[1,6],节点p(i)=(xi,yi,zi),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3007,第一个数字“3”表示三维,最后一个数字“7”表示多曲面集合(MultiSurface);②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1007,1,1,1006,5,1,1003,1,13,1003,1,28,1003,1,43,1003,1,58,1003,1},各数字含义依次为“1”表示从SDO_ORDINATES(1)开始,“1007”表示由曲面构成体,“1”表示构成体的曲面数为1,“1”表示第一个外曲面开始坐标,“1006”表示外曲面,“5”表示由五个多边形构成外曲面,“1”表示第一个Polygon从SDO_ORDINATES(1)开始,“1003”表示外多边形环,“1”表示线段连接,“13”表示第二个多边形从SDO_ORDINATES(13)开始,“1003”表示外多边形环,“1”表示线段连接,“28”表示第三个多边形从SDO_ORDINATES(28)开始,“1003”表示外多边形环,“1”表示线段连接,“43”表示第四个多边形从SDO_ORDINATES(43)开始,“1003”表示外多边形环,“1”表示线段连接,“58”表示第五个多边形从SDO_ORDINATES(58)开始,“1003”表示外多边形环,“1”表示线段连接;⑤SDO_ORDINATES={x3,y3,z3,x2,y2,z2,x1,y1,z1,x3,y3,z3,x1,y1,z1,x4,y4,z4,x6,y6,z6,x3,y3,z3,x1,y1,z1,x1,y1,z1,x2,y2,z2,x5,y5,z5,x4,y4,z4,x1,y1,z1,x2,y2,z2,x3,y3,z3,x6,y6,z6,x5,y5,z5,x2,y2,z2,x4,y4,z4,x5,y5,z5,x6,y6,z6,x4,y4,z4},{x3,y3,z3,x2,y2,z2,x1,y1,z1,x3,y3,z3}表示第1个多边形{p3,p2,p1}坐标序列,{x1,y1,z1,x4,y4,z4,x6,y6,z6,x3,y3,z3,x1,y1,z1}表示第2个多边形{p1,p4,p6,p3}坐标序列,{x1,y1,z1,x2,y2,z2,x5,y5,z5,x4,y4,z4,x1,y1,z1}表示第3个多边形{p1,p2,p5,p4}坐标序列,{x2,y2,z2,x3,y3,z3,x6,y6,z6,x5,y5,z5,x2,y2,z2}表示第4个多边形{p2,p3,p6,p5}坐标序列,{x4,y4,z4,x5,y5,z5,x6,y6,z6,x4,y4,z4}表示第5个多边形{p4,p5,p6}坐标序列。

3.2.7.17 体(Solid)

体是由一个封闭的外曲面和0~n个内部曲面构成的。以图3-17所示的三棱柱体为例,假定整数i∈[1,6],节点p(i)=(xi,yi,zi),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3008,第一个数字“3”表示三维,最后一个数字“8”表示三维体;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1007,1,1,1006,5,1,1003,1,13,1003,1,28,1003,1,43,1003,1,58,1003,1},各数字含义依次为“1”表示从SDO_ORDINATES(1)开始,“1007”表示由曲面构成体,“1”表示构成体的曲面数为1,“1”表示第一个外曲面开始坐标,“1006”表示外曲面,“5”表示由5个多边形构成外曲面,“1”表示第一个多边形从SDO_ORDINATES(1)开始,“1003”表示外多边形环,“1”表示线段连接,“13”表示第二个多边形从SDO_ORDINATES(13)开始,“1003”表示外多边形环,“1”表示线段连接,“28”表示第三个多边形从SDO_ORDINATES(28)开始,“1003”表示外多边形环,“1”表示线段连接,“43”表示第四个多边形从SDO_ORDINATES(43)开始,“1003”表示外多边形环,“1”表示线段连接,“58”表示第五个多边形从SDO_ORDINATES(58)开始,“1003”表示外多边形环,“1”表示线段连接;⑤SDO_ORDINATES={x3,y3,z3,x2,y2,z2,x1,y1,z1,x3,y3,z3,x1,y1,z1,x4,y4,z4,x6,y6,z6,x3,y3,z3,x1,y1,z1,x1,y1,z1,x2,y2,z2,x5,y5,z5,x4,y4,z4,x1,y1,z1,x2,y2,z2,x3,y3,z3,x6,y6,z6,x5,y5,z5,x2,y2,z2,x4,y4,z4,x5,y5,z5,x6,y6,z6,x4,y4,z4},{x3,y3,z3,x2,y2,z2,x1,y1,z1,x3,y3,z3}表示第一个多边形{p3,p2,p1}坐标序列,{x1,y1,z1,x4,y4,z4,x6,y6,z6,x3,y3,z3,x1,y1,z1}表示第二个多边形{p1,p4,p6,p3}坐标序列,{x1,y1,z1,x2,y2,z2,x5,y5,z5,x4,y4,z4,x1,y1,z1}表示第三个多边形{p1,p2,p5,p4}坐标序列,{x2,y2,z2,x3,y3,z3,x6,y6,z6,x5,y5,z5,x2,y2,z2}表示第四个多边形{p2,p3,p6,p5}坐标序列,{x4,y4,z4,x5,y5,z5,x6,y6,z6,x4,y4,z4}表示第五个多边形{p4,p5,p6}坐标序列。

3.2.7.18 体集合(MultiSolid)

MultiSolid是由一个或多个体构成的集合。以图3-18所示为例,可以采用MultiSolid来构建图中的三棱柱和四面体。假定整数i∈[1,10],节点p(i)=(xi,yi,zi),则SDO_GEOMETRY的属性值设置如下:①SDO_GTYPE=3009,第一个数字“3”表示三维,最后一个数字“9”表示多体;②SDO_SRID=NULL,表示空间参考坐标系统为NULL;③SDO_POINT=NULL,不是点,不采用本属性;④SDO_ELEM_INFO={1,1008,2,1,1007,1,1,1006,5,1,1003,1,13,1003,1,28,1003,1,43,1003,1,58,1003,1,70,1007,1,70,1006,5,70,1003,1,82,1003,1,94,1003,1,106,1003,1},各数字含义依次为“1”表示从SDO_ORDINATES(1)开始,“1008”表示由多个单体构成多体,“2”表示体的个数为2,“1”表示第一个体从SDO_ORDINATES(1)开始,“1007”表示由曲面构成体,“1”表示构成体的曲面数为1,“1”表示第一个外曲面开始坐标,“1006”表示外曲面,“5”表示由五个多边形构成外曲面,“1”第一个多边形从SDO_ORDINATES(1)开始,“1003”表示外多边形环,“1”表示线段连接,“13”表示第二个多边形从SDO_ORDINATES(13)开始,“1003”表示外多边形环,“1”表示线段连接,“28”表示第三个多边形从SDO_ORDINATES(28)开始,“1003”表示外多边形环,“1”表示线段连接,“43”表示第四个多边形从SDO_ORDINATES(43)开始,“1003”表示外多边形环,“1”表示线段连接,“58”表示第五个多边形从SDO_ORDINATES(58)开始,“1003”表示外多边形环,“1”表示线段连接,“70”表示第二个体从SDO_ORDINATES(70)开始,“1007”表示由曲面构成体,“1”表示构成体的曲面数为1,“70”表示第一个外曲面开始坐标,“1006”表示外曲面,“5”表示由五个多边形构成外曲面,“70”表示第一个多边形从SDO_ORDINATES(70)开始,“1003”表示外多边形环,“1”表示线段连接,“82”表示第二个多边形从SDO_ORDINATES(82)开始,“1003”表示外多边形环,“1”表示线段连接,“94”表示第三个多边形从SDO_ORDINATES(94)开始,“1003”表示外多边形环,“1”表示线段连接,“106”表示第四个多边形从SDO_ORDINATES(106)开始,“1003”表示外多边形环,“1”表示线段连接;⑤SDO_ORDINATES={

--第1Solid,三棱柱

x3,y3,z3,x2,y2,z2,x1,y1,z1,x3,y3,z3表示第一个多边形{p3,p2,p1

x1,y1,z1,x4,y4,z4,x6,y6,z6,x3,y3,z3,x1,y1,z1表示第二个多边形{p1,p4,p6,p3

x1,y1,z1,x2,y2,z2,x5,y5,z5,x4,y4,z4,x1,y1,z1表示第三个多边形{p1,p2,p5,p4

x2,y2,z2,x3,y3,z3,x6,y6,z6,x5,y5,z5,x2,y2,z2表示第四个多边形{p2,p3,p6,p5

x4,y4,z4,x5,y5,z5,x6,y6,z6,x4,y4,z4表示第五个多边形{p4,p5,p6

--第2Solid,四面体

x7,y7,z7,x8,y8,z8,x9,y9,z9,x7,y7,z7表示第一个多边形{p7,p8,p9

x7,y7,z7,x9,y9,z9,x10,y10,z10,x7,y7,z7表示第二个多边形{p7,p9,p10

x8,y8,z8,x10,y10,z10,x9,y9,z9,x8,y8,z8表示第三个多边形{p8,p10,p9

x8,y8,z8,x7,y7,z7,x10,y10,z10,x8,y8,z8}表示第四个多边形{p8,p10,p9

};

图3-18 三棱柱体和四面体

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈