Buongiorno,
solo per comunicare che dopo quasi 6 anni (non vi nego l'emozione), QGIS
inizia a compilare la master con SpatiaLite 5, in particolare con Spatialite
5.0.1 rc1.
Colgo l'occasione per ringraziare Alessandro Furieri e Jürgen E. Fischer per
l'enorme sforzo compiuto per la realizzazione di OSGeo4W con le nuove
dipendenze.
QGIS inizia a compilare la master con SpatiaLite 5, in particolare con
Spatialite 5.0.1 rc1.
Ciao Salvatore,
hai provato ad usare le funzioni topologiche e geodetiche di Spatialite?
Per esempio MakeValid( geom Geometry ) o Area( s Surface , true ).
Come ti ho accennato, ho testato la build automatica MinGW, che usa
anch'essa Spatialite (5.0.0), e non mi pare che tali funzioni non siano
supportate.
Da quanto ho potuto appurare, almeno per la build MinGW ma suppongo anche
con la build di testing OSGeo4W, la libreria Spatialite non è compilata con
il supporto di librttopo.
La libreria RTTOPO fornisce a Spatialite, a partire dalla versione 5, le
routines per la topologia che, nelle versioni precedenti, erano fornite
dalla libreria LWGEOM (fornita da PostGIS).
Sto infatti facendo alcuni test sul calcolo ellissoidico delle aree anche
perché - non so se te ne sei accorto - è molto probabile che QGIS cambi il
suo algoritmo (che attualmente è simile a quello di GRASS) per uniformarsi
al modo in cui PostGIS e PROJ calcolano le aree ellissoidiche.
Da quanto ho potuto appurare, almeno per la build MinGW ma suppongo anche
con la build di testing OSGeo4W, la libreria Spatialite non è compilata
con
il supporto di librttopo.
Ciao Andrea,
da DBmanager ho lanciato la seguente query:
Chiedo quindi, a te o a chi può già usare Spatialite 5 con librttopo, di
poter effetture il calcolo dell'area dei poligoni presenti nel file GeoJson
utmzones_area.json in utmzones_area.zip
<http://osgeo-org.1560.x6.nabble.com/file/t224928/utmzones_area.zip>
utilizzando le funzioni ST_Area(geometry, true) e ST_Area(geometry, false) i
cui valori dovranno essere inseriti rispettivamente nelle colonne
area_spatialite_5_true e area_spatialite_5_false.
Nel layer sono già presenti i valori dell'area calcolati tramite
- Spatialite 4.3.0 (PROJ 6.3.2, LWGEOM 3)
- QGIS 3.16.3
- PostGIS (PostgreSQL 13.1 / PostGIS 3.0.2 / PROJ 5.0.2 / Liblwgeom 3.0.2)
- PROJ (pyproj 2.6.1.post1 / PROJ: 7.0.1)
Nel frattempo è stata inserita nel codice la Pull Request di Nyall Dawson
che cambia l'algoritmo di calcolo geodesico di aree e distanze, passando da
alcune routine che erano state implementate in QGIS, per il calcolo delle
aree, a partire da quelle di GRASS (e infatti restituivano gli stessi
valori), alle routine di GeographiLib che dovrebbero garantire gli stessi
risultati che si ottengono tramite PROJ/pyproj e PostGIS. https://github.com/qgis/QGIS/pull/41726
Chiedo quindi, a te o a chi può già usare Spatialite 5 con librttopo, di
poter effetture il calcolo dell'area dei poligoni presenti nel file
GeoJson
utmzones_area.json in utmzones_area.zip
<http://osgeo-org.1560.x6.nabble.com/file/t224928/utmzones_area.zip>
utilizzando le funzioni ST_Area(geometry, true) e ST_Area(geometry, false)
i
cui valori dovranno essere inseriti rispettivamente nelle colonne
area_spatialite_5_true e area_spatialite_5_false.
Fammi sapere se ti interessano i dettagli dell'analisi delle routine di
calcolo delle aree sull'ellissoide attualmente implementate dalle varie
librerie di cui ti accennavo.
Comunque i dati sono già presenti nel layer geojson. Oltre a quelli che hai
aggiunto to, aggiungerò anche i nuovi valori calcolati da QGIS ora che il
suo algoritmo di calcolo è stato modificato.
Fammi sapere se ti interessano i dettagli dell'analisi delle routine di
calcolo delle aree sull'ellissoide attualmente implementate dalle varie
librerie di cui ti accennavo.
Ciao Andrea,
sì, mi interessano e sono disponibile per altri test.
Andrea, io noto invece che NON funziona spatialite 5 nei Virtual layer.
Ciao Salvatore,
Nyall Dawson ha proposto il rilascio di una versione 3.18.1 "di emergenza"
per risolvere alcuni bug riscontrati nella versione 3.18.0 [1]
Magari potrebbe essere il caso di segnalare immediatamente i bug che hai
riscontrato per sperare che possanno essere risolti prima di questo rilascio
anticipato della versione 3.18.1.
Il bug che hai riscontrato tu (di cui accennavi su Facebook) in merito ai
GeoPackage l'ho riscontrato anche io nella build MinGW e l'ho segnalato
relativamente a quella build [2].
Potresti segnalarlo anche tu relativamente alla versione rilasciata
ufficialmente perché potrebbe dipendere dalla stessa causa.
Il bug che hai riscontrato tu (di cui accennavi su Facebook) in merito ai
GeoPackage l'ho riscontrato anche io nella build MinGW e l'ho segnalato
relativamente a quella build [2].
Potresti segnalarlo anche tu relativamente alla versione rilasciata
ufficialmente perché potrebbe dipendere dalla stessa causa.
Ciao Andrea e grazie per le varie segnalazioni.
Il problema dei geopackage non esiste nella versioni ufficiali.
Ho segnalato altro bug sui Virtual Layer sulle nuove versioni a 64bit
(OSGeo4W64-NG)
Purtroppo non è possibile testare con la versione non di testing, perché non
è disponibile con Spatialite 5, quindi non si può essere sicuri che il
problema sia specifico della versione di testing.
Qualcuno che usa un altro sistema operativo su cui QGIS è compilato per
usare Spatialite 5, o se l'ha compilato autonomamente, potrebbe fare una
verifica e darci conferma.
Comunque io penso che il problema sia specifico del repository di testing di
OSGeo4W e penso che possa essere il caso di segnalarlo nell'apposito bug
tracker, anche perchè solitamente Jeff Fischer è estremamente sollecito
nell'occuparsi dei problemi lì segnalati. Eventualmente valuterà se può
dipende da qualche pacchetto o da qualche parametro di compilazione o se è
un problema più generale.
Comunque io penso che il problema sia specifico del repository di testing
di
OSGeo4W e penso che possa essere il caso di segnalarlo nell'apposito bug
tracker, anche perchè solitamente Jeff Fischer è estremamente sollecito
nell'occuparsi dei problemi lì segnalati. Eventualmente valuterà se può
dipende da qualche pacchetto o da qualche parametro di compilazione o se è
un problema più generale.