Difference between revisions of "Ukázka prostorových operací"
From Wikivyuka
m |
m |
||
Line 1: | Line 1: | ||
Použití jednotlivých operátorů v dotazech SQL, kde jsou předvedeny různé topologické vztahy: | Použití jednotlivých operátorů v dotazech SQL, kde jsou předvedeny různé topologické vztahy: | ||
+ | *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í ''' | + | *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' | SDO_RELATE(geometry1,geometry2, 'mask = <some_mask_val>') = 'TRUE' | ||
kde je do parametru ''mask'' doplněn požadovaný typ vztahu: | kde je do parametru ''mask'' doplněn požadovaný typ vztahu: | ||
Line 27: | Line 29: | ||
WHERE SDO_RELATE(l.geom, n.geom, 'mask = COVEREDBY') = 'TRUE' AND l.naz_cnuts2 = 'Moravskoslezsko'; | 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'; |
Revision as of 06:23, 15 April 2014
Použití jednotlivých operátorů v dotazech SQL, kde jsou předvedeny různé topologické vztahy:
- 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';