Difference between revisions of "Datové typy SDO Geometry"

From Wikivyuka
Jump to: navigation, search
m (SDO_GTYPE: NUMBER)
m (SDO_SRID NUMBER)
Line 38: Line 38:
 
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
 
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==
+
==SDO_SRID: NUMBER==
 
identifikace prostorového referenčního systému, se kterým je asociována geometrie.
 
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.
 
Pokud je uvedena null hodnota, není asociace provedena. Jinak musí být uveden kód dle typu prostorového referenčního systému.
Line 47: Line 47:
  
 
Pokud budeme chtít vytvořit prostorový index, všechny prvky geometrií musí stejný SDO_SRID.
 
Pokud budeme chtít vytvořit prostorový index, všechny prvky geometrií musí stejný SDO_SRID.
 
  
 
==SDO_POINT SDO_POINT_TYPE==  
 
==SDO_POINT SDO_POINT_TYPE==  

Revision as of 19:22, 26 March 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 MDSYS.SDO_ELEM_INFO_ARRAY,
SDO_ORDINATES MDSYS.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 (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

Hlavní stránka předmětu