Oracle Spatial所支持的几何对象,就是一个有序点列,这些点通过直线段或圆弧段连接构成不同的几何对象类型。几何对象的语义由其类型决定。Oracle Spatial支持多种基础类型和复合类型的几何对象,其中二维的几何对象类型主要有:
(1)点和点束(Points and Point Clusters);
(2)线串(Line Strings);
(3)简单多边形(n-Point Polygons);
(4)弧段、线串(Arc Line Strings);
(5)弧段多边形(Arc Polygons);
(6)复合多边形(Compound Polygons);
(7)复合线串(Compound Line Strings);
(8)圆(Circles);
(9)优化矩形(Optimized Rectangles)。
二维点(Two-Dimensional Points)是由X和Y坐标组成的,经常与经、纬度相关。线串(Line Strings)由一个或多个点对定义的线段组成。多边形(Polygons)是由相互连接构成环的线串组成,其区域是多边形所隐含的。例如,一个点可以表示一个建筑位置,一个线串可以表示一条飞机跑道,一个多边形可以表示一个城市或区域。Oracle Spatial不支持自相交的多边形。如果一个封闭的线串自相交,它是不能变成一个多边形的。Oracle Spatial所支持的二维几何类型,见图3-1和表3-1。
除了支持二维几何对象外,Oracle Spatial还支持三维和四维的几何对象。由于三维几何对象和四维几何对象主要通过点的维度不同来表示,所以这里主要讨论三维几何对象类型。三维几何对象类型主要包括点(Points)、点云(Point Clouds)、线(Lines)、多边形(Polygons)、面(Surfaces)和体(Solids)。表3-2显示了三维(3D)几何对象的类型及元素关系。
图3-1 Oracle Spatial支持的二维几何对象类型
注:所有的弧段都是圆弧(www.xing528.com)
表3-1 Oracle Spatial支持的二维(2D)几何对象类型
表3-2 Oracle Spatial支持的三维(3D)几何对象类型
续表3-2
这里的SDO_GTYPE是一个NUMBER型的值,用于描述几何对象类型。它由四个数字组成,其形式为DLTT,具体含义如下:
(1)D表示几何对象的维数,可以是2、3、4。
(2)L表示三维线性参照系统(Linear Referencing System,LRS)几何对象的线性参考度量维,也就是说,维度(3或4)包含度量值。对于一个非LRS几何对象,其默认值为0。
(3)TT表示几何类型,如00表示未知,01表示点,02表示线,03表示面,04表示集合,05表示多点,06表示多线,07表示多面,08表示体,09表示多体,具体参见表3-1和表3-2。
上面的脚本实现了对OVCDEMO数据库中所有几何对象类型的输出。第一个FOR循环输出ovcpoints表中几何对象的类型。第二个FOR循环输出ovclines表中几何对象的类型。第三个FOR循环输出ovcpolygons表中几何对象的类型。输出结果为:
2001
2002
2003
这说明ovcpoints表中的所有几何对象类型都是2001(单点),ovclines表中的所有几何对象类型都是2002(线串),ovcpolygons表中的所有几何对象类型都是2003(多边形)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。