Difference between revisions of "Prostorové operátory"

From Wikivyuka
Jump to: navigation, search
m
m
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Základní Spatial Operators'''
+
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
 
  Operator        Description
 +
 
  SDO_FILTER      Specifies which geometries may interact with a given geometry.
 
  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_JOIN        Performs a spatial join based on one or more topological relationships.
Line 7: Line 12:
 
  SDO_NN_DISTANCE  Returns the distance of an object returned by the SDO_NN operator.
 
  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_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.)
+
  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 [http://docs.oracle.com/cd/E11882_01/appdev.112/e11830/sdo_operat.htm#SPATL1039 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.
  
'''Convenience Operators for SDO_RELATE Operations'''
+
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'.
  
Operator              Description
+
[http://gis.vsb.cz/wikivyuka/index.php/Prostorov%C3%A9_datab%C3%A1ze_-_cvi%C4%8Den%C3%AD Hlavní stránka předmětu]
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.
 

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