Difference between revisions of "Datové typy SDO Geometry"
m (→SDO_GTYPE NUMBER) |
m (→SDO_GTYPE: NUMBER) |
||
Line 21: | Line 21: | ||
*D identifies the number of dimensions (2, 3, or 4) | *D identifies the number of dimensions (2, 3, or 4) | ||
*L identifies the linear referencing measure dimension for a three-dimensional linear referencing system (LRS) geometry, that is, which dimension (3 or 4) contains the measure value. For a non-LRS geometry, or to accept the Spatial default of the last dimension as the measure for an LRS geometry, specify 0. For information about the linear referencing system (LRS). | *L identifies the linear referencing measure dimension for a three-dimensional linear referencing system (LRS) geometry, that is, which dimension (3 or 4) contains the measure value. For a non-LRS geometry, or to accept the Spatial default of the last dimension as the measure for an LRS geometry, specify 0. For information about the linear referencing system (LRS). | ||
− | *TT - vlastní geometrický typ (point, line, curve, | + | *TT - vlastní geometrický typ (point, line, curve, polygon, collection, multipoint...)(identifies the geometry type (00 through 09, with 10 through 99 reserved for future use). |
Seznam útvarů je vypsán v tabulce [[Geometrické typy]]. | Seznam útvarů je vypsán v tabulce [[Geometrické typy]]. |
Revision as of 19:21, 26 March 2013
Contents
SDO Geometry
Prefix SDO pochází z doby, kdy Oracle spolupracoval s Canadian Hydrographic Service a tehdejší změny v jádru Oracle vedly k označení "Spatial Data Option" (SDO).
SDO_Geometry je objekt, který má následující atributy:
SDO_GTYPE NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY, SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY
Je nutné vnímat "skladbu" tohoto objektu. Při zadávání dat potřebujeme znát kódy, které mají význam pro správné určení geometrie či koordinačního (souřadnicového) systému, ap.
SDO_GTYPE: NUMBER
typ geometrie, koresponduje se specifikací modelu "Geometry Object Model" definovanou organizací OGC jako OGIS - Simple Features for SQL specification, blíže [1].
Skládá se ze 4 numerických hodnot ve formátu DLTT, kde
- D identifies the number of dimensions (2, 3, or 4)
- L identifies the linear referencing measure dimension for a three-dimensional linear referencing system (LRS) geometry, that is, which dimension (3 or 4) contains the measure value. For a non-LRS geometry, or to accept the Spatial default of the last dimension as the measure for an LRS geometry, specify 0. For information about the linear referencing system (LRS).
- TT - vlastní geometrický typ (point, line, curve, polygon, collection, multipoint...)(identifies the geometry type (00 through 09, with 10 through 99 reserved for future use).
Seznam útvarů je vypsán v tabulce Geometrické typy.
Podrobně viz [2].
Například:
2001 dvoudimenzionální bod 3001 třídimenzionální bod 2002 dvoudimenzionální linie nebo křivka 2003 dvoudimenzionální polygon nebo povrch 2004 kolekce (Geometry is a heterogeneous collection of elements. COLLECTION is a superset that includes all other types.) 2005 multipoint (Geometry has one or more points. (MULTIPOINT is a superset of POINT.))
Pro zjištění obsažených informací je možné použít metody pro navrácení těchto hodnot: Get_Dims, Get_LRS_Dim, Get_Gtype
SDO_SRID NUMBER
identifikace prostorového referenčního systému, se kterým je asociována geometrie. Pokud je uvedena null hodnota, není asociace provedena. Jinak musí být uveden kód dle typu prostorového referenčního systému.
Například:
SDO_SRID(WGS 84) = 8307
Pokud budeme chtít vytvořit prostorový index, všechny prvky geometrií musí stejný SDO_SRID.
SDO_POINT SDO_POINT_TYPE
definuje (geo)objekt typu bod (dle uvedených dimenzí), každá koordináta je zadána datovým typem NUMBER.
CREATE TYPE sdo_point_type AS OBJECT ( X NUMBER, Y NUMBER, Z NUMBER);
Při zadávání bodu musí být SDO_ELEM_INFO a SDO_ORDINATES obě definovány hodnotou null, jinak Spatial funkce nefungují správně.
Například zadání bodu
SDO_GEOMETRY( 2001, NULL, SDO_POINT_TYPE(10, 20, NULL), NULL, NULL);
SDO_ELEM_INFO
definuje použití různé délky pole čísel. Ukazuje, jak interpretovat souřadnice z atributu SDO_ORDINATES.
Je sestaven trojicí (SDO_STARTING_OFFSET, SDO_ETYPE, SDO_INTERPRETATION).
SDO_STARTING_OFFSET - indikuje počáteční pozici v poli SDO_ORDINATES hodnot daného elementu. První element má vždy hodnotu 1 (nikdy 0).
Například:
SDO_ORDINATES = (2,4, 4,3, 10,3, 13,5, 13,9, 11,13, 5,13, 2,11, 2,4, 7,5, 7,10, 10,10, 10,5, 7,5). Element, který má definovánu tuto hodnotu jako 19, má první souřadnici 7.
SDO_ETYPE - indikuje typ elementu, viz [3].
SDO_INTERPRETATION - význam je závislý na tom, zda je v SDO_ETYPE zadán jednoduchý nebo složený element.
Například:
Máme SDO_ETYPE jako složený element (4, 1005, or 2005), pak SDO_INTERPRETATION specifikuje z kolika trojic hodnot jsou složeny jednotlivé elementy.
SDO_ORDINATES
definuje použití pole proměnlivé délky (až 1048576) typu NUMBER, kde jsou uloženy souřadnice, tvořící hranice prostorového objektu. Použití je spojeno s SDO_ELEM_INFO. Hodnoty v poli jsou uspořádány dle dimenze.
Například:
Polygon, jehož hranice je tvořena čtyřmi dvoudimensionálními body je uložen takto: {X1, Y1, X2, Y2, X3, Y3, X4, Y4, X1, Y1}. Polygon, jehož hranice je tvořena čtyřmi třídimensionálními body je uložen takto: {X1, Y1, Z1, X2, Y2, Z2, X3, Y3, Z3, X4, Y4, Z4, X1, Y1, Z1}.
Seznam geometrických tvarů
(1,1003,4) circle definován třemi body (1,1003,3) one rectangle 1003 - exterior exterior polygon ring, 3 rectangle (1,1003,1) one polygon 1003 - exterior polygon ring - vnější polygon, s body definovanými proti směru hodinových ručiček