Difference between revisions of "Prostorové operátory"

From Wikivyuka
Jump to: navigation, search
m
 
Line 44: Line 44:
 
                         with a specified geometry.
 
                         with a specified geometry.
  
V případě použití některého z popsaných vztahů v parametru mask, se užije pouze název samotný bez prefixu ''SDO_''. Například: sSDO_RELATE(p.tvarparcely, h.tvarparcely, 'mask=touch')='TRUE'.
+
V případě použití některého z popsaných vztahů v parametru mask, se užije pouze název samotný bez prefixu ''SDO_''.  
 +
Například:
 +
SDO_RELATE(p.tvarparcely, h.tvarparcely, 'mask=touch')='TRUE'.
  
 
[http://gis.vsb.cz/wikivyuka/index.php/Prostorov%C3%A9_datab%C3%A1ze_-_cvi%C4%8Den%C3%AD Hlavní stránka předmětu]
 
[http://gis.vsb.cz/wikivyuka/index.php/Prostorov%C3%A9_datab%C3%A1ze_-_cvi%C4%8Den%C3%AD Hlavní stránka předmětu]

Latest revision as of 15:36, 5 August 2014

Modul Spatial používá dvoufázové model vyhodnocování dotazu s primárním a sekundárním filtrem při řešení prostorových dotazů či join operací (spojení). Pokud se provádí dvoufázová filtrace, vrací se velmi přesná sada výsledků. Existují operátory, které využívají pouze první z filtrů (například SDO_FILTER), kdy výstupem je pouze sada kandidátů na zařazení do výsledku, neboť tato možnost je postavena na použití tzv. MBR (minimum bounding rectangle) - minimálních ohraničujících obdélníků. Ty mají za úkol v prvních průchodu vybrat do výsledku takové geometrie, jejichž MBR jsou v požadovaném vztahu. Teprve v druhém filtru dochází ke kontrole samotných geometrií a vyhovují-li požadovanému vztahu, jsou zařazeny do výsledné sady.

U operátorů, které Oracle nabízí je proto vhodné ověřit v dokumentaci, zda je operátor pouze jednofiltrový (například SDO_FILTER) nebo používá obou filtrů (například SDO_RELATE). V tabulce jsou uvedeny základní operátory, které Oracle Spatial nabízí.

Základní Spatial Operátory

Operator         Description
SDO_FILTER       Specifies which geometries may interact with a given geometry.
SDO_JOIN         Performs a spatial join based on one or more topological relationships.
SDO_NN           Determines the nearest neighbor geometries to a geometry.
SDO_NN_DISTANCE  Returns the distance of an object returned by the SDO_NN operator.
SDO_WITHIN_DISTANCE Determines if two geometries are within a specified distance from one another.
SDO_RELATE       Determines whether or not two geometries interact in a specified way. 
                 (See for convenient alternative operators for performing specific mask value operations.)

Pro operátor SDO_RELATE je definováno 9 topologických vztahů, které se používají v klauzuli WHERE. Podmínka by měla mít výraz ve tvaru SDO_RELATE (arg1, arg2, "mask = <some_mask_val>") = "TRUE", kde hodnoty masky jsou vypsány v další tabulce. Kompletní popis operátoru SDO_RELATE je uveden v dokumentační kapitole 19 SDO_RELATE.

Operátory u operací SDO_RELATE

Operator                Description
SDO_ANYINTERACT         Checks if any geometries in a table have the ANYINTERACT topological relationship  
                        with a specified geometry.
SDO_CONTAINS            Checks if any geometries in a table have the CONTAINS topological relationship 
                        with a specified geometry.
SDO_COVEREDBY           Checks if any geometries in a table have the COVEREDBY topological relationship
                        with a specified geometry.
SDO_COVERS              Checks if any geometries in a table have the COVERS topological relationship 
                        with a specified geometry.
SDO_EQUAL               Checks if any geometries in a table have the EQUAL topological relationship 
                        with a specified geometry.
SDO_INSIDE              Checks if any geometries in a table have the INSIDE topological relationship 
                        with a specified geometry.
SDO_ON                  Checks if any geometries in a table have the ON topological relationship 
                        with a specified geometry.
SDO_OVERLAPBDYDISJOINT  Checks if any geometries in a table have the OVERLAPBDYDISJOINT topological relationship 
                        with a specified geometry.
SDO_OVERLAPBDYINTERSECT Checks if any geometries in a table have the OVERLAPBDYINTERSECT topological relationship
                         with a specified geometry.
SDO_OVERLAPS            Checks if any geometries in a table overlap (that is, have the OVERLAPBDYDISJOINT 
                        or OVERLAPBDYINTERSECT topological relationship with) a specified geometry.
SDO_TOUCH               Checks if any geometries in a table have the TOUCH topological relationship 
                        with a specified geometry.

V případě použití některého z popsaných vztahů v parametru mask, se užije pouze název samotný bez prefixu SDO_. Například:

SDO_RELATE(p.tvarparcely, h.tvarparcely, 'mask=touch')='TRUE'.

Hlavní stránka předmětu