Forum QGIS

Pełna wersja: Zabawy z SQL
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Hej,

powoli uczę się SQLi nieco bardziej zaawansowanych niż
Kod:
SELECT * FROM table1;


Na warsztat wziąłem sobie GeoPaczkę, DB Managera i QGIS 2.18.24. Chciałem wygenerować "w locie" centroidy powiatów, ze znanej zapewne warstwy poligonowej z PRG udostępnianej przez GUGiK KLIK!. Niestety dla zapytania 
Kod:
SELECT fid AS GUID, jpt_nazwa_ AS Powiat, st_centroid(geom) AS Centroida FROM powiaty;

w QGIS ładuje się warstwa poligonowa, a w oknie mapy nie wyświetla się nic. Tabela atrybutów wygląda poprawnie. Problem chyba jest w tym, że w locie z poligonów robię punkty, bo dla zapytania w locie poligon->poligon działa poprawnie, np. tworzenie buforów 500m. od granic powiatów
Kod:
SELECT fid AS GUID, jpt_nazwa_ AS Powiat, st_buffer(geom, 500) AS BUFOR FROM powiaty;

Ktoś podpowie, proszę? Sad
SELECT fid, jpt_nazwa_, MAKEPOINT(ST_X(ST_CENTROID(geom)),(ST_Y(ST_CENTROID(geom)))) AS punkty FROM powiaty;

nie zmieniło sytuacji...
Wychodzi na to, ze zapytania SQL do GeoPaczek rządzą się swoimi prawami, albo jeszcze to nie do końca wszystko jest poprawnie zaimplementowane. Identyczny cel, tylko na danych wsadzonych w SpatiaLite przyniósł oczekiwany efekt poprzez proste

CREATE VIEW "Centroidy" AS SELECT ogc_fid, jpt_nazwa_, jpt_kod_je, Centroid(GEOMETRY) FROM spatialite;