Simone Giannecchini ha scritto:
On 6/21/07, Maurizio Napolitano <napo@itc.it> wrote:
Ho provato con udig e con gaia2 e non ho visto problemi particolari.
Naturalmente il retrieval è lento, anzi sembra lento visto che stiamo
facendo streaming di un botto di xml non compresso su http. Sarebbe
bello sapere che tipo di sorgenti sono, se postgis o shapefiles.
Il retrieval è troppo lento... e lo è perché non hanno attivato nessuna
forma di compressione del GML... ma dai!
Per farlo, bisogna solo dire ad Apache (visto che lo usano come proxy)
che il content type application/gml2 è comprimibile, così si scarica molto meno.
Per dare qualche idea su quanto si risparmia, e allo stesso tempo dare
qualche esempio di scaricamento dati da linea di comando:
Comuni, tutto il layer, tutti gli attributi, GML2 non compresso:
C:\Temp\test>wget "http://webgis.regione.sardegna.it/geoserver/wfs?service=WFS&request=GetFeature&typeName=ras:IDT_AA01G_COMUNI"
--18:18:17-- http://webgis.regione.sardegna.it/geoserver/wfs?service=WFS&request=GetFeature&typeName=ras:IDT_AA01G_COMUNI
=> `wfs@service=WFS&request=GetFeature&typeName=ras%3AIDT_AA01G_COMUNI'
Resolving webgis.regione.sardegna.it... 82.85.18.147
Connecting to webgis.regione.sardegna.it[82.85.18.147]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/xml]
[ <=> ] 10,085,300 157.93K/s
18:19:21 (162.88 KB/s) - `wfs@service=WFS&request=GetFeature&typeName=ras%3AIDT_AA01G_COMUNI' saved [10085300]
Uag! 10MB! Vediamo invece se si fa la richiesta con formato GML2-GZIP (in cui si forza una compressione GZIP):
Comuni, GML2, compresso (in formato gzip):
C:\Temp\test>wget "http://webgis.regione.sardegna.it/geoserver/wfs?service=WFS&request=GetFeature&typeName=ras:IDT_AA01G_COMUNI&outputFormat=GML2-GZIP"
--18:20:50-- http://webgis.regione.sardegna.it/geoserver/wfs?service=WFS&request=GetFeature&typeName=ras:IDT_AA01G_COMUNI&outputFormat=GML2-GZIP
=> `wfs@service=WFS&request=GetFeature&typeName=ras%3AIDT_AA01G_COMUNI&outputFormat=GML2-GZIP'
Resolving webgis.regione.sardegna.it... 82.85.18.147
Connecting to webgis.regione.sardegna.it[82.85.18.147]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/gzip]
[ <=> ] 2,901,615 164.19K/s
18:21:10 (162.21 KB/s) - `wfs@service=WFS&request=GetFeature&typeName=ras%3AIDT_AA01G_COMUNI&outputFormat=GML2-GZIP' saved [2901615]
Così va già molto meglio, "solo" 3MB invece che 10...
Se poi si vuole lo shapefile zippato:
C:\Temp\test>wget "http://webgis.regione.sardegna.it/geoserver/wfs?service=WFS&request=GetFeature&typeName=ras:IDT_AA01G_COMUNI&outputFormat=SHAPE-ZIP"
--18:22:15-- http://webgis.regione.sardegna.it/geoserver/wfs?service=WFS&request=GetFeature&typeName=ras:IDT_AA01G_COMUNI&outputFormat=SHAPE-ZIP
=> `wfs@service=WFS&request=GetFeature&typeName=ras%3AIDT_AA01G_COMUNI&outputFormat=SHAPE-ZIP'
Resolving webgis.regione.sardegna.it... 82.85.18.147
Connecting to webgis.regione.sardegna.it[82.85.18.147]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
[ <=> ] 2,473,345 167.82K/s
18:22:33 (163.06 KB/s) - `wfs@service=WFS&request=GetFeature&typeName=ras%3AIDT_AA01G_COMUNI&outputFormat=SHAPE-ZIP' saved [2473345]
Solo 2.4MB, e in un formato direttamente fruibile da QGis senza dover caricare ulteriormente la rete. Cosa volete di più? 
Se volete filtrare su un bbox specifico, basta dare il parametro BBOX=minlon,minlat,maxlon,maxlat
Se volete sbizzarrirvi con i filtri, vi consiglio di dare una occhiata alla describeFeature per sapere quali sono gli attributi (e il loro tipo) e poi vi potete fare degli interessanti filtri usando il linguaggio CQL, una estensione al protocollo WFS fuori dallo standard, ma col vantaggio che il filtro è una espressione leggibile (
per qualche esempio, guardate qui: http://docs.codehaus.org/display/GEOSDOC/Common+Query+Language+(CQL)+Tutorial+(unfinished))
Ciao
Andrea