Ako na filtrovanie podľa geometrie v Definition Query

Jedným zo spôsobov, ako rýchlo vyfiltrovať požadované prvky v mapovej vrstve je funkcia Definition Query dostupná na rovnomennej záložke vo vlastnostiach vrstvy v mapovom dokumente. Dlhé obdobie v minulosti ako aj v súčasnosti umožňuje filtrovať prvkov iba na základe atribútových hodnôt.

Ako si poradiť v prípade, keď potrebujeme filtrovať pomocou priestorových vzťahov (podľa geometrie)?

Prinášame Vám 3 triky, ktoré Vám v takejto situácii môžu pomôcť:

1. Vytvorenie novej vrstvy z výberu prvkov v pôvodnej vrstve

Postup je pomerne jednoduchý a funguje rovnako v ArcMap-e aj v ArcGIS Pro.

V analyzovanej vrstve vyberieme pomocou nástroja Selection – Select By Location… požadované prvky a potom pravým tlačidlom myši klikneme na názov vrstvy v okne Table Of Contents a zvolíme príkaz Selection – Create Layer From Selected Features (v ArcGIS Pro sa tento príkaz volá Make Layer From Selected Features). Vznikne nová vrstva s príponou “ selection”, ktorá obsahuje iba tie prvky, ktoré sme vybrali v zdrojovej vrstve. Filtrovací výraz nemôže používateľ zmeniť, pretože je zapísaný interne v mapovom dokumente. Vrstva však funguje dynamicky (ak aktualizujeme / odstránime prvky v zdrojovej vrstve, zmena sa premietne aj do tejto odvodenej vrstvy).

 

2. Vyfiltrovanie prvkov v tej istej vrstve

Tento postup je tiež jednoduchý a líši sa od predchádzajúceho v tom, že filtrovanie prebehne priamo v analyzovanej vrstve (nevznikne nová vrstva) a funguje iba v novom desktopovom GIS-e ArcGIS Pro.

V analyzovanej vrstve vyberieme pomocou nástroja Selection – Select By Location… požadované prvky a potom na pravom okraji záložky „Map“ klikneme na tlačidlo Filter Selected. Vybrané prvky ostanú zobrazené a zvyšné sa dočasne skryjú (spolu s riadkami v tabuľke atribútov). Po kliknutí na susedné tlačidlo Clear Filter sa priestorový filter zruší a zobrazenie sa vráti do pôvodného stavu.

3. Vytvorenie Query Layer s využitím priestorových operátorov v klauzule WHERE

Tento postup patrí medzi náročnejšie, ktoré si vyžadujú znalosť SQL syntaxe a fungujú iba nad triedami prvkov uloženými vo viacužívateľskej databáze. Využíva výhody priestorových operátorov z „rodiny“ ST funkcií, ktoré sú súčasťou databázových systémov ako sú Oracle, MS SQL Server, PostreSQL / PostGIS a podobne.

Pomocou príkazu File – Add Data – Add Query Layer… v ArcMap-e, resp. Add Data – Query Layer na záložke „Map“ v ArcGIS Pro, pridáme novú vrstvu do mapy tak, že v okne „Query“ zadáme SQL výraz, pričom v klauzule WHERE môžme použiť kritérium na zobrazenie iba takých prvkov, ktoré obsahujú / pretínajú sa / nachádzajú sa vo vnútri / … iných prvkov. Slúžia na to funkcie ako napr. STContains, STIntersects, STWithin a pod. Nižšie uvedený príklad vyberie napr. iba tie polygóny obcí, ktorých obrysy úplne ležia v okrese Nitra:

SELECT * FROM hranice_okres WHERE shape.STWithin((SELECT shape FROM hranice_okres WHERE NAZOKRES = ‘Nitra’)) = 1

  • Geometria_v_definition_query