[Gfoss] Librerie GeoTools e cambio SRS nel WFS

Salve,

per lavoro stiamo impiegando le librerie GeoTools per realizzare un client WFS.

Con mi enorme sorpresa il driver WFS delle librerie GeoTools sembra che non sappia effettuare chiamate WFS su sistemi di riferimentodifferenti da quello nativo dei dati.

Per i non addetti ai lavoro spiego meglio:

se prendere a riferimento il WMS, sapete che quando si invoca una mappa WMS si puo’ passare al server wms il sisema di riferimento voluto tra quelli disponibili per avere la mappa nel sistema di riferimento che si sta’ usando.
Il vantaggio di questa soluzione è sicuramente superiore rispetto alla soluzione di far fare al client WMS il cambio del sistema di riferimento.
Infatti se chiamo un server wms in francia io non necessariamente posso avere i grigliati francesi , mentre molto probabilmente il server wms francese li avra’ .
Ergo con questa soluzione è molto piu’ facile avere dei cambi di SRS precisi.

Ovviamente ci si aspetta che avvenga una cosa analoga anche con il WFS.
Mettendo da parte il wfs 1.0.0 che non prevedeva nelle specifiche di supportare i cambi di sistema di riferimento, con il wfs 1.1.0 i cambi di SRS sono divenuti possibili e quindi se si manda una richiesta di dati al WFS 1.1.0 e gli si chiede di averli nel tal sistema di riferimento lui provvedee a cambiare il sistema e a spedirli.

Tutto ovvio e sano.

Salvo che come dicevo il buon driver WFS delle librerie GeoTools non fa’ cosi’. :slight_smile:

Se ad esempio il server wfs ha dei dati nativi nel EPSG:4326 e ammette di spedirli anche in UTM o in GaussBoaga.
Quando si vanno a invocare con le geotools. Se si dice alla geotools di invocarla in UTM. Lei apparentemente sembra accettare la richiesta, pero’ zitta zitta dietro le quinte non fa’ cosi’, ma bensi’,
Questa simpatica libreria (che steve jobs la strafulmini) manda la richiesta in EPSG:4326 e poi una volta ricevuti i dati ci pensa lei a cambiare i dati in UTM.

A parte l’ovvia maggore lentezza della operazione, ma vi è anche il fatto che il client che usa le librerie GeoTools, ovviamente, non ha i grigliati per fare un cambio di sistema di riferimento adeguatamente preciso.

Ho ritenuto di condividere questa scoperta per me sconvolgente,

La cosa non è peregrina perche’ questorischia di rovinare i dati che uno scarica.

Dico rovinare perche’ se uno se li scarica credendo che siano buoni, invece non sa’ che il suo client li ha rimaneggiati con algoritmi di scarsa afffidabilità e provocando verti vertice spostamenti anche di qualche metro.

A quesot punto venendo alla fdomanda.

Mi domandavo come facevano i veri clients che usano le librerie Geotools e con esse propongono un client WFS.

O sono dei semplicissimi e quindi stravecchissimi client WFS 1.0.0 che non supportando il cambio di SRS hanno la bse di appoggio burocratica per giustificare il perche’ fanno cosi’.

Oppure raccontano di fare una richiesta wfs 1.1.0 e poi pero’ agendo come detto sopra finiscono per fornire all’utente a sua insaputa dati a dir poco rimaneggiati e peggiorati.

Immagino che questa cosa non interessi gli utenti di gvSIG che per fortuna loro non usano le geotools, ma piuttosto gli utenti di Udig e di tutti gli altri sistemi che usano le librerie GeoTools (tra cui noi).

Cavolo !!

Un bel modo di iniziare il fine . :frowning:

Andrea Peri
. . . . . . . . .
qwerty àèìòù

Il giorno 04 maggio 2013 07:57, Andrea Peri <aperi2007@gmail.com> ha
scritto:

Salve,

per lavoro stiamo impiegando le librerie GeoTools per realizzare un client
WFS.

Con mi enorme sorpresa il driver WFS delle librerie GeoTools sembra che
non sappia effettuare chiamate WFS su sistemi di riferimentodifferenti da
quello nativo dei dati.

