Datové typy SDO Geometry

From Wikivyuka
Revision as of 07:55, 1 March 2012 by Dur30 (talk | contribs)

Jump to: navigation, search

SDO Geometry

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, polzgon, 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}.