Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Zabawy z SQL
15-10-2018, 22:26,
#1
Bug  Zabawy z SQL
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
15-10-2018, 23:15,
#2
RE: Zabawy z SQL
SELECT fid, jpt_nazwa_, MAKEPOINT(ST_X(ST_CENTROID(geom)),(ST_Y(ST_CENTROID(geom)))) AS punkty FROM powiaty;

nie zmieniło sytuacji...
16-10-2018, 18:44,
#3
RE: Zabawy z SQL
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;


Skocz do: