[Gfoss] Ottenere geometria con WMS GetFeatureInfo?

Pasquale Di Donato pasquale.didonato a gmail.com
Mar 28 Maggio 2013 12:07:43 CEST


> Â  OUTPUTFORMAT
> Â Â Â  NAME "OGRGML"
> Â Â Â  MIMETYPE "text/gml"Â Â  <<<---- attenzione a questo valore qui
> Â Â Â  DRIVER "OGR/GML"
> Â Â Â  FORMATOPTION "STORAGE=filesystem"
> Â Â Â  FORMATOPTION "FORM=multipart"
> Â  END
>

Si questo é chiaro.


>
> La sezione sovrastante dice a mapserver che a fronte di un formato
> richiesto di tipo "text/gml" lui deve fornire una risposta GML facendola
> generare a gdal/ogr.
>
> E' il tipo di GML migliore. E' il medesimo generato da Geoserver e usa i
> costrutti del GML 3.1.1. per cui è molto buono.
> E comunque qgis lo riconosce . :)
> Inoltre pensa gdal/ogr a generare l'xsd e a inserirlo nella risposta
> multipart.
>
>
Qui un po' meno. Sulla base di cosa OGR genera lo schema? Immagino dalla
struttura del dato di partenza.
Ma immagina di avere dei dati in PostGIS. Questi dati hanno uno schema
proprio, diciamo un GML Application Schema.
La struttura dei dati nella banca dati sarà molto probabilmente molto
lontana dallo schema GML.
Quindi se faccio un ogr2ogr da PostGIS a GML, l'xsd generato rifletterà,
suppongo, la struttura PostGIS e non quella dello schema GML.
Ad esempio GeoServer ha attualmente delle funziolitä di schema mapping che
ti permettono di configurare l'output GML in conformità ad uno schema
specifico.
Mapserver ne è sprovvisto al momento... credo

Non so se sono stao chiaro.

Ciao e grazie per la disponibilità

Pasquale










