Czy uruchamiać zapytania SQL przeciwko plikowi shapefile w QGIS?

9

Czy jest jakiś sposób na zaimportowanie pliku kształtu do QGIS, a następnie uruchomienie przeciwko nim przestrzennych zapytań SQL?

Oczywiście mogę ogr2ogr -sqlto zrobić, ale za każdym razem muszę zaimportować dane wyjściowe do QGIS, co jest uciążliwe.

Byłoby wspaniale, gdybym mógł po prostu zaimportować plik kształtu do QGIS, a następnie uruchomić SQL przeciwko niemu i natychmiast zobaczyć wyniki.

Richard
źródło

Odpowiedzi:

15

Możesz użyć wirtualnej warstwy. Załaduj plik Shapefile do QGIS, a następnie przejdź do Layer / Add Layer / Add-Edit Virtual Layer. Wpisz żądany kod SQL.

Na przykład, jeśli twój plik kształtu jest nazwany myshpi ma atrybut test, możesz zapytać jako:

select * from myshp a
where a.test = 1234;

Lub możesz wykonać zapytanie przestrzenne za pomocą geometrypola:

select * from myshp 
where st_intersects(geometry, make_point(1,2));
JGH
źródło