Forum QGIS
Zabawy z SQL - Wersja do druku

+- Forum QGIS (http://forum.quantum-gis.pl)
+-- Dział: Bazy danych (http://forum.quantum-gis.pl/forum-23.html)
+--- Dział: SQLite, Spatialite, Geopackage (http://forum.quantum-gis.pl/forum-25.html)
+--- Wątek: Zabawy z SQL (/thread-1722.html)



Zabawy z SQL - jerresso - 15-10-2018

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


RE: Zabawy z SQL - jerresso - 15-10-2018

SELECT fid, jpt_nazwa_, MAKEPOINT(ST_X(ST_CENTROID(geom)),(ST_Y(ST_CENTROID(geom)))) AS punkty FROM powiaty;

nie zmieniło sytuacji...


RE: Zabawy z SQL - jerresso - 16-10-2018

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;