Difference between revisions of "Datové typy SDO Geometry"

From Wikivyuka
Jump to: navigation, search
m
m
Line 1: Line 1:
 +
==SDO Geometry==
 +
 
SDO_Geometry je objekt, který má následující atributy:
 
SDO_Geometry je objekt, který má následující atributy:
  
Line 9: Line 11:
 
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.  
  
'''SDO_GTYPE NUMBER''' - typ geometrie, koresponduje se specifikací modelu "Geometry Object Model" definovanou organizací OGC jako OGIS - Simple Features for SQL specification, blíže [http://www.opengeospatial.org/standards/sfs].  
+
==SDO_GTYPE NUMBER==
 +
typ geometrie, koresponduje se specifikací modelu "Geometry Object Model" definovanou organizací OGC jako OGIS - Simple Features for SQL specification, blíže [http://www.opengeospatial.org/standards/sfs].  
  
 
Skládá se ze 4 numerických hodnot ve formátu DLTT, kde
 
Skládá se ze 4 numerických hodnot ve formátu DLTT, kde
Line 32: Line 35:
  
  
'''SDO_SRID NUMBER''' - identifikace prostorového referenčního systému, se kterým je asociována geometrie.
+
==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.
 
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 42: Line 46:
  
  
'''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.
+
==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 (
 
  CREATE TYPE sdo_point_type AS OBJECT (
Line 59: Line 64:
 
       NULL);
 
       NULL);
  
'''SDO_ELEM_INFO''' - definuje použití různé délky pole čísel. Ukazuje, jak interpretovat souřadnice z atributu SDO_ORDINATES.
+
==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).
 
Je sestaven trojicí (SDO_STARTING_OFFSET, SDO_ETYPE, SDO_INTERPRETATION).
  
Line 75: Line 81:
 
  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.
 
  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.  
+
==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:
 
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 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}.
 
  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}.

Revision as of 07:55, 1 March 2012

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