Difference between revisions of "Datové typy SDO Geometry"

From Wikivyuka
Jump to: navigation, search
m
m (SDO_Geometry)
Line 11: Line 11:
 
  SDO_ORDINATES: SDO_ORDINATE_ARRAY
 
  SDO_ORDINATES: SDO_ORDINATE_ARRAY
  
Struktura SDO Geometry [[Image:SDOGeom.png]]  
+
Struktura SDO_Geometry [[Image:SDOGeom.png]]  
  
 
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.
 
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.

Revision as of 08:30, 17 May 2013

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: SDO_ELEM_INFO_ARRAY,
SDO_ORDINATES: SDO_ORDINATE_ARRAY

Struktura SDO_Geometry SDOGeom.png

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, přesněji SDO_POINT_TYPE (dle dříve uvedených dimenzí). Dle dimenze je pak uveden počet souřadnic. 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: SDO_ELEM_INFO_ARRAY

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ý by byls sestaven ze dvou částí, bude mít začátek pole koordinát na pozici 1 a druhá část složeného prvku může mít definovánu hodnotu jako 19. Hodnota první souřadnice tohoto elementu má pak první souřadnici 7.

SDO_ETYPE - indikuje typ elementu, viz [3].

SDO_ETYPE indikuje dvě základní skupiny prvků - jednoduché a složené. U hodnot 1, 2, 1003, a 2003 jsou předpokládány jednoduché elementy, Jsou definovány pomocí jedné trojice hodnot, uvedené v SDO_ELEM_INFO array.

Jednoduché elementy: Pro SDO_ETYPE hodnoty 1003 a 2003, první číslice indikuje exterior (1) nebo interior (2) - viz příklad:

1003: exterior polygon ring (must be specified in counterclockwise order)

2003: interior polygon ring (must be specified in clockwise order)

Složené elementy: SDO_ETYPE s hodnotami 4, 1005, 2005, 1006, a 2006 představují složené elementy. Jsou obsaženy v alespoň jednom záhlaví trojice, s řadou trojic, které patří k složenému prvku. Pro 4-místný typ SDO_ETYPE hodnotu, první číslice označuje exterrior (1) nebo interior (2):

1005: polygon vymezující "vnějšek" (hodnoty jeho koordinát musí být uvedeny v pořadí proti směru hodinových ručiček

2005: polygon s vnitřním obsahem (specifikace hodnot jde po směru hodin)

1006: vnějsí povrch, který se skládá z jednoho nebo více polygonálních "kruhů"

2006: vnitřní jednolitý povrch

1007: jednolitý element

Prvky složeného prvku jsou souvislé. Poslední bod jedné části složeného prvku je prvním bod další části. Bod se neopakuje.

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

Hlavní stránka předmětu