SELECT “PROVINCIA”, count(*),
sum(st_area(st_transform(st_setsrid(“SP_GEOMETRY”,4326),32632))),
avg(st_area(st_transform(st_setsrid(“SP_GEOMETRY”,4326),32632)))
FROM public.”Comuni_MapInfo”
GROUP BY “PROVINCIA”
Categoria: PostGIS
Questa soluzione ci permette di aprire con QGis i dati cartografici pubblicati su una mappa web, pubblicata ad esempio con LeafletJS.
Sto usando un sistema operativo Windows 10 e mediante il software PuTTY, creo un tunnel ssh alla porta 5432 di un server con PostGIS.
La modifica dei dati quindi è possibile farla con il potente software QGis, che legge nativamente la connessione con un database Postgres; in questo i modo i dati, estratti direttamente dal database in formato GeoJson, vengono visualizzati subito sulla mappa web.
PostGIS, 3 puntate con GISTIPS
Spesso non ce ne accorgiamo, ma molti software e applicazioni che usiamo tutti i giorni usano i DataBase. La potenza di calcolo dei computer e la diffusione della banda larga, ci permettono di avere una panoramica di soluzioni molto ampia. In questo video ho provato a simulare (con i Lego) il rapporto che ha un DataBase con il lavoro di ufficio che svolgiamo tutti i giorni.
In questo video tutorial vediamo come raggruppare le geometrie in base ad alcuni campi e successivamente esportarle in CSV per avere una tabella più facilmente gestibile. I comandi principalmente usati sono GROUP BY e COPY funzioni native di Postgres. Nel tutorial viene utilizzato QGis, ma in questo caso è solo per la visualizzazione dei dati. Infatti l’obiettivo è quello di estrarre dei dati non-geometrici, che spesso è comodo per fare ulteriori ricerche o semplicemente per inserirli in una relazione.
GROUP BY
Select cod_adb, adb, delibera FROM pg_pericolosita_alluvione GROUP BY cod_adb, adb, delibera -- Commento: adb è la colonna con i nomi ORDER BY adb
COPY
COPY ( Select cod_adb, adb, delibera FROM pg_pericolosita_alluvione GROUP BY cod_adb, adb, delibera ORDER BY adb ) to '/home/pjh/Desktop/temp/pg_pericolosita_alluvione_group.csv' DELIMITER '|' CSV HEADER;
Riferimenti utili
Ho riscontrato qualche problema con l’esportazione di file DXF da degli ShapeFile, non per le geometrie, ma per i Layer. Ho seguito qualche forum, di cui link sotto, ma alla fine sembra non funzionare con QGis, anche se metto “Layer” con la lettere maiuscola. Il risultato è che il DXF ha comunque tutti layer=0.
Ho provato anche ad usare lo strumento di processing v.out.dxf di GRASS, che è integrato direttamente in QGis, ma neanche questo mi ha mantenuto i campi della colonna Layer.
Sul mitico forum gis.stackexchange ho trovato la discussione che mi ha dato la soluzione getting dxf files out of postgresql, anche se ho dovuto aprire il terminale …
ogr2ogr -f DXF $TITLE$.dxf PG:"dbname='$DBNAME$' host='$HOST$' port='$PORT$' user='$USER$' password='$PASSWORD$'" -sql "select $COLUMN$ as Layer, the_geom from $TABLE$"
Con una piccola modifica nella stringa SQL, dove invece di $COLUMN$ as Layer, the_geom ho semplicemente messo * perchè mi dava errore (tipo che non riusciva a definire Layer
ERROR 1: DXF layer does not support arbitrary field creation, field 'layer2' not created.
Anche se nella schermata si vedono degli errori, perchè non riusciva a processare tutte le colonne, visto che ho inserito * (ALL), ma la colonna Layer gli è piaciuta.
Adesso dovrò dirgli in qualche modo che nella stringa SQL, devo proiettare l’SR da 3003 in 32632 … ma questo penso di risolverlo con una view!
Link di riferimento ai forum:
- http://gis.stackexchange.com/questions/29675/how-to-export-a-layer-to-dxf-from-qgis
- http://gis.uster.ch/dokumentation/datenkonvertierung/ogr
- http://freegeographytools.com/2007/converting-shapefiles-and-arcinfo-coverages-to-autocad-dxf-format
usare POSTGIS
- importare una geometria
- importare una tabella
- creare un join dei 2 import
- creare una view
- altri esempi di SQL
esempio Geodatabase PostGIS
- hai scaricato OSGEO live?
- scopriamo pgADMIN per gestire il geo-db
- tabelle e query
- modifica tabelle
- la prima stringa SQL
Quale interesse vorresti mappare? o più semplicemente: ti interessa il geotagging? Si può mappare ogni cosa, il famoso GEOTAG ormai è una moda … discutiamone… io vorrei mappare: alberi, cantieri, luoghi abbandonati, ecc. E tu?
Regione Lombardia – Guida ai controlli delle forniture Piani di Governo del Territorio
GUIDA AI CONTROLLI SUGLI SHAPEFILE
Controllo 8: assenza degenerazione. Ogni anello non ammette vertici adiacenti identici (considerando tutte le coordinate previste dal tipo) . I record errati sono elencati nella sottosezione “analisi dei valori dei tipi geometrici” e sono classificati col tipo errore “duplicate adjacent vertex”.
VIDEO: https://youtu.be/RUk-z5ZECeA
Nel “report analitico” prodotto come risposta alla consegna per i “controlli preventivi” sugli shapefile, alla voce QUALITÀ GEOMETRICA: Analisi dei valori dei tipi geometrici, vengono elencati le geometrie, secondo il CODICE IDENTIFICATIVO, dove sono presenti gli errori. In questo post, trattiamo quelli contrassegnati con: duplicate adjacent vertex.
La prima idea che mi è venuta è semplificare le geometria, per andare ad eliminare i vertici “troppo vicini”; non avendo trovato un plug-in adatto per QGis, sono passato subito a PostGIS. Il passaggio a PostGIS (non vedevo l’ora), è stato necessario anche per il fatto che, il tool di QGis (v 2.0.1) vector -> geometry tools -> check geometry validity non mi dava errore sulla geometria segnalata dalla Regione.
Come faccio ad individuare questi punti “molto vicini” duplicate adjacent vertex ?
L’operazione che seleziono è quella di estrarre i nodi dai poligoni, etichettarli e vedere le etichette che si aggregano sopra i punti: se ne trovo più di una, vuol dire che li ci sono più punti molto vicini.
Altri metodi
- utilizzare il plug-in di QGis (installato di default v 2.0.1) vector -> geometry tools -> extract nodes
- utilizzare ST Simplify e mediante la seguente Stringa SQL, verificare la tolleranza accettabile per eliminare i DAV. Contro serve solo come output finale per la Regione, ma non ti permette di indiduare i vertici da sistemare nella geoimetria originale.

Risorse
- Guida ai controlli delle forniture Piani di Governo del Territorio
- Re: [postgis-users] detect poly’s with duplicated vertex
- ST_SnapToGrid – PostGIS
- ST Simplify – PostGIS
- Get coordinate of vertices from polygon (PostGis/Postgresql)
- ST GeomFromText – PostGIS