Difference between revisions of "Ukázka prostorových operací"

From Wikivyuka
Jump to: navigation, search
m
m (Další typy operátorů/funkcí)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
====Topologické operátory====
 +
Použití jednotlivých operátorů v dotazech SQL, kde jsou předvedeny různé topologické vztahy. Všechny topologické operátory vrací hodnotu BOOLEAN.
 +
 +
*Užití '''ANYINTERACT'''
 
  SELECT l.naz_lau1, l.geom
 
  SELECT l.naz_lau1, l.geom
 
  FROM okresy l, kraje n
 
  FROM okresy l, kraje n
 
  WHERE SDO_ANYINTERACT(l.geom, n.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
 
  WHERE SDO_ANYINTERACT(l.geom, n.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
  
 +
*Užití '''CONTAINS'''
 
  SELECT l.naz_lau1, l.geom
 
  SELECT l.naz_lau1, l.geom
 
  FROM okresy l, kraje n
 
  FROM okresy l, kraje n
 
  WHERE SDO_CONTAINS(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
 
  WHERE SDO_CONTAINS(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
  
 +
*Užití '''COVERS'''
 
  SELECT l.naz_lau1, l.geom
 
  SELECT l.naz_lau1, l.geom
 
  FROM okresy l, kraje n
 
  FROM okresy l, kraje n
 
  WHERE SDO_COVERS(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
 
  WHERE SDO_COVERS(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
  
 +
*Užití '''COVEREDBY'''
 
  SELECT l.naz_lau1, l.geom
 
  SELECT l.naz_lau1, l.geom
 
  FROM okresy l, kraje n
 
  FROM okresy l, kraje n
 
  WHERE SDO_COVEREDBY(L.geom, N.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
 
  WHERE SDO_COVEREDBY(L.geom, N.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
  
 +
Jinou možností je formulovat dotaz s pomocí operátoru SDO_RELATE
 +
  SDO_RELATE(geometry1,geometry2, 'mask = <some_mask_val>') = 'TRUE'
 +
kde je do parametru ''mask'' doplněn požadovaný typ vztahu:
 +
 +
SELECT l.naz_lau1, l.geom
 +
FROM okresy l, kraje n
 +
WHERE SDO_RELATE(l.geom, n.geom, 'mask = COVEREDBY') = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
 +
 +
*Užití '''TOUCH'''
 
  SELECT l.naz_lau1, l.geom
 
  SELECT l.naz_lau1, l.geom
 
  FROM okresy l, kraje n
 
  FROM okresy l, kraje n
 
  WHERE SDO_TOUCH(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
 
  WHERE SDO_TOUCH(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
 +
 +
====Další typy operátorů/funkcí====
 +
 +
Použití operátorů/funkcí postavených nad vlastnostmi prostorové složky objektu. Návratové hodnoty se liší podle charakteru operátoru/funke. 
 +
 +
*Užití '''SDO_AREA''' - vrací numerickou hodnotu.
 +
 +
SELECT l.naz_lau1, l.shape_area, SDO_GEOM.SDO_AREA(l.geom, 1)
 +
FROM okresy l
 +
WHERE l.naz_cnuts2 = 'Moravskoslezsko';
 +
 +
*Užití '''SDO_DISTANCE''' - vrací numerickou hodnotu.
 +
SELECT l.naz_lau1, o.naz_lau1, SDO_GEOM.SDO_DISTANCE(l.geom, o.geom, 1)
 +
FROM okresy l, okresy o
 +
WHERE l.naz_lau1 = 'Most' AND o.naz_lau1 = 'Cheb';
 +
 +
[http://gis.vsb.cz/wikivyuka/index.php/Prostorov%C3%A9_datab%C3%A1ze Zpět na stránku PDB]

Latest revision as of 06:42, 15 April 2014

Topologické operátory

Použití jednotlivých operátorů v dotazech SQL, kde jsou předvedeny různé topologické vztahy. Všechny topologické operátory vrací hodnotu BOOLEAN.

  • Užití ANYINTERACT
SELECT l.naz_lau1, l.geom
FROM okresy l, kraje n
WHERE SDO_ANYINTERACT(l.geom, n.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
  • Užití CONTAINS
SELECT l.naz_lau1, l.geom
FROM okresy l, kraje n
WHERE SDO_CONTAINS(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
  • Užití COVERS
SELECT l.naz_lau1, l.geom
FROM okresy l, kraje n
WHERE SDO_COVERS(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
  • Užití COVEREDBY
SELECT l.naz_lau1, l.geom
FROM okresy l, kraje n
WHERE SDO_COVEREDBY(L.geom, N.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';

Jinou možností je formulovat dotaz s pomocí operátoru SDO_RELATE

 SDO_RELATE(geometry1,geometry2, 'mask = <some_mask_val>') = 'TRUE' 

kde je do parametru mask doplněn požadovaný typ vztahu:

SELECT l.naz_lau1, l.geom
FROM okresy l, kraje n
WHERE SDO_RELATE(l.geom, n.geom, 'mask = COVEREDBY') = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';
  • Užití TOUCH
SELECT l.naz_lau1, l.geom
FROM okresy l, kraje n
WHERE SDO_TOUCH(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko';

Další typy operátorů/funkcí

Použití operátorů/funkcí postavených nad vlastnostmi prostorové složky objektu. Návratové hodnoty se liší podle charakteru operátoru/funke.

  • Užití SDO_AREA - vrací numerickou hodnotu.
SELECT l.naz_lau1, l.shape_area, SDO_GEOM.SDO_AREA(l.geom, 1)
FROM okresy l
WHERE l.naz_cnuts2 = 'Moravskoslezsko';
  • Užití SDO_DISTANCE - vrací numerickou hodnotu.
SELECT l.naz_lau1, o.naz_lau1, SDO_GEOM.SDO_DISTANCE(l.geom, o.geom, 1)
FROM okresy l, okresy o
WHERE l.naz_lau1 = 'Most' AND o.naz_lau1 = 'Cheb';

Zpět na stránku PDB