Librerie GeoTools e cambio SRS nel WFS

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Librerie GeoTools e cambio SRS nel WFS

Andrea Peri
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'. :)

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 . :(

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

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
638 iscritti al 28.2.2013
Reply | Threaded
Open this post in threaded view
|

Re: Librerie GeoTools e cambio SRS nel WFS

Mauro Bartolomeoli



Il giorno 04 maggio 2013 07:57, Andrea Peri <[hidden email]> 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.


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





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

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: <a href="tel:%2B39%200584%20962313" value="+390584962313" target="_blank">+39 0584 962313
fax:     <a href="tel:%2B39%200584%201660272" value="+3905841660272" target="_blank">+39 0584 1660272


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

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
638 iscritti al 28.2.2013