Per i non addetti ai lavoro spiego meglio:
se prendere a riferimento il WMS, sapete che quando si invoca una mappa
WMS si puo' passare al server wms il sisema di riferimento voluto tra
quelli disponibili per avere la mappa nel sistema di riferimento che si
sta' usando.
Il vantaggio di questa soluzione è sicuramente superiore rispetto alla
soluzione di far fare al client WMS il cambio del sistema di riferimento.
Infatti se chiamo un server wms in francia io non necessariamente posso
avere i grigliati francesi , mentre molto probabilmente il server wms
francese li avra' .
Ergo con questa soluzione è molto piu' facile avere dei cambi di SRS
precisi.

Ovviamente ci si aspetta che avvenga una cosa analoga anche con il WFS.
Mettendo da parte il wfs 1.0.0 che non prevedeva nelle specifiche di
supportare i cambi di sistema di riferimento, con il wfs 1.1.0 i cambi di
SRS sono divenuti possibili e quindi se si manda una richiesta di dati al
WFS 1.1.0 e gli si chiede di averli nel tal sistema di riferimento lui
provvedee a cambiare il sistema e a spedirli.
Tutto ovvio e sano.

Salve, avendo letto la sua mail nel gruppo abbiamo voluto fare alcune
verifiche sia sull'attuale funzionamento di GeoTools nel contesto da lei
segnalato, sia sul comportamento che nello stesso contesto hanno altri noti
software OpenSource, come OGR 1.9.2 e QGis 1.8.
Dalle nostre prove risulta che questi ultimi due adottino lo stesso
approccio da lei indicato: eseguono cioè la richiesta al server wfs nel
sistema di coordinate di default ed eventualmente riproiettano internamente
il risultato ricevuto.
Risulta invece che GeoTools, almeno nelle intenzioni, abbia optato per
eseguire la richiesta nel sistema di coordinate richiesto, se il server lo
supporta, e di eseguire la riproiezione autonomamente solo in caso
contrario. Purtroppo un paio di bug fanno sì che il comportamento
"desiderato" non funzioni in tutti i casi, tra cui probabilmente quello in
cui è incorso lei.
Tenendo conto di questo abbiamo aperto una segnalazione su JIRA:
http://jira.codehaus.org/browse/GEOT-4462 e stiamo testando una patch per i
due bug suddetti.

Ricordiamo che in caso di problemi o suggerimenti riguardo alla libreria
GeoTools, come avviene per altri software OpenSource (QGis, GEOS, ecc.)
esistono strumenti specifici a cui ci si può rivolgere, come le mailing
list.

https://lists.sourceforge.net/lists/listinfo/geotools-devel
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

In caso di bug è anche sempre opportuno aprire una segnalazione su JIRA:

http://jira.codehaus.org/browse/GEOT

Salvo che come dicevo il buon driver WFS delle librerie GeoTools non fa'
cosi'. :slight_smile:

Se ad esempio il server wfs ha dei dati nativi nel EPSG:4326 e ammette di
spedirli anche in UTM o in GaussBoaga.
Quando si vanno a invocare con le geotools. Se si dice alla geotools di
invocarla in UTM. Lei apparentemente sembra accettare la richiesta, pero'
zitta zitta dietro le quinte non fa' cosi', ma bensi',
Questa simpatica libreria (che steve jobs la strafulmini) manda la
richiesta in EPSG:4326 e poi una volta ricevuti i dati ci pensa lei a
cambiare i dati in UTM.

A parte l'ovvia maggore lentezza della operazione, ma vi è anche il fatto
che il client che usa le librerie GeoTools, ovviamente, non ha i grigliati
per fare un cambio di sistema di riferimento adeguatamente preciso.

In realtà, riflettendo sull'argomento siamo giunti alla conclusione che a
seconda dei casi possa essere vero quello che lei dice (è meglio che la
riproiezione la faccia il server wfs perchè è in possesso dei grigliati per
una riproiezione più precisa) oppure l'esatto contrario (il server
originale potrebbe eseguire una riproiezione meno precisa di quella che può
fare GeoTools: dopotutto sul server wfs potremmo avere meno controllo che
sul software che stiamo scrivendo usando GeoTools), quindi ci sembra
opportuno che si possa scegliere a chi demandare la riproiezione tramite un
parametro di connessione al server wfs, per cui proporremo anche questa
modifica.

Grazie.
Mauro Bartolomeoli

--

GeoServer training in Milan, 6th & 7th June 2013! Visit
http://geoserver.geo-solutions.it for more information.

Dott. Mauro Bartolomeoli
@mauro_bart
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------