> Poi aggiungi un tag di mimetype.
>
> Â Â Â Â Â  "wms_feature_info_mime_type" "text/gml,text/html,text/plain"
>
> fai caso che ci scrivo "text/gml"Â  ed e' il medesimo valore che ho
> inserito in mimetype.
>
> se definivo
>
> Â Â Â  MIMETYPE "text/pippo"Â Â  <<<---- attenzione a questo valore qui
>
> allora avrei dovuto scrivere
>
> Â Â Â Â Â  "wms_feature_info_mime_type" "text/pippo,text/html,text/plain"
>
> per chiedere al server wms di ritornare il GML devi mettere nella request
> , nel campo output_format il valore "text/pippo".
>
> QGIS è settato per riconoscere sicuramente il codice "text/gml", e forse
> anche il codice "ogr/gml"
>
> Il settaggio
> Â Â Â Â Â  "wms_feature_info_mime_type" "text/pippo,text/html,text/plain"
> Lo puoi inserire in due posti:
>
> Se vuoi che tutti i layer forniscano il GML lo metti nella parte globale.
>
> Altrimenti lo inserisci nella sezione dello specifico layer  che deve
> fornire il GML.
>
> Ovviamente ricordati di attivare la risposta GetFeatureInfo.
> con
> "wms_enable_request" "GetFeatureInfo"
> o con l'equivalente
> ows_enable_request
>
> sono legati a costruire n template
> Saluti,
>
> Andrea.
>
>
> On 28/05/2013 11:40, Pasquale Di Donato wrote:
>
>  @AndreaPeri grazie mille per il tuo contributo.
> Ascolta ho visto tuoi post in vari forum a proposito di una questione che
> mi sto ponendo attualmente anche io.
>  Come faccio a tirare fuori da MapServer con una richiesta GetFeatureInfo
> un GML valido rispetto ad uno specifico Application Schema?
>
>  Grazie ancora,
> Pasquale
>
>
> Il giorno 24 maggio 2013 20:22, aperi2007 <aperi2007 a gmail.com> ha
> scritto:
>
>>  On 24/05/2013 17:16, Pasquale Di Donato wrote:
>>
>>  Non credo alle mie orecchie.
>>
>>  Non avevo mai intuito questa possibilità leggendo la specifica WMS,
>>
>>
>>
>>  La specifica 1.3.0 prevede che la risposta a una richesta (facoltativa)
>> GetFeatureInfo possa avere piu' formati.
>> Non elenca quali formati devono essere supportait.
>> Â A memoria mi pare di ricordare che indichi come obbligatoria una
>> risposta text/plain e la text/html. Pero' ho controllato le specifiche e
>> non ho trovato traccia di questo dettagio.
>> Per cui direi che è obbligatorio che il server abbia almeno un formato
>> (il che ' tautologico) di risposta se conosc la richiesta GetFeatureInfo,
>> ma non una specifica.
>>
>>
>> Il client wms deve interrogare il server wms tramite il getcapabilities e
>> nella sezione dedicata a GetFeatureInfo torva la risposta a quali formati
>> quel server support.
>> Questo è la risposta presente a m' di esempio nelle specifiche wms 1.3.0
>>
>>
>> <GetFeatureInfo>
>> <Format>text/xml</Format>
>> <Format>text/plain</Format>
>> <Format>text/html</Format>
>>
>> Tieni presente che non è neanche scontatoche ci sia , perche' la
>> specifica wms 1.3.0 indica la capacita' di rispondere a GetFeatureInfo come
>> facoltativa.
>>
>> Per cui il server potrebbe non rispondere proprio a niente.
>>
>> Comunque in questo caso teorico tratto dalle specifiche wms 1.3.0 il
>> server supprota la richiesta GetFeatureInfo e risponde con 3 possibili
>> formati:
>> Â text/plain, text/html e text/xml.
>>
>>
>>
>>  dove è scritto che il server restituisce le info sulla feature
>> incontrata nel punto XY specificato nella richiesta, che ho sempre inteso
>> come attributi e non come geometria.
>>  Comuqnue, la geometria di cosa viene restituita? Della feature
>> incontrata nel punto XY?
>>
>>
>>  Trae in inganno il fatto che il sevrer wms nella richiesta
>> getfeatureinfo chiede il bbox.
>> In realt'a ritorna tutto cio' che sta' nel punto che hai clicckto.
>> Infatti devi passargli anche le coordinate immagine (in pixel) del punto
>> clicckato coordinate immagine riferite al bbox geografico che indichi e
>> alla risoluzione con cui  lavori (qui gioca il default e un eventuale
>> parametro che aumenta o abbassa la risoluzione).
>>
>>
>> Nel punto clicckat il server puo' trovare una geometria o ce ne puo'
>> trovare N sovrapposte.
>> In questo caso ti ritornera' tutte quante o una sola o una parte di esse,
>> in base al valore che gli hai dato nel parametro "featurecount". Il default
>> è una , la top.
>>
>>
>>
>>  Qualcuno mi ha detto che con una GetFeatureInfo possono ottenere tutte
>> le feature (geometria + attributi) in un BBOX.
>>
>>
>>  come dicevo hanno equivocato il significato del bbox.
>>
>>
>>  Altra domanda: la possibilitä di ottenere la geometria è resa
>> possibile dalla specifica OGC o è da considerarsi una funzionalitÃ
>> veondor-specific?
>>
>>
>>  come dicevo la specifica dice che se supporti la getFeatureInfo devi
>> avere ovviamente un formato.
>>
>> Qui entra in ballo un disguido (come tanti ce ne sono ) nelle specifiche
>> ogc.
>> La getfeatureinfo deve ritornare le feature nei loro attributi.
>> Se si considera la geometria un attributo allora la ritorna , se invece
>> il server wms in questione considera che la geometria non è un attributo,
>> ma un qualcosa di altro, potrebbe non ritornarla.
>>
>> A che vedo io salvo qualche vecchia verisone di server wms commerciale,
>> credo che tutti ritornino la geometria.
>> Se la risposta è text/plain la geometria sara una lista di vertici in un
>> testo piatto (un wkt ad esempio).
>> se è unn GML allora la geometria ha il suo spazio nella definizione del
>> GML.
>>
>>
>> Tieni presente che quando si parl di formati ci puo' stare di tutto.
>> In mapserver ad esempio.
>> tr ai formati possibili è presente anche lo zip con dentro uno shapefile.
>>
>> E in tal caso (ho fatto delle prove proprio qualche settimana fa') se lo
>> configuri e lo invochi opportunamente,
>> ti ritorna uno zip con dentro uno shapefile con dentro tutte le geometrie
>> incontrate in quel punto.
>>
>> Nei modi in cui questa risposta si sviluppa poi ci possono essere
>> differenze sostanziali.
>> Tra le piu' problematiche vi è sicuramente la risposta in GML.
>> perche' nel gml è presente l'header con la parte di validazione.
>>
>>
>> Li' purtroppo le strade si dividono in tanti sentierini.
>> Io ne conosco due distinte:
>> quella di Geoserver e quella di Mapserver.
>>
>> Geoserver ha al suo interno un server wfs e quindi dispone delle chiamate
>> DescribeFeatureType.
>> Per questo se fai una chiamata GetFeatureInfo al componente wms di
>> geoserver lui ti risponde un GML , in cui come url per raggingere lo schema
>> xsd di validazione del gml stesso ti ci mette una invocazione
>> DescribeFeatureType al suo componente WFS.
>>
>> Mapserver , in cui il compoenente WFS è assente o puo' essere assente,
>> non puo' fare una chiamata a un describefeaturetype.
>>
>> D'altronde la specifica GML non prevede altra soluzione che la messa a
>> disposizione di un xsd da reperire a parte.
>> Per questo nel Mapserver il GML viene ritornato con una risposta http
>> multipart. Si tratta di una risposta http in cui ci sono piu' pacchetti che
>> arrivano sequenzialmente nella medesima risposta.
>> Nella risposta multipart di mapserver, prima ti manda lo schema xsd
>> relativo e poi ti invia il GML su cui tale schema xsd si applica.
>> Un approccio tencicamente pregevole.
>>
>> La risposta multipart di mapserver non puo' non piacermi. :) 18 anni fa'
>> usai proprio la risposta http multipart per realizzare una CGI che
>> permetteva animazioni in jpeg su un browser netscape 1.0.
>>
>> come RT puntiamo molto su questa capacita' di un server wms di veicolare
>> le geometrie .
>> Per questo abbiamo finanziato la capacita' su qgis di intendere le
>> geometrie ritornate da mapserver in multipart, nonche' nel nuovo sistema
>> Tolomeo che ci sta realizzando il Comune di Prato e che grazie a questa
>> capacita' di accedere alle geometrie sul wms senza stuzzicare il WFS ci ha
>> permesso di realizzare dei webgis distributii.
>>
>>
>>
>>
>>
>> Il giorno 24 maggio 2013 17:09, Andrea Aime <andrea.aime a geo-solutions.it
>> > ha scritto:
>>
>>>  2013/5/24 Pasquale Di Donato <pasquale.didonato a gmail.com>
>>>
>>>>  E' possibile ottenere con un richiesta WMS GetFeatureInfo la
>>>> geometria di una feature oltre agli attributi?
>>>>
>>>
>>>  Se chiedi in GML GeoServer restituisce la geometria di default (anche
>>> se si può filtrare quali campi si ottengono
>>> aggiungendo &propertyName=p1,p1,p3 alla richiesta).
>>>
>>>  In generale, dipende dallo specifico server WMS, la specifica non dice
>>> che cosa ritornare
>>>
>>>  Ciao
>>> Andrea
>>> Â
>>>
>>>  --
>>>  ==
>>> GeoServer training in Milan, 6th & 7th June 2013! Â VisitÂ
>>> http://geoserver.geo-solutions.it for more information.
>>> ==
>>>
>>>  Ing. Andrea AimeÂ
>>> @geowolf
>>> Technical Lead
>>>
>>>  GeoSolutions S.A.S.
>>> Via Poggio alle Viti 1187
>>> 55054 Â Massarosa (LU)
>>> Italy
>>> phone: +39 0584 962313
>>> fax: +39 0584 1660272
>>> mob: +39 Â 339 8844549 <%2B39%20%C2%A0339%208844549>
>>>
>>>  http://www.geo-solutions.it
>>> http://twitter.com/geosolutions_it
>>>
>>>  -------------------------------------------------------
>>>
>>
>>
>>
>> --
>> Pasquale Di Donato
>> web: Â www.padido.eu
>> chat: padido a jabber.org
>>
>>
>>   _______________________________________________Gfoss a lists.gfoss.ithttp://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
>>
>>
>>
>> _______________________________________________
>> Gfoss a lists.gfoss.it
>> 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
>>
>
>
>
> --
> Pasquale Di Donato
> web: Â www.padido.eu
> chat: padido a jabber.org
>
>
>


-- 
Pasquale Di Donato
web:  www.padido.eu
chat: padido a jabber.org
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20130528/a86734c1/attachment-0001.html>


Maggiori informazioni sulla lista Gfoss