| java.lang.Object org.geotools.data.oracle.sdo.SDO
SDO | final public class SDO (Code) | | Oracle Spatial Data Object utilities functions.
Provide utility functions for working with JTS Geometries in terms Oracle
Spatial Data Objects
This class can be used for normal JTS Geometry persistence with little fuss
and bother - please see GeometryConverter for an example of this.
With a little fuss and bother LRS information can also be handled.
Although it is very rare that JTS makes use of such things.
See Also: Spatial User's Guide (10.1) author: Jody Garnett, Refractions Reasearch Inc. version: CVS Version See Also: net.refractions.jspatial.jts |
Field Summary | |
final public static int | SRID_NULL |
Method Summary | |
public static int | D(Geometry geom) Return D as defined by SDO_GTYPE (either 2,3 or 4). | public static int | D(int GTYPE) | public static int | L(Geometry geom) Return L as defined by SDO_GTYPE (either 3,4 or 0).
L represents support for LRS (Liniar Referencing System?). | public static int | L(int GTYPE) | public static int | SRID(Geometry geom) Returns geometry SRID.
SRID code representing Spatial Reference System. | public static int | TT(Geometry geom) Return TT as defined by SDO_GTYPE (represents geometry type). | public static int | TT(int GTYPE) | public static Coordinate[] | asCoordiantes(double[] ordinates, int d) Coordiantes from a (x,y,i3..,id,x2,y2...) ordinates. | public static Coordinate[] | asCoordinates(double[] ordinates) Coordiantes from (x,y,x2,y2,...) ordinates. | public static CoordinateSequence | coordiantes(CoordinateSequenceFactory f, OrdinateList x, OrdinateList y, OrdinateList z) Construct CoordinateSequence with no LRS measures. | public static CoordinateSequence | coordiantes(CoordinateSequenceFactory f, AttributeList x, AttributeList y, AttributeList z) Construct CoordinateSequence with no LRS measures. | public static CoordinateSequence | coordiantes(CoordinateSequenceFactory f, OrdinateList x, OrdinateList y, OrdinateList z, OrdinateList[] m) Construct SpatialCoordiantes, with LRS measure information. | public static CoordinateSequence | coordiantes(CoordinateSequenceFactory f, AttributeList x, AttributeList y, AttributeList z, AttributeList[] m) Construct SpatialCoordiantes, with LRS measure information. | public static void | coordinates(List list, Geometry geom) Encode Geometry as described by GTYPE and ELEM_INFO
CoordinateSequence & CoordinateAccess wil be used to determine the
dimension, and the number of ordinates added. | public static CoordinateSequence | coordinates(CoordinateSequenceFactory f, int GTYPE, double[] ordinates) Construct CoordinateList as described by GTYPE. | public static CoordinateSequence | counterClockWise(CoordinateSequenceFactory factory, CoordinateSequence ring) Ensure Ring of Coordinates are in a counter clockwise order. | public static Geometry | create(GeometryFactory gf, int GTYPE, int SRID, double[] point, int[] elemInfo, double[] ordinates) Decode geometry from provided SDO encoded information. | public static Geometry | create(GeometryFactory gf, int GTYPE, int SRID, int[] elemInfo, int triplet, CoordinateSequence coords, int N) Consturct geometry with SDO encoded information over a CoordinateList.
Helpful when dealing construction Geometries with your own Coordiante
Types. | public static int[] | elemInfo(Geometry geom) Return SDO_ELEM_INFO array for geometry
Describes how to use Ordinates to represent Geometry. | public static int[] | elemInfo(Geometry geom, int GTYPE) | protected static int | elemInfoEType(Geometry geom) Produce SDO_ETYPE for geometry description as stored in the
SDO_ELEM_INFO .
Describes how Ordinates are ordered:
Value Elements Meaning
0 Custom Geometry (like spline)
1 simple Point (or Points)
2 simple Line (or Lines)
3 polygon ring of unknown order (discouraged update to 1003 or 2003)
1003 simple polygon ring (1 exterior counterclockwise order)
2003 simple polygon ring (2 interior clockwise order)
4 compound series defines a linestring
5 compound series defines a polygon ring of unknown order (discouraged)
1005 compound series defines exterior polygon ring (counterclockwise order)
2005 compound series defines interior polygon ring (clockwise order)
Keep in mind:
-
simple elements are defined by a single triplet entry in
the SDO_ELEM_INFO array
-
compound elements are defined by a header triplet, and a
series of triplets for the parts. | public static int | elemInfoInterpretation(Geometry geom) Produce SDO_INTERPRETATION for geometry description as
stored in the SDO_ELEM_INFO .
Describes ordinates as part of SDO_ELEM_INFO array.
-
compound element:(SDO_ETYPE 4, 1005, or 2005)
Number of subsequent triplets are part of compound element
-
simple element:(SDE_ELEM 1, 2, 1003, or 2003)
Code defines how ordinates are interpreted (lines or curves)
SDO_INTERPRETAION Values: (from Table 2-2 in reference docs)
SDO_ETYPE Value Meaning
0 anything Custom Geometry
1 1 Point
1 N > 1 N points
2 1 LineString of straight lines
2 2 LineString connected by circ arcs (start,any,end pt)
1003/2003 1 Polygon Edged with straight lines
1003/2003 2 Polygon Edged with circ arcs (start, any, end pt)
1003/2003 3 Non SRID rectangle defined by (bottomleft,topright pt)
1003/2003 4 Circle defined by three points on circumference
4 N > 1 Compound Line String made of N (ETYPE=2) lines and arcs
1005/2005 N > 1 Polygon defined by (ETYPE=2) lines and arcs
When playing with circular arcs (SDO_INTERPRETATION==2) arcs are defined
by three points. | public static int | elemInfoInterpretation(Geometry geom, int etype) Allows specification of INTERPRETATION used to interpret
geom . | public static int | elemInfoStartingOffset(Geometry geom) Starting offset used by SDO_ORDINATES as stored in the SDO_ELEM_INFO
array. | public static int | gType(Geometry geom) Produce SDO_GTYPE representing provided Geometry.
Encoding of Geometry type and dimension.
SDO_GTYPE defined as for digits [d][l][tt] :
-
d : number of dimensions (limited to 2,3, or 4)
-
l : measure representation (ordinate 3 or 4) or 0 to
represent none/last
-
tt: See the TT. | public static CoordinateSequence | getCS(Geometry geom) | public static double[] | ordinateArray(CoordinateSequence coords, int ordinate) | public static double[] | ordinateArray(Coordinate[] array, int ordinate) Ordinate access. | public static double[] | ordinateArray(List list, int ordinate) | public static double[] | ordinates(Geometry geom) Produce SDO_ORDINATES for geometry. | public static double[] | ordinates(List list, Geometry geom) Package up array in correct manner for geom . | public static double[] | ordinates2d(List list) Ordinates (x,y,x1,y1,...) from coordiante list. | public static double[] | ordinates2d(List list, int L) Ordinates (x,y,...id,x2,y2,...) from coordiante[] List. | public static double[] | ordinates3d(List list) Ordinates (x,y,z,x2,y2,z2...) from coordiante[] array. | public static double[] | ordinates3d(List list, int L) Ordinates (x,y,z,...id,x2,y2,z2...) from coordiante[] array. | public static double[] | point(Geometry geom) Return SDO_POINT_TYPE for geometry
Will return non null for Point objects. |
SRID_NULL | final public static int SRID_NULL(Code) | | |
D | public static int D(Geometry geom)(Code) | | Return D as defined by SDO_GTYPE (either 2,3 or 4).
For normal JTS Geometry this will be 2 or 3 depending if
geom.getCoordinate.z is Double.NaN.
Subclasses may override as required.
Parameters: geom - 3 |
D | public static int D(int GTYPE)(Code) | | Access D (for dimension) as encoded in GTYPE
Parameters: GTYPE - DOCUMENT ME! DOCUMENT ME! |
L | public static int L(Geometry geom)(Code) | | Return L as defined by SDO_GTYPE (either 3,4 or 0).
L represents support for LRS (Liniar Referencing System?). JTS Geometry
objects do not support LRS so this will be 0.
Subclasses may override as required.
Parameters: geom - 0 |
L | public static int L(int GTYPE)(Code) | | Access L (for LRS) as encoded in GTYPE
Parameters: GTYPE - DOCUMENT ME! DOCUMENT ME! |
SRID | public static int SRID(Geometry geom)(Code) | | Returns geometry SRID.
SRID code representing Spatial Reference System. SRID number used must
be defined in the Oracle MDSYS.CS_SRS table.
SRID_NULL represents lack of coordinate system.
Parameters: geom - Geometry SRID Number (JTS14 uses GeometryFactor.getSRID() ) SRID for provided geom |
TT | public static int TT(Geometry geom)(Code) | | Return TT as defined by SDO_GTYPE (represents geometry type).
TT is used to represent the type of the JTS Geometry:
Value Geometry Type JTS Geometry
00 UNKNOWN_GEOMETRY null
01 POINT Point
02 LINE LineString
CURVE not supported
03 POLYGON Polygon
04 COLLECTION GeometryCollection
05 MULTIPOINT MultiPoint
06 MULTILINE MultiLineString
MULTICURVE not supported
07 MULTIPOLYGON MultiPolygon
Parameters: geom - TT representing geom throws: IllegalArgumentException - If SDO_GTYPE can not be represetned byJTS |
TT | public static int TT(int GTYPE)(Code) | | Access TT (for geometry type) as encoded in GTYPE
Parameters: GTYPE - DOCUMENT ME! DOCUMENT ME! |
asCoordiantes | public static Coordinate[] asCoordiantes(double[] ordinates, int d)(Code) | | Coordiantes from a (x,y,i3..,id,x2,y2...) ordinates.
Parameters: ordinates - DOCUMENT ME! Parameters: d - DOCUMENT ME! DOCUMENT ME! |
asCoordinates | public static Coordinate[] asCoordinates(double[] ordinates)(Code) | | Coordiantes from (x,y,x2,y2,...) ordinates.
Parameters: ordinates - DOCUMENT ME! DOCUMENT ME! |
coordiantes | public static CoordinateSequence coordiantes(CoordinateSequenceFactory f, OrdinateList x, OrdinateList y, OrdinateList z)(Code) | | Construct CoordinateSequence with no LRS measures.
To produce two dimension Coordiantes pass in null for z
Parameters: f - DOCUMENT ME! Parameters: x - DOCUMENT ME! Parameters: y - DOCUMENT ME! Parameters: z - DOCUMENT ME! DOCUMENT ME! |
coordiantes | public static CoordinateSequence coordiantes(CoordinateSequenceFactory f, AttributeList x, AttributeList y, AttributeList z)(Code) | | Construct CoordinateSequence with no LRS measures.
To produce two dimension Coordiantes pass in null for z
Parameters: f - DOCUMENT ME! Parameters: x - DOCUMENT ME! Parameters: y - DOCUMENT ME! Parameters: z - DOCUMENT ME! DOCUMENT ME! |
coordiantes | public static CoordinateSequence coordiantes(CoordinateSequenceFactory f, OrdinateList x, OrdinateList y, OrdinateList z, OrdinateList[] m)(Code) | | Construct SpatialCoordiantes, with LRS measure information.
To produce two dimension Coordiantes pass in null for z
Parameters: f - DOCUMENT ME! Parameters: x - x-ordinates Parameters: y - y-ordinates Parameters: z - z-ordinates, null for 2D Parameters: m - column major measure information DOCUMENT ME! |
coordiantes | public static CoordinateSequence coordiantes(CoordinateSequenceFactory f, AttributeList x, AttributeList y, AttributeList z, AttributeList[] m)(Code) | | Construct SpatialCoordiantes, with LRS measure information.
To produce two dimension Coordiantes pass in null for z
Parameters: f - DOCUMENT ME! Parameters: x - x-ordinates Parameters: y - y-ordinates Parameters: z - z-ordinates, null for 2D Parameters: m - column major measure information DOCUMENT ME! |
coordinates | public static void coordinates(List list, Geometry geom)(Code) | | Encode Geometry as described by GTYPE and ELEM_INFO
CoordinateSequence & CoordinateAccess wil be used to determine the
dimension, and the number of ordinates added.
Parameters: list - Flat list of Double Parameters: geom - Geometry throws: IllegalArgumentException - If geometry cannot be encoded |
coordinates | public static CoordinateSequence coordinates(CoordinateSequenceFactory f, int GTYPE, double[] ordinates)(Code) | | Construct CoordinateList as described by GTYPE.
GTYPE encodes the following information:
-
D: Dimension of ordinates
-
L: Dimension of LRS measures
The number of ordinates per coordinate are taken to be L+D, and the
number of ordinates should be a multiple of this value.
In the Special case of GTYPE 2001 and a three ordinates are interpreted
as a single Coordinate rather than an error.
Parameters: f - CoordinateSequenceFactory used to encode ordiantes for JTS Parameters: GTYPE - Encoding of Dimension, LRS and TType Parameters: ordinates - throws: IllegalArgumentException - DOCUMENT ME! |
counterClockWise | public static CoordinateSequence counterClockWise(CoordinateSequenceFactory factory, CoordinateSequence ring)(Code) | | Ensure Ring of Coordinates are in a counter clockwise order.
If the Coordiante need to be reversed a copy will be returned.
Parameters: factory - Factory to used to reverse CoordianteSequence Parameters: ring - Ring of Coordinates coords in a CCW order |
create | public static Geometry create(GeometryFactory gf, int GTYPE, int SRID, double[] point, int[] elemInfo, double[] ordinates)(Code) | | Decode geometry from provided SDO encoded information.
Parameters: gf - Used to construct returned Geometry Parameters: GTYPE - SDO_GTYPE represents dimension, LRS, and geometry type Parameters: SRID - SDO_SRID represents Spatial Reference System Parameters: point - Parameters: elemInfo - Parameters: ordinates - Geometry as encoded |
create | public static Geometry create(GeometryFactory gf, int GTYPE, int SRID, int[] elemInfo, int triplet, CoordinateSequence coords, int N)(Code) | | Consturct geometry with SDO encoded information over a CoordinateList.
Helpful when dealing construction Geometries with your own Coordiante
Types. The dimensionality specified in GTYPE will be used to interpret
the offsets in elemInfo.
Parameters: gf - Parameters: GTYPE - Encoding of Dimension, LRS and TType Parameters: SRID - Parameters: elemInfo - Parameters: triplet - DOCUMENT ME! Parameters: coords - Parameters: N - Number of triplets (-1 for unknown/don't care) Geometry as encoded, or null w/ log if it cannot be represented via JTS |
elemInfo | public static int[] elemInfo(Geometry geom)(Code) | | Return SDO_ELEM_INFO array for geometry
Describes how to use Ordinates to represent Geometry.
# Name Meaning
0 SDO_STARTING_OFFSET Offsets start at one
1 SDO_ETYPE Describes how ordinates are ordered
2 SDO_INTERPRETATION SDO_ETYPE: 4, 1005, or 2005
Number of triplets involved in compound geometry
SDO_ETYPE: 1, 2, 1003, or 2003
Describes ordering of ordinates in geometry
For compound elements (SDO_ETYPE values 4 and 5) the last element of one
is the first element of the next.
Parameters: geom - Geometry being represented Descriptionof Ordinates representation |
elemInfo | public static int[] elemInfo(Geometry geom, int GTYPE)(Code) | | |
elemInfoEType | protected static int elemInfoEType(Geometry geom)(Code) | | Produce SDO_ETYPE for geometry description as stored in the
SDO_ELEM_INFO .
Describes how Ordinates are ordered:
Value Elements Meaning
0 Custom Geometry (like spline)
1 simple Point (or Points)
2 simple Line (or Lines)
3 polygon ring of unknown order (discouraged update to 1003 or 2003)
1003 simple polygon ring (1 exterior counterclockwise order)
2003 simple polygon ring (2 interior clockwise order)
4 compound series defines a linestring
5 compound series defines a polygon ring of unknown order (discouraged)
1005 compound series defines exterior polygon ring (counterclockwise order)
2005 compound series defines interior polygon ring (clockwise order)
Keep in mind:
-
simple elements are defined by a single triplet entry in
the SDO_ELEM_INFO array
-
compound elements are defined by a header triplet, and a
series of triplets for the parts. Elements in a compound element share
first and last points.
-
We are not allowed to mix 1 digit and 4 digit values for ETYPE and GTYPE
in a single geometry
This whole mess describes ordinates as part of
SDO_ELEM_INFO array. data type.
Parameters: geom - Geometry being represented Descriptionof Ordinates representation throws: IllegalArgumentException - |
elemInfoInterpretation | public static int elemInfoInterpretation(Geometry geom)(Code) | | Produce SDO_INTERPRETATION for geometry description as
stored in the SDO_ELEM_INFO .
Describes ordinates as part of SDO_ELEM_INFO array.
-
compound element:(SDO_ETYPE 4, 1005, or 2005)
Number of subsequent triplets are part of compound element
-
simple element:(SDE_ELEM 1, 2, 1003, or 2003)
Code defines how ordinates are interpreted (lines or curves)
SDO_INTERPRETAION Values: (from Table 2-2 in reference docs)
SDO_ETYPE Value Meaning
0 anything Custom Geometry
1 1 Point
1 N > 1 N points
2 1 LineString of straight lines
2 2 LineString connected by circ arcs (start,any,end pt)
1003/2003 1 Polygon Edged with straight lines
1003/2003 2 Polygon Edged with circ arcs (start, any, end pt)
1003/2003 3 Non SRID rectangle defined by (bottomleft,topright pt)
1003/2003 4 Circle defined by three points on circumference
4 N > 1 Compound Line String made of N (ETYPE=2) lines and arcs
1005/2005 N > 1 Polygon defined by (ETYPE=2) lines and arcs
When playing with circular arcs (SDO_INTERPRETATION==2) arcs are defined
by three points. A start point, any point on the arc and the end point.
The last point of an arc is the start point of the next. When used to
describe a polygon (SDO_ETYPE==1003 or 2003) the first and last point
must be the same.
Parameters: geom - |
elemInfoInterpretation | public static int elemInfoInterpretation(Geometry geom, int etype)(Code) | | Allows specification of INTERPRETATION used to interpret
geom .
Provides the INTERPRETATION value for the ELEM_INFO triplet
of (STARTING_OFFSET, ETYPE, INTERPRETATION).
Parameters: geom - Geometry to encode Parameters: etype - ETYPE value requiring an INTERPREATION INTERPRETATION ELEM_INFO entry for geom given etype throws: IllegalArgumentException - If asked to encode a curve |
elemInfoStartingOffset | public static int elemInfoStartingOffset(Geometry geom)(Code) | | Starting offset used by SDO_ORDINATES as stored in the SDO_ELEM_INFO
array.
Starting offsets start from one.
Describes ordinates as part of SDO_ELEM_INFO data type.
Parameters: geom - 1 for non nested geom |
gType | public static int gType(Geometry geom)(Code) | | Produce SDO_GTYPE representing provided Geometry.
Encoding of Geometry type and dimension.
SDO_GTYPE defined as for digits [d][l][tt] :
-
d : number of dimensions (limited to 2,3, or 4)
-
l : measure representation (ordinate 3 or 4) or 0 to
represent none/last
-
tt: See the TT. constants defined in this class
Definition provided by Oracle Spatial User�s Guide and Reference.
Parameters: geom - |
getCS | public static CoordinateSequence getCS(Geometry geom)(Code) | | |
ordinateArray | public static double[] ordinateArray(CoordinateSequence coords, int ordinate)(Code) | | Package up array of requested ordinate, regardless of geometry
Example numbering: for (x y g m) dimension==2, measure==2
-
0: x ordinate array
-
1: y ordinate array
-
2: g ordinate array
-
3: m ordinate array
Parameters: coords - Parameters: ordinate - |
ordinateArray | public static double[] ordinateArray(Coordinate[] array, int ordinate)(Code) | | Ordinate access.
CoordianteAccess is required for additional ordinates.
Ordinate limitied to:
-
0: x ordinate array
-
1: y ordinate array
-
2: z ordinate array
-
3: empty ordinate array
Parameters: array - Parameters: ordinate - |
ordinateArray | public static double[] ordinateArray(List list, int ordinate)(Code) | | |
ordinates | public static double[] ordinates(Geometry geom)(Code) | | Produce SDO_ORDINATES for geometry.
Please see SDO_ETYPE, SDO_INTERPRETATION and SDO_GTYPE for description
of how these ordinates are to be interpreted.
Ordinates are ordered by Dimension are non null:
-
Two Dimensional:
{x1,y1,x2,y2,...}
-
Three Dimensional:
{x1,y1,z1,x2,y2,z2,...}
Spatial will siliently detect and ignore the following:
-
d001 point/d005 multipoint elements that are not SDO_ETYPE==1 points
-
d002 lines or curve/d006 multilines or multicurve elements that are not
SDO_ETYPE==2 lines or SDO_ETYPE==4 arcs
-
d003 polygon/d007 multipolygon elements that are not SDO_ETYPE==3
unordered polygon lines or SDO_ETYPE==5 unorderd compound polygon ring
are ignored
While Oracle is silient on these errors - all other errors will not be
detected!
Parameters: geom - |
ordinates | public static double[] ordinates(List list, Geometry geom)(Code) | | Package up array in correct manner for geom .
Ordinates are placed into an array based on:
-
geometryGTypeD - chooses between 2d and 3d representation
-
geometryGTypeL - number of LRS measures
Parameters: list - Parameters: geom - |
ordinates2d | public static double[] ordinates2d(List list)(Code) | | Ordinates (x,y,x1,y1,...) from coordiante list.
No assumptions are made about the order
Parameters: list - coordinate list ordinate array |
ordinates2d | public static double[] ordinates2d(List list, int L)(Code) | | Ordinates (x,y,...id,x2,y2,...) from coordiante[] List.
Parameters: list - coordiante list Parameters: L - Dimension of ordinates required for representation ordinate array |
ordinates3d | public static double[] ordinates3d(List list)(Code) | | Ordinates (x,y,z,x2,y2,z2...) from coordiante[] array.
Parameters: list - List of coordiante ordinate array |
ordinates3d | public static double[] ordinates3d(List list, int L)(Code) | | Ordinates (x,y,z,...id,x2,y2,z2...) from coordiante[] array.
Parameters: list - coordinate array to be represented as ordinates Parameters: L - Dimension of ordinates required for representation ordinate array |
point | public static double[] point(Geometry geom)(Code) | | Return SDO_POINT_TYPE for geometry
Will return non null for Point objects. null is returned
for all non point objects.
You cannot use this with LRS Coordiantes
Subclasses may wish to repress this method and force Points to be
represented using SDO_ORDINATES.
Parameters: geom - |
|
|