Difference between revisions of "SDO GEOMETRY"
m (→Atribut SDO_GTYPE) |
m (→Atribut SDO_GTYPE) |
||
Line 38: | Line 38: | ||
tt – lze chápat jako číselník geometrií Oracle, kde jsou definovány hodnoty 00 – 09, 10 a jsou rezervovány pro další rozšíření. | tt – lze chápat jako číselník geometrií Oracle, kde jsou definovány hodnoty 00 – 09, 10 a jsou rezervovány pro další rozšíření. | ||
− | Seznam útvarů je vypsán v tabulce [[Geometrické typy]]. | + | Seznam útvarů je vypsán v tabulce [[Geometrické typy]]. Podrobně viz [http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28400/sdo_objrelschema.htm#g1013735]. |
− | |||
− | Podrobně viz [http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28400/sdo_objrelschema.htm#g1013735]. | ||
Například, pokud budeme zadávat pomocí INSERT data, pak označení různých geometrií bude vypadat takto: | Například, pokud budeme zadávat pomocí INSERT data, pak označení různých geometrií bude vypadat takto: | ||
Line 51: | Line 49: | ||
2005 multipoint (Geometry has one or more points. (MULTIPOINT is a superset of POINT.)) | 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í | + | V jednom sloupci dat s typem SDO_GEOMETRY je nutno dodržet prvky se stejnou dimenzí, není tedy možné míchat dvou a třídimenzionální geometrie. Pro zjištění obsažených informací je možné použít metody pro navrácení hodnot jednotlivých částí datového typu SDO_GTYPE: GET_DIMS, GET_LRS_DIM, a GET_GTYPE. |
+ | |||
xxxxxxxxxxxxxxxxx | xxxxxxxxxxxxxxxxx | ||
Příklad vytvoření tabulky s prostorovými daty, včetně tvorby prostorového indexu: příklad [[Parcely]] | Příklad vytvoření tabulky s prostorovými daty, včetně tvorby prostorového indexu: příklad [[Parcely]] |
Revision as of 11:22, 1 August 2014
SDO_Geometry
Databázový server Oracle je rozšířen o objektový prostorový datový typ s názvem 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). Jedním z atributů tohoto objektu je geometrie prostorového prvku, která může být tvořena základním geometrickým elementem - bodem, úsečkou, křivkou, kruhem nebo polygonem, případně jejich kombinacemi. V dané tabulce je možné mít neomezený počet sloupců s prostorovými daty.
Oracle Spatial definuje objektový typ SDO_GEOMETRY s následujícími atributy:
CREATE TYPE sdo_geometry AS OBJECT ( SDO_GTYPE NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY, SDO_ORDINATES SDO_ORDINATE_ARRAY);
Struktura a základní metody u objektu SDO_Geometry je vidět na třídním diagramu .
Je nutné vnímat "skladbu" tohoto objektu. Při zadávání dat potřebujeme znát význam atributů, které určují geometrii či koordinační (souřadnicový) systém. Dále jsou definovány datové typy SDO_POINT_TYPE, SDO_ELEM_INFO_ARRAY, SDO_ORDINATE_ARRAY použité v definici SDO_GEOMETRY:
CREATE TYPE sdo_point_type AS OBJECT ( X NUMBER, Y NUMBER, Z NUMBER);
CREATE TYPE sdo_elem_info_array AS VARRAY (1048576) of NUMBER;
CREATE TYPE sdo_ordinate_array AS VARRAY (1048576) of NUMBER;
Sloupec, který je definován pomocí datového typu SDO_GEOMETRY lze vnímat jako vrstvu, v níž jsou obsaženy prostorové prvky nesoucí informace o své geometrii, mohou být vztažené k určitému souřadnicovému systému a jsou určeny souřadnicemi, kterými je prvek lokalizován.
Význam a možnosti použití jednotlivých atributů objektového typu SDO_GEOMETRY objasní jejich popis.
Atribut SDO_GTYPE
SDO_GTYPE je datového typu NUMBER. Atribut je tvořen 4 číselným kódem, kterým je určen geometrický typ prostorového prvku. Typ geometrie koresponduje se specifikací modelu "Geometry Object Model" definovanou organizací OGC jako OGIS - Simple Features for SQL specification, blíže [1]. Kód je označován jako dltt, kde
d – určuje počet dimenzí (2, 3 nebo 4), l – vykazuje spojení na LRS (lineární referenční systém), pro 3 nebo 4 dimenzionální hodnoty. V případě geometrie bez LRS nebo při akceptaci nastavení Spatial je ponechána hodnota 0, tt – lze chápat jako číselník geometrií Oracle, kde jsou definovány hodnoty 00 – 09, 10 a jsou rezervovány pro další rozšíření.
Seznam útvarů je vypsán v tabulce Geometrické typy. Podrobně viz [2].
Například, pokud budeme zadávat pomocí INSERT data, pak označení různých geometrií bude vypadat takto:
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.))
V jednom sloupci dat s typem SDO_GEOMETRY je nutno dodržet prvky se stejnou dimenzí, není tedy možné míchat dvou a třídimenzionální geometrie. Pro zjištění obsažených informací je možné použít metody pro navrácení hodnot jednotlivých částí datového typu SDO_GTYPE: GET_DIMS, GET_LRS_DIM, a GET_GTYPE.
xxxxxxxxxxxxxxxxx
Příklad vytvoření tabulky s prostorovými daty, včetně tvorby prostorového indexu: příklad Parcely