Oracle空间对象特征表示
特点从Oracle Spatial的读取由一系列的属性值和几何数据。
除了FME Workbench添加到所有特性的通用FME特性属性之外(请参阅关于功能属性),甲骨文空间模块利用了以下特殊的属性和特质的名称:
属性/特征名称 |
内容 |
---|---|
oracle_type |
此属性存储在特性中存储的几何实体的类型。有效值为:
|
oracle_srid |
对于Oracle空间对象读取器,此属性设置为正在读取的几何图形的SRID值。如果SRID值为null,oracle_srid未在特性上设置。读取第一个特性时的SRID值用于在FME中查找一个坐标系统,然后在随后读取的所有特性上设置该坐标系统,即使它们的SRID值与第一个SRID值冲突。 对于Oracle空间对象写入器,oracle_srid指定的几何形状的SRID被写入每个特征类型(表)的基础上。它覆盖在笔者设定的坐标系。 在编写矢量几何图形时,Oracle空间对象编写器不使用此属性。 |
Coordsys | 这个trait存储了对应于Oracle SRID的FME坐标系统名称。这只出现在处理多个空间列启用。 |
对于从Oracle Spatial读取或写入的特性,数据库表中的每一列都有一个属性。特性属性名称将与源或目标列名相同。属性和列名是区分大小写的。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
Oracle空间的对象模型允许每个几何形状有一个“点”的位置,除了定义几何坐标的任何。它存储在一个字段信息命名SDO_POINT在几何对象中。
如果该字段在Oracle空间几何对象中不为null,则使用以下属性或几何特征将该位置存储在FME特性中:
属性/特征名称 |
内容 |
---|---|
oracle_sdo_point.x |
甲骨文空间几何的第一纵坐标 |
oracle_sdo_point.y |
甲骨文空间几何的第二纵坐标 |
oracle_sdo_point.z |
甲骨文空间几何的第三纵坐标 |
但是请注意,简单点通常在Oracle空间几何对象中使用空的纵坐标数组表示,实际的点位置存储在SDO_POINT
字段。在这种情况下,FME功能将有一个“点”的几何形状和将不包含oracle_sdo_point
属性。如果神谕几何体同时有一个定义点的纵坐标列表和一个定义SDO_POINT
字段,FME特征将包含一个点几何和所需的oracle_sdo_point
属性。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
Oracle空间对象结构每个几何对象具有零个或多个元素,每一个指定的数字类型。通常,这些类型的代表实际的几何形状的类型,如“点”或“线”,但也有定义为“未知”的一个类型。未知元素是由Oracle Spatial的对象几何计算程序忽略,并且可以通过应用存储任何数字数据他们认为合适的商店使用。
FME可以读写几何中的未知元素。它完全用表单的特征属性来表示未知元素oracle_unknown_element {m} .attrName,在那里米(米> = 0)是元件相对于其他未知元素的顺序位置,并attrName具有下列值之一。
属性名称 |
内容 |
---|---|
解释 |
解释告诉应用程序未知元素表示什么类型的数据。这个值可以是任意的整数值,FME或Oracle不会以任何方式专门解释它。 |
num_ordinates |
这指定坐标组成元素的数量。纵坐标被存储在Oracle作为数字的一维阵列。一个给定的元件可具有与其相关联的零个或多个坐标。 |
纵坐标{m} |
这是在给定的坐标位置的数字(0 <= M <=(num_ordinates-1))。它可以是在Oracle NUMBER类型的任何数量的可表示。 |
在给定特征的所有未知元素中,未知元素被给予一个序号,但不给予任何关于它们在几何图形中相对于其他元素的位置的提示。也就是说,FME将元素视为添加到Oracle几何对象中的信息数组,并且不注意元素与特性的“真实”几何元素的位置。当写入Oracle空间对象时,FME总是将未知元素放在几何图形中所有其他元素之前。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_nil
当对Oracle空间对象进行读写时,没有坐标的特性使用这个值标记。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_point
用这个值标记的特性由单个点或集合点组成。当使用对象模型时,标记为的聚合或线几何图形oracle_point将被写入为“点群”与存储为点实际坐标,一个或多个坐标,而不是被写为一个单一的坐标存储在输出几何对象的SDO_POINT或被迫成为一个oracle_line。
Oracle的定向点也得到了支持。在这种情况下,SDO_POINT字段设置为null,并且在FME特征上指定了点的方向,或者是三个描述三维空间方向的数字集合,或者是描述平面旋转的单个值,如下表所示。方向将通过阅读几何特征和属性,如下图所示。同样,在书写时,点的方向可以通过属性或特征来提供。
属性/特征名称 |
内容 |
---|---|
oracle_orientation |
点的方位,以度表示反时针从正X轴。读取时,这是由(I,J,K)方向向量所描述的取向的近似。当写入时,该值被用于计算在水平面上的(I,J,0)单位矢量,如果没有这样的(I,J,K)载体上被写入的特征限定。 |
oracle_orient_i |
描述该点的方向的矢量的“X轴”组分。该载体通常是在三维空间中的单位矢量。如果方向矢量的三个组分存在上的特征被写入,然后将载体在适当位置存在于oracle_orientation属性的任何值的使用。 |
oracle_orient_j |
描述点方向的向量的Y轴分量。上面关于oracle_orient_i的注释也适用于这个属性。 |
oracle_orient_k |
描述点方向的向量的Z轴分量。上面关于oracle_orient_i的注释也适用于这个属性。 |
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_line
读取或写入或从Oracle空间时的线性特征标记有这个值。单部分和骨料线性特征的支持。
聚合被写成包含几个线性元素的“多线”几何图形,就好像特性被标记了一样oracle_multiline。将丢弃聚合中包含的任何非线性元素。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_area
读取或写入或从Oracle空间时,区域功能都将带有该标志的值。无论是单部分,总面积功能都支持。的区域特征可以是多边形或环形多边形。注意检查来确保它可以在加载地区,设有坚持以Oracle空间的几何规则。
聚合被写为包含几个多边形元素的“多多边形”几何图形,就好像特征已经被标记oracle_multiline。丢弃集合中包含的任何非多边形元素。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_arc
当对Oracle空间对象模型进行读写时,Arc特性都使用这个值标记。在FME特征中,圆弧由一个中心点和一些属性定义圆弧的形状。
属性名称 |
内容 |
---|---|
oracle_primary_radius | 弧的半长轴的长度,以地面单位测量。 |
oracle_secondary_radius | 弧的半短轴的长度,以地面单位测量。 |
oracle_start_angle | 如何FME计算start_angle和sweep_angle |
oracle_sweep_angle | 如何FME计算start_angle和sweep_angle |
oracle_rotation | 主轴的旋转。旋转是以水平方向逆时针方向的度数来度量的。 |
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_rectangle
Oracle空间矩形目的通过闭合的多边形中FME表示。当读取一个矩形,它变成了一个封闭的多边形特征。当功能被写入标有oracle_rectangle类型,其最小外接矩形被计算,并且所得到的左下和右上的坐标将形成为Oracle几何坐标。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_circle
当对Oracle空间对象进行读写时,Circle特性使用这个值标记。在FME特征中,通过一个中心点和一个属性定义圆的半径:
属性名称 |
内容 |
---|---|
oracle_radius |
圆的半长轴的长度,以地面单位测量。 |
oracle_rotation |
主轴的旋转。旋转是以水平方向逆时针方向的度数来度量的。 |
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_solid
实体特性在对Oracle空间对象模型进行读写时使用这个值标记。
只有在写入Oracle数据库版本11g或更高版本时才支持可靠的特性。如果Oracle空间对象写入器检测到Oracle数据库的一个版本比version 11g更老,那么solid feature将在写入之前自动降级为2D表示。
Oracle Spatial Object直接支持简单固体、复合固体和优化固体。
对于书写,所有其他类型的实体几何(例如挤压)在书写之前被分解成简单的实体。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_surface
当对Oracle空间对象进行读写时,表面特征使用这个值标记。
只在写入Oracle数据库版本11g或更高版本时才支持Surface特性。如果Oracle空间对象写入器检测到Oracle数据库的一个版本比version 11g更老,surface features会在写入之前自动降级为2D表示。
Oracle Spatial Object直接支持复合曲面、3D多边形和矩形。
在读取时,3D多边形和矩形只有在阅读3D多边形的面参数设置为Yes。
对于书写,所有其他类型的曲面几何(例如,三角形扇形或条带)在书写之前被分解为复合曲面。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_multipoint
当从Oracle Spatial进行读写操作时,聚合点特性使用这个值进行标记。当写入Oracle时,集合的每个元素必须有一个“点”几何图形;有些在写作前就被丢弃了。
点聚合的每个元素都支持面向Oracle的点。在写的时候,这些可以被指定为每个点的特征。读取时,如果多点有一个方向,那么多点中的每个点几何元素将具有以下几何特征。
特质的名字 |
内容 |
---|---|
oracle_orientation | 点的方位,以度表示反时针从正X轴。读取时,这是由(I,J,K)方向向量所描述的取向的近似。当写入时,该值被用于计算在水平面上的(I,J,0)单位矢量,如果没有这样的(I,J,K)载体上被写入的特征限定。 |
oracle_orient_i | 描述该点的方向的矢量的“X轴”组分。该载体通常是在三维空间中的单位矢量。如果方向矢量的三个组分存在上的特征被写入,然后将载体在适当位置存在于oracle_orientation属性的任何值的使用。 |
oracle_orient_j | 描述点方向的向量的Y轴分量。上面关于oracle_orient_i的注释也适用于这个属性。 |
oracle_orient_k | 描述点方向的向量的Z轴分量。上面关于oracle_orient_i的注释也适用于这个属性。 |
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_multiline
当从Oracle Spatial读取或写入时,聚合线性特性使用这个值标记。当写入Oracle时,集合的每个元素必须有一个线性几何图形;有些在写作前就被丢弃了。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_multipoly
当从Oracle Spatial读取或写入时,聚合多边形特性使用这个值标记。当写入Oracle时,集合的每个元素必须有一个多边形几何;有些在写作前就被丢弃了。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_multisolid
当对Oracle空间对象进行读写时,聚合实体特性使用这个值标记。在写入Oracle时,集合的每个元素必须有一个立体的几何图形。
只有在写入Oracle数据库版本11g或更高版本时才支持可靠的特性。如果Oracle空间对象写入器检测到Oracle数据库的一个版本比version 11g更老,那么solid feature将在写入之前自动降级为2D表示。
Oracle Spatial Object直接支持简单固体、复合固体和优化固体。
对于书写,所有其他类型的实体几何图形(例如挤压)在书写之前被分解为简单的实体。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_multisurface
读取或写入或从Oracle空间对象时骨料的表面特征被标记有该值。当写入到Oracle,所述聚集体的每个元素必须具有表面几何形状。
只在写入Oracle数据库版本11g或更高版本时才支持Surface特性。如果Oracle空间对象写入器检测到Oracle数据库的一个版本比version 11g更老,surface features会在写入之前自动降级为2D表示。
Oracle Spatial Object直接支持复合曲面、3D多边形和矩形。
在读取时,3D多边形和矩形只有在阅读3D多边形的面参数设置为Yes。
对于书写,所有其他类型的曲面几何(例如,三角形扇形或条带)在书写之前被分解为复合曲面。
![关闭](http://www.baooytra.com/docs/fme/2017.1/html/FME_Desktop_Documentation/FME_ReadersWriters/Skins/Default/Stylesheets/Images/transparent.gif)
oracle_type:oracle_collection
读取或写入或从Oracle空间,当包含点,线,多边形特征异质集合聚集体被标记有该值。