<< Click to Display Table of Contents >> Navigation: Connectors > Oracle > Geometry |
The DTS Oracle Connector can exchange geometry data with an Oracle Database in the standard Oracle Spatial MDSYS.SDO_GEOMETRY format.
The connector transforms SDO_GEOMETRY objects to and from DTSGeoJson for propagation through DTS and maps such columns, fields and arguments with the internal type of DTS_GEOMETRY.
SDO_GEOMETRY objects come in a few different types, codified by the GTYPE field. Here is how they are mapped by the connector:
SDO GTYPE |
Interpretation |
GeoJson Geometry Type |
DL01 |
Single point |
Point |
DL02 |
Sequence of lines (straight or curved) without gaps |
LineString (+ DTS corrections) |
DL03 |
Polygon (with or without holes) (can have curved edges) |
Polygon (+ DTS corrections) |
DL04 |
Collection of various geometries |
GeometryCollection (+ DTS corrections) |
DL05 |
Multiple points |
MultiPoint |
DL06 |
Multiple lines, not necessarily connected |
MultiLineString (+ DTS corrections) |
DL07 |
Multiple polygons |
MultiPolygon (+ DTS corrections) |
Solid (DL08) and multisolid (DL09) geometries are not supported at this time
The D and L values in the GTYPE represent the Dimensionality and the Linear referencing measure respectively.
The connector accepts D values of 2 and 3 (with certain limitations) and ignores the L values.
Corrections will be added to geometries which need to be approximated for standard GeoJson representation. These are the geometries which contain sectors that are not sequences of straight lines.
The SDO_GEOMETRY format encodes the various sectors that form a geometry in the SDO_ELEM_INFO field as triplets of the form [startIndex, elementType, interpretation]. Here is how these translate to DTS correction line types:
SDO ELEM_INFO |
Interpretation |
Correction Line Type |
i, 1, 1 |
Point coordinate |
none |
i, 1, 0 |
Point orientation |
none* |
i, 1, n>1 |
Point cluster with n points |
none |
i, 2, 1 |
Straight line string |
none (LINE_STRING**) |
i, 2, 2 |
Circular arc string |
CP_ARCS |
i, 2, 3 |
NURBS |
NURBS |
i, 1003/2003, 1 |
Polygon outer/inner boundary made of straight lines |
none (LINE_STRING**) |
i, 1003/2003, 2 |
Polygon outer/inner boundary made of circular arcs |
CP_ARCS |
i, 1003/2003, 3 |
Polygon outer/inner boundary which is a perfect rectangle |
RECTANGLE |
i, 1003/2003, 4 |
Polygon outer/inner boundary which is a perfect circle |
CIRCLE |
i, 4, n>1 |
Compound line string made of n sectors (can contain straight lines, arcs and NURBS) |
combination of CP_ARCS, NURBS (and LINE_STRING**) |
i, 1005/2005, n>1 |
Compound polygon made of n sectors (can contain straight lines, arcs and NURBS) |
combination of CP_ARCS, NURBS (and LINE_STRING**) |
Surface and Solid elements (ETYPE=1006/2006, 1007) are not supported at this time
* Point orientation has its own field in DTSGeoJson and does not need a correction to be stored
** LINE_STRING corrections are not produced by this connector or any of the other standard connectors. It exists for extensions and optimization
Besides the i, 1, 1 + ordinates representation, SDO_GEOMETRY can also store a single point in the bespoke field SDO_POINT. This form is also supported by the connector.
Further reading:
▪Oracle Spatial Data Types Overview
.