Forum QGIS

Pełna wersja: Wyszukiwanie na dwóch atrybutach.
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Od dawna poszukuję rozwiązania a zasadzie usprawnienia wyszukiwania w warstwie shp po dwóch atrybutach. Mam warstwę z działkami natomiast chciałbym uzyskać możliwość szybkiego wyszukiwania po atrybucie obrębu i numeru działki. Idealnie by było gdyby takie wyszukiwanie przesuwało od razu do wybranego wiersza/obiektu.
Szukałem wtyczki, ale żadna nie ma funkcjonalności wybierania dwóch atrybutów.
Wiem, że można sobie poradzić za pomocą wyrażeniami sql ale zależy mi na umożliwieniu łatwego wyszukiwania by można je wykorzystywać w pracy w urzędzie.
Czy ktoś z Was napisał sobie może taką wtyczkę w Pythonie albo chociaż skrypt i chciał się podzielić byłbym bardzo wdzięczny.
Po otwarciu tabeli atrybutów:

ctrl + f -> otwiera okno do tworzenia filtrów na podstawie wyrażeń (nie jestem pewien, od której której wersji QGIS ten skrót działa, ale w nowszych jest coś takiego jak "Filtr zaawansowany (wyrażenie)" do wybrania w lewym dolnym rogu tabeli atrybutów).

I tam z zakładki "pola i wartości" (fields and values) wybierasz interesujące Cię kolumny, a następnie wykorzystując standardowe operatory, łatwo można tworzyć takie zapytania.

Np. w przypadku poszukiwania rekordów z dwoma warunkami:

"field_1" = 'tekst' and "field_2" = value

Nazwy kolumn w "", wartości tekstowe w ' ' itd..
Znam ten sposób ale jest on dość czasochłonny. Miałem nadzieje że jest może jakaś wtyczka która umożliwiałaby szybsze wyszukiwanie, bo wpisywanie takiej formuły będzie dość nieporęczne dla osób, które chcą szybko sobie wyszukać na mapie daną działkę. Niestety powoduje to, że trzeba się posiłkować geoportalami, które mają możliwości wyszukiwania działek.
Jak czasochłonny? Przecież takie wyszukanie zajmuje kilka sekund, mniej więcej tyle samo jakby robić to w dedykowanym oknie, przecież tak czy inaczej trzeba podać nr działki. A przesuwanie do zaznaczonego obiektu to Ctrl+J
Dla kogoś kto siedzi GISie wydaje się to proste i szybkie, ale dla kogoś kto chce szybko coś znaleźć takie rozwiązanie jest bardzo nieintuicyjne.
QGISa wrzuciłem paru osobom u mnie w urzędzie i służy on im głównie jako przeglądarka szeregu map rastrowych i wmsów. Natomiast wyszukiwanie w powyższy sposób powoduje, że ludziom łatwiej odpalić stronę i wyszukać w dedykowanej wyszukiwarce gdzie można wybrać z rozwijalnej listy obręb i wpisać nr działki.
Wiem że możliwości QGISa znacznie wykraczają poza przeglądanie treści, ale w moim pytaniu chodzi w zasadzie tylko o to czy jest sposób na stworzenia takiej wyszukiwarki która od użytkownika nie wymaga tworzenia zapytania, a jedynie wpisania oczekiwanych wartości.
Oczywiście, że jest sposób na stworzenie takiej wyszukiwarki, nie jest to skomplikowane, ale nikt nie stworzy takiej dedykowanej wtyczki nie znając chociażby struktury twoich danych. Wyszukiwarki w dedykowanych portalach działają tak a nie inaczej m.in. dlatego, że projekt jest "zamknięty", dane mają określoną strukturę itd.
pomocna będzie wtyczka mmqgis. w jej skladzie jest narzędzie "search" to jest to czego szukasz. dodam tylko, że mając w liście warstw zaznaczoną warstwę np. działek to w search ona właśnie będzie wybrana do zapytania. po kliknięciu w wynik zostanie on wycentrowany, problem jedynie taki, że nie wyzoomuje, dlatego najlepiej od razu przed zapytaniem przejść na skale np. 1:1000.
Tak to jest mniej więcej o to o co mi chodziło.
Z tą wtyczką i z paroma innymi jest taki problem, że jeżeli w nazwie użytkownika systemu Windows jest polski znak to nie zawsze działają poprawnie albo nie działają wcale (tak jest m.in z TableManagerem). W takim przypadku trzeba stworzyć dodatkowe konto użytkownika z nazwą bez polskich znaków.
Ale to jest generalna zasada "higieny" pracy na kompie, nie używa się polskich znaków diakrytycznych w nazwach kont użytkowników, ścieżkach dostępu, nazwach plików itd. Tak samo jak QGIS (i kilka innych programów z tej branży) jest wrażliwy na spacje w instalacyjnych ścieżkach dostępu.
A nie prościej byłoby stworzenie za pomocą kalkulatora pól wirtualnego pola nazwanego 'obreb+dzialka' o wyrażeniu "obreb" || ' ' || "dzialka"?
Dawałoby wynik (przy obrębie Śródmieście i działce 11/1) w postaci połączenia tych dwóch pół (dla wszystkich rekordów) oddzielonych znakiem spacji:
'Śródmieście 11/1'
Zapisać takie wirtualne pole w projekcie a będzie zawsze się pojawiało, nic nie trzeba będzie ponownie definiować. Użytkownicy będą mogli szukać przez tabele atrybutów wybierając kolumnę obreb+dzialka i wpisując obręb i działkę oddzielone za pomocą spacji...
Może pomoże Smile
Pozdrawiam!