Difference between revisions of "Ukázka prostorových operací"
From Wikivyuka
m |
m (→Další typy operátorů/funkcí) |
||
(10 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. | |
− | |||
− | SELECT l.naz_lau1, l.geom | + | *Užití '''ANYINTERACT''' |
− | FROM okresy l, kraje n | + | SELECT l.naz_lau1, l.geom |
− | WHERE | + | FROM okresy l, kraje n |
+ | WHERE SDO_ANYINTERACT(l.geom, n.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko'; | ||
− | SELECT l.naz_lau1, l.geom | + | *Užití '''CONTAINS''' |
− | FROM okresy l, kraje n | + | SELECT l.naz_lau1, l.geom |
− | WHERE | + | FROM okresy l, kraje n |
+ | WHERE SDO_CONTAINS(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko'; | ||
− | SELECT l.naz_lau1, l.geom | + | *Užití '''COVERS''' |
− | FROM okresy l, kraje n | + | SELECT l.naz_lau1, l.geom |
− | WHERE | + | FROM okresy l, kraje n |
+ | WHERE SDO_COVERS(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko'; | ||
− | SELECT l.naz_lau1, l.geom | + | *Užití '''COVEREDBY''' |
− | FROM okresy l, kraje n | + | SELECT l.naz_lau1, l.geom |
− | WHERE SDO_TOUCH(n.geom, l.geom) = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko'; | + | 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'; | ||
+ | |||
+ | [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';