Closed pigreco closed 1 year ago
@pigreco partirei da un formato di input più "normale". Fai una prova con un shp, e verifichi st_centroid?
qui shapefile, ma lanciando:
SELECT ST_Centroid (geometry) as shape
FROM ST_Read(layer="shapefile");
Osservazioni:
credo che per richiamare la geometry
del vettore occorre utilizzare wkb_geometry
, infatti la seguente query restituisce un output:
SELECT a.wkb_geometry AS centroid
FROM ST_Read("shapefile.shp") a;
però se utilizzo la seguente query spaziale:
SELECT ST_Centroid(a.wkb_geometry) AS centroid
FROM ST_Read("shapefile.shp") a;
ho questo errore:
in duckdb la geometry
è convertita in wkb
quindi il nome del campo sarà wkb_geometry
;
per poter utilizzare la funzione ST_Centroid()
occorre prima convertire la colonna wkb_geometry
utilizzando la funzione ST_GeomFromWKB()
, quindi la query da utilizzare è:
SELECT ST_Centroid(ST_GeomFromWKB(a.wkb_geometry)) AS centroid
FROM ST_Read("shapefile.shp") a;
NOTA: non funziona usando lo shapefile allegato perché segnala questo errore:
Error: Not implemented Error: Geometry type not supported
lo shapefile allegato ha una geometry: MultiPoligonZM
-- rif.: https://tech.marksblogg.com/duckdb-gis-spatial-extension.html
ricetta fatta e pubblicata qui https://tansignari.opendatasicilia.it/ricette/riga_comando/duckdb_funzione_spaziale/ grazie @aborruso
Grazie mille a te @pigreco !!!
Nel file che condivido ho un layer
polygon
e per estrarre il centroide scrivo la seguente query:ma ricevo questo errore:
x_andy.gdb.zip