Kreator zapytań jest używany w narzędziach Znajdź według atrybutów i lokalizacji oraz Filtruj według atrybutów do tworzenia wyrażeń, które spełniają określone kryteria.
Tworzenie zapytania
Aby utworzyć zapytanie, kliknij przycisk Utwórz nowe zapytanie w panelu narzędzia lub w oknie dialogowym narzędzia.
Na początek wybierz warstwę, w której chcesz znaleźć obiekty. W przypadku narzędzia Znajdź według atrybutów i lokalizacji można to zrobić w kreatorze zapytań. W przypadku narzędzia Filtruj według atrybutów parametr danych wejściowych musi być wypełniony, zanim możliwe będzie utworzenie zapytania.
Następnie wybierz, czy należy rozpocząć od wyrażenia opartego na atrybutach, wyrażenia przestrzennego (Tylko narzędzie Znajdź według atrybutów i lokalizacji), czy grupy wyrażeń.
Jeśli zapytanie ma więcej niż jedno wyrażenie, należy wybrać odpowiednią z następujących opcji, aby połączyć te wyrażenia:
- Wszystkie poniższe warunki są spełnione (opcja domyślna) — zwracane są tylko obiekty spełniające wszystkie wyrażenia. Ta opcja jest równoważna klauzuli AND (I).
- Jeden z poniższych warunków jest spełniony — zwracane są obiekty, które spełniają dowolne z wyrażeń. Ta opcja jest równoważna klauzuli OR (LUB).
Wyrażenia oparte na atrybutach
Każde zapytanie atrybutowe zawiera nazwę pola, operator i wartość.
Możesz na przykład w następujący sposób utworzyć zapytanie w warstwie zawierającej dane o zdarzeniach przestępczych w mieście (kradzieże, podpalenia, napaści z bronią w ręku itp.), aby wyświetlić tylko zdarzenia kradzieży. Utwórz wyrażenie oparte na atrybutach w następujący sposób:
- Jako nazwę pola wybierz Rodzaj przestępstwa.
- Jako operator wybierz równa się.
- Jako wartość wpisz lub wybierz Kradzież.
Notatka:
Pola z wartościami null są wykluczane ze wszystkich wyników zapytania z wyjątkiem sytuacji, gdy wybrano operator jest puste.
W większości przypadków kreator zapytań zawiera listę dostępnych wartości pól, aby ułatwić utworzenie dokładnego wyrażenia. Lista jest niedostępna w przypadku narzędzia Filtruj według atrybutów, gdy wejściowym zestawem danych są dane wynikowe z innego narzędzia. Musisz wprowadzić w polu wprowadzania dokładną wartość, a nie wybrać wartość z listy.
Wyrażenia przestrzenne
Każde wyrażenie przestrzenne zawiera operator i drugą warstwę. Poniżej drugiej warstwy możesz użyć przycisku +Wyrażenie, aby dodać wyrażenie w celu dalszego doprecyzowania obiektów z drugiej warstwy, które zostaną użyte w oryginalnym wyrażeniu przestrzennym.
Jeśli na przykład inna warstwa reprezentuje piekarnie, można jeszcze bardziej zawęzić zapytanie atrybutowe, aby wyszukać kradzieże, które miały miejsce w promieniu 100 metrów od cukierni. Dodaj następujące wyrażenie przestrzenne:
- Jako operator wybierz W odległości do i wprowadź wartość 100 metrów.
- Jako warstwę wybierz warstwę piekarni.
- Kliknij przycisk +Wyrażenie i wybierz Wyrażenie oparte na atrybutach.
- W grupie instrukcji Where jako pole nazwy Typ sklepu, pozostaw operator równa się i wpisz lub wybierz jako wartość Cukiernie.
Grupa wyrażeń
Aby utworzyć bardziej złożone zapytanie, można użyć grup wyrażeń do zgrupowania wielu wyrażeń. Sposób grupowania wyrażeń decyduje o tym, co zostanie znalezione. Można utworzyć maksymalnie trzy poziomy grupowania.
Grup wyrażeń można na przykład użyć do dodatkowego dostosowania opisanego powyżej filtra zdarzeń przestępczych. Aby wyświetlić zarówno podpalenia, jak i kradzieże zgłoszone w odległości 100 metrów od sklepu z pączkami, można utworzyć grupę wyrażeń w celu znalezienia podpaleń i kradzieży. W tej grupie należy użyć opcji Jeden z poniższych warunków jest spełniony. Następnie (poza grupą) należy dodać wyrażenie przestrzenne, aby znaleźć obiekty w promieniu 100 metrów od cukierni.
Operatory
Narzędzie Znajdź według atrybutów i lokalizacji używa operatorów na potrzeby zapytań atrybutowych i przestrzennych, natomiast narzędzie Filtruj według atrybutów używa operatorów wyłącznie na potrzeby zapytań atrybutowych.
Operatory atrybutów
W zapytaniach atrybutowych można używać kilku operatorów, w zależności od tego, czy odpytywane pole zawiera dane jakościowe czy numeryczne.
Jeśli pole zawiera ciąg znakowy, można użyć następujących operatorów:
- równa się — ciągi znakowe pasujące do podanego tekstu.
- nie równa się — ciągi znakowe, które nie pasują do podanego tekstu.
- należy do — ciągi znakowe, które są zgodne z jedną z podanych wartości tekstowych.
- nie należy do — ciągi znakowe, które nie są zgodne z żadną z podanych wartości tekstowych.
- zawiera — ciągi znakowe zawierające podany tekst.
- nie zawiera — ciągi znakowe, które nie zawierają podanego tekstu.
- zaczyna się od — ciągi znakowe rozpoczynające się od podanego tekstu.
- nie zaczyna się od — ciągi znakowe, które nie rozpoczynają się od podanego tekstu.
- kończy się na — ciągi znakowe, które kończą się podanym tekstem.
- nie kończy się na — ciągi znakowe, które nie kończą się podanym tekstem.
- jest puste — ciągi znakowe, które nie zawierają tekstu i nie mają wartości null.
- nie jest puste — ciągi znakowe, które zawierają tekst i nie mają wartości null.
- jest pustym ciągiem znakowym — ciągi znakowe, które mają wartość null lub nie zawierają tekstu.
- nie jest pustym ciągiem znakowym — ciągi znakowe, które zawierają jakiś tekst lub mają wartość null.
Jeśli pole jest liczbowe, można użyć następujących operatorów:
- jest pomiędzy — liczby, które znajdują się pomiędzy dwiema podanymi wartościami. Wartości ograniczające są uwzględniane w wynikach.
- nie jest pomiędzy — liczby, które nie znajdują się pomiędzy dwiema podanymi wartościami. Wartości ograniczające nie są uwzględniane w wynikach.
- równa się — liczby pasujące do podanej wartości.
- nie równa się — liczby, które nie pasują do podanej wartości.
- należy do — liczby, które są zgodne z jedną z podanych wartości.
- nie należy do — liczby, które nie są zgodne z żadną z podanych wartości.
- jest większe niż — liczby, które są większe niż podana wartość.
- równa się co najmniej — liczby, które są równe podanej wartości lub od niej większe.
- jest mniejsze niż — liczby, które są mniejsze niż podana wartość.
- równa się maksymalnie — liczby, które są mniejsze od podanej wartości lub jej równe.
- jest puste — liczby pasujące do podanej wartości.
- nie jest puste — liczby, które mają jakąś wartość.
Jeśli pole jest datą, można użyć następujących operatorów:
- jest pomiędzy — daty, które znajdują się pomiędzy dwiema podanymi datami. Wartości ograniczające są uwzględniane w wynikach.
- nie jest pomiędzy — daty, które nie znajdują się pomiędzy dwiema podanymi datami. Wartości ograniczające nie są uwzględniane w wynikach.
- jest w dniu — daty, które są takie same jak podana data.
- nie jest w dniu — daty, które nie są takie same jak podana data.
- jest przed — daty, które są przed podaną datą.
- jest po — daty, które są po podanej dacie.
- jest puste — daty, które mają wartość null.
- nie jest puste — daty, które nie mają wartości null.
Operatory przestrzenne
Wyrażenia przestrzenne są tworzone przez określenie operatorów, takich jak całkowicie wewnątrz lub przecina.
W zapytaniu przestrzennym można używać następujących operatorów przestrzennych:
- Przecina się — jeżeli obiekt w pierwszej warstwie przecina obiekt z drugiej warstwy, obiekt z pierwszej warstwy zostaje uwzględniony w warstwie wynikowej.
- Nie przecina się — jeżeli obiekt w pierwszej warstwie przecina obiekt z drugiej warstwy, obiekt z pierwszej warstwy nie zostaje uwzględniony w warstwie wynikowej.
- W odległości do — obiekt w pierwszej warstwie zostaje wybrany (uwzględniony w warstwie wynikowej), jeśli dowolna jego część znajduje się w określonej odległości od obiektu w drugiej warstwie; na przykład, działki znajdujące się w odległości do 100 metrów od rzeki zostaną uwzględnione w warstwie wynikowej.
- Nie w odległości do — obiekt w pierwszej warstwie zostaje wykluczony (nieuwzględniony w warstwie wynikowej), jeśli znajduje się w określonej odległości od obiektu w drugiej warstwie; na przykład, działki znajdujące się w odległości do 100 metrów od rzeki nie zostaną uwzględnione w warstwie wynikowej. Tę zależność można opisać inaczej jako „obiekt znajduje się dalej niż podana odległość”.
- Całkowicie zawiera — jeśli obiekt w pierwszej warstwie całkowicie zawiera obiekt z drugiej warstwy, obiekt z pierwszej warstwy zostaje uwzględniony w warstwie wynikowej.
- Nie całkowicie zawiera — jeśli obiekt w pierwszej warstwie całkowicie zawiera obiekt z drugiej warstwy, obiekt z pierwszej warstwy nie zostaje uwzględniony w warstwie wynikowej.
- Całkowicie wewnątrz — jeżeli obiekt w pierwszej warstwie zawiera się całkowicie w obiekcie z drugiej warstwy, obiekt z pierwszej warstwy zostaje uwzględniony w warstwie wynikowej.
- Nie całkowicie wewnątrz — jeżeli obiekt w pierwszej warstwie zawiera się całkowicie w obiekcie z drugiej warstwy, obiekt z pierwszej warstwy nie zostaje uwzględniony w warstwie wynikowej.
- Najbliższy do — jeśli obiekt w pierwszej warstwie jest obiektem znajdującym się najbliżej względem obiektu z drugiej warstwy, obiekt z pierwszej warstwy zostaje uwzględniony w warstwie wynikowej.
Rozwiązywanie problemów
Zmiany w zestawie danych mogą spowodować, że wcześniej prawidłowe wyrażenie stanie się nieprawidłowe. Przykładowe zmiany, które mogą spowodować, że wyrażenie stanie się nieprawidłowe, to usunięcie lub zmiana typu pola używanego w wyrażeniu bądź zmiana geometrii obiektu zestawu danych używanego w wyrażeniu przestrzennym. Nieprawidłowe wyrażenia nie są wyświetlane w kreatorze zapytań po jego ponownym otwarciu.