<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">In mapserver ci sono due o tre modi
      differenti di generare un GML.<br>
      Uno di essi ti consente di personalizzarlo quansi in ogni
      dettaglio.<br>
      Ma quello che uso io e che Ã¨ quello su cui abbiamo fatto fare la
      perosnalizzazione di qgis Ã¨ il seguente:<br>
      <br>
      Definisci un output format con un elemento come questo qui:<br>
      <br>
      Â  OUTPUTFORMAT<br>
      Â Â Â  NAME "OGRGML"<br>
      Â Â Â  MIMETYPE "text/gml"   <<<---- attenzione a
      questo valore qui<br>
      Â Â Â  DRIVER "OGR/GML"<br>
      Â Â Â  FORMATOPTION "STORAGE=filesystem"<br>
      Â Â Â  FORMATOPTION "FORM=multipart"<br>
      Â  END<br>
      <br>
      (notare il settaggio FORM=multipart)<br>
      <br>
      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.<br>
      <br>
      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.<br>
      E comunque qgis lo riconosce . :)<br>
      Inoltre pensa gdal/ogr a generare l'xsd e a inserirlo nella
      risposta multipart.<br>
      <br>
      Poi aggiungi un tag di mimetype.<br>
      <br>
      Â Â Â Â Â  "wms_feature_info_mime_type"
      "text/gml,text/html,text/plain"<br>
      <br>
      fai caso che ci scrivo "text/gml"  ed e' il medesimo valore che
      ho inserito in mimetype.<br>
      <br>
      se definivo <br>
      <br>
      Â Â Â  MIMETYPE "text/pippo"   <<<---- attenzione a
      questo valore qui<br>
      <br>
      allora avrei dovuto scrivere<br>
      <br>
      Â Â Â Â Â  "wms_feature_info_mime_type"
      "text/pippo,text/html,text/plain"<br>
      <br>
      per chiedere al server wms di ritornare il GML devi mettere nella
      request , nel campo output_format il valore "text/pippo".<br>
      <br>
      QGIS Ã¨ settato per riconoscere sicuramente il codice "text/gml",
      e forse anche il codice "ogr/gml"<br>
      <br>
      Il settaggio <br>
      Â Â Â Â Â  "wms_feature_info_mime_type"
      "text/pippo,text/html,text/plain"<br>
      Lo puoi inserire in due posti:<br>
      <br>
      Se vuoi che tutti i layer forniscano il GML lo metti nella parte
      globale.<br>
      <br>
      Altrimenti lo inserisci nella sezione dello specifico layer  che
      deve fornire il GML.<br>
      <br>
      Ovviamente ricordati di attivare la risposta GetFeatureInfo.<br>
      con <br>
      "wms_enable_request" "GetFeatureInfo"<br>
      o con l'equivalente<br>
      ows_enable_request<br>
      <br>
      sono legati a costruire n template<br>
      Saluti,<br>
      <br>
      Andrea.<br>
      <br>
      On 28/05/2013 11:40, Pasquale Di Donato wrote:<br>
    </div>
    <blockquote
cite="mid:CAJA5qQJ-7HXwKzteAKX8=wfWUzuoa6Cvou-JfjJv1JiihBrrag@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>@AndreaPeri grazie mille per il tuo contributo.<br>
            Ascolta ho visto tuoi post in vari forum a proposito di una
            questione che mi sto ponendo attualmente anche io.<br>
          </div>
          Come faccio a tirare fuori da MapServer con una richiesta
          GetFeatureInfo un GML valido rispetto ad uno specifico
          Application Schema?<br>
          <br>
        </div>
        Grazie ancora,<br>
        Pasquale<br>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">Il giorno 24 maggio 2013 20:22,
          aperi2007 <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:aperi2007@gmail.com" target="_blank">aperi2007@gmail.com</a>></span>
          ha scritto:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div text="#000000" bgcolor="#FFFFFF">
              <div class="im">
                <div>On 24/05/2013 17:16, Pasquale Di Donato wrote:<br>
                </div>
                <blockquote type="cite">
                  <div dir="ltr">
                    <div>
                      <div>Non credo alle mie orecchie.<br>
                        <br>
                      </div>
                      Non avevo mai intuito questa possibilità leggendo
                      la specifica WMS, </div>
                  </div>
                </blockquote>
                <br>
                <br>
              </div>
              La specifica 1.3.0 prevede che la risposta a una richesta
              (facoltativa) GetFeatureInfo possa avere piu' formati.<br>
              Non elenca quali formati devono essere supportait.<br>
              Â 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.<br>
              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.<br>
              <br>
              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.<br>
              Questo Ã¨ la risposta presente a m' di esempio nelle
              specifiche wms 1.3.0<br>
              <br>
              <GetFeatureInfo><br>
              <Format>text/xml</Format><br>
              <Format>text/plain</Format><br>
              <Format>text/html</Format><br>
              <br>
              Tieni presente che non Ã¨ neanche scontatoche ci sia ,
              perche' la specifica wms 1.3.0 indica la capacita' di
              rispondere a GetFeatureInfo come facoltativa.<br>
              Per cui il server potrebbe non rispondere proprio a
              niente.<br>
              <br>
              Comunque in questo caso teorico tratto dalle specifiche
              wms 1.3.0 il server supprota la richiesta GetFeatureInfo e
              risponde con 3 possibili formati:<br>
              Â text/plain, text/html e text/xml.
              <div class="im"><br>
                <br>
                <br>
                <blockquote type="cite">
                  <div dir="ltr">
                    <div>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.<br>
                    </div>
                    <div>Comuqnue, la geometria di cosa viene
                      restituita? Della feature incontrata nel punto XY?<br>
                    </div>
                  </div>
                </blockquote>
                <br>
              </div>
              Trae in inganno il fatto che il sevrer wms nella richiesta
              getfeatureinfo chiede il bbox.<br>
              In realt'a ritorna tutto cio' che sta' nel punto che hai
              clicckto.<br>
              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).<br>
              <br>
              Nel punto clicckat il server puo' trovare una geometria o
              ce ne puo' trovare N sovrapposte.<br>
              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.
              <div class="im"><br>
                <br>
                <br>
                <blockquote type="cite">
                  <div dir="ltr">
                    <div>Qualcuno mi ha detto che con una GetFeatureInfo
                      possono ottenere tutte le feature (geometria +
                      attributi) in un BBOX.<br>
                      <br>
                    </div>
                  </div>
                </blockquote>
                <br>
              </div>
              come dicevo hanno equivocato il significato del bbox.
              <div class="im"><br>
                <br>
                <blockquote type="cite">
                  <div dir="ltr">
                    <div>Altra domanda: la possibilitä di ottenere la
                      geometria Ã¨ resa possibile dalla specifica OGC o
                      Ã¨ da considerarsi una funzionalità
                      veondor-specific?<br>
                      <br>
                    </div>
                  </div>
                </blockquote>
                <br>
              </div>
              come dicevo la specifica dice che se supporti la
              getFeatureInfo devi avere ovviamente un formato.<br>
              <br>
              Qui entra in ballo un disguido (come tanti ce ne sono )
              nelle specifiche ogc.<br>
              La getfeatureinfo deve ritornare le feature nei loro
              attributi.<br>
              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.<br>
              A che vedo io salvo qualche vecchia verisone di server wms
              commerciale, credo che tutti ritornino la geometria.<br>
              Se la risposta Ã¨ text/plain la geometria sara una lista
              di vertici in un testo piatto (un wkt ad esempio).<br>
              se Ã¨ unn GML allora la geometria ha il suo spazio nella
              definizione del GML.<br>
              <br>
              Tieni presente che quando si parl di formati ci puo' stare
              di tutto.<br>
              In mapserver ad esempio.<br>
              tr ai formati possibili Ã¨ presente anche lo zip con
              dentro uno shapefile.<br>
              E in tal caso (ho fatto delle prove proprio qualche
              settimana fa') se lo configuri e lo invochi
              opportunamente,<br>
              ti ritorna uno zip con dentro uno shapefile con dentro
              tutte le geometrie incontrate in quel punto.<br>
              <br>
              Nei modi in cui questa risposta si sviluppa poi ci possono
              essere differenze sostanziali.<br>
              Tra le piu' problematiche vi Ã¨ sicuramente la risposta in
              GML.<br>
              perche' nel gml Ã¨ presente l'header con la parte di
              validazione.<br>
              <br>
              Li' purtroppo le strade si dividono in tanti sentierini.<br>
              Io ne conosco due distinte:<br>
              quella di Geoserver e quella di Mapserver.<br>
              <br>
              Geoserver ha al suo interno un server wfs e quindi dispone
              delle chiamate DescribeFeatureType.<br>
              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.<br>
              <br>
              Mapserver , in cui il compoenente WFS Ã¨ assente o puo'
              essere assente, non puo' fare una chiamata a un
              describefeaturetype.<br>
              D'altronde la specifica GML non prevede altra soluzione
              che la messa a disposizione di un xsd da reperire a parte.<br>
              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.<br>
              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.<br>
              Un approccio tencicamente pregevole.<br>
              <br>
              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.<br>
              <br>
              come RT puntiamo molto su questa capacita' di un server
              wms di veicolare le geometrie .<br>
              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.<br>
              <br>
              <br>
              <br>
              <blockquote type="cite">
                <div>
                  <div class="h5">
                    <div class="gmail_extra"> <br>
                      <br>
                      <div class="gmail_quote">Il giorno 24 maggio 2013
                        17:09, Andrea Aime <span dir="ltr"><<a
                            moz-do-not-send="true"
                            href="mailto:andrea.aime@geo-solutions.it"
                            target="_blank">andrea.aime@geo-solutions.it</a>></span>
                        ha scritto:<br>
                        <blockquote class="gmail_quote" style="margin:0
                          0 0 .8ex;border-left:1px #ccc
                          solid;padding-left:1ex">
                          <div dir="ltr">
                            <div>2013/5/24 Pasquale Di Donato <span
                                dir="ltr"><<a moz-do-not-send="true"
href="mailto:pasquale.didonato@gmail.com" target="_blank">pasquale.didonato@gmail.com</a>></span><br>
                            </div>
                            <div class="gmail_extra">
                              <div class="gmail_quote">
                                <div>
                                  <blockquote class="gmail_quote"
                                    style="margin:0 0 0
                                    .8ex;border-left:1px #ccc
                                    solid;padding-left:1ex">
                                    <div dir="ltr">
                                      <div>E' possibile ottenere con un
                                        richiesta WMS GetFeatureInfo la
                                        geometria di una feature oltre
                                        agli attributi?<br>
                                      </div>
                                    </div>
                                  </blockquote>
                                  <div><br>
                                  </div>
                                </div>
                                <div>Se chiedi in GML GeoServer
                                  restituisce la geometria di default
                                  (anche se si può filtrare quali campi
                                  si ottengono</div>
                                <div>aggiungendo
                                  &propertyName=p1,p1,p3 alla
                                  richiesta).</div>
                                <div><br>
                                </div>
                                <div>In generale, dipende dallo
                                  specifico server WMS, la specifica non
                                  dice che cosa ritornare</div>
                                <div><br>
                                </div>
                                <div> Ciao</div>
                                <div>Andrea</div>
                                <div> </div>
                              </div>
                              <div><br>
                              </div>
                              -- <br>
                              <div dir="ltr">
                                <div>==</div>
                                <div>GeoServer training in Milan, 6th
                                  & 7th June 2013! Â Visit <a
                                    moz-do-not-send="true"
                                    href="http://geoserver.geo-solutions.it/"
                                    style="color:rgb(17,85,204)"
                                    target="_blank">http://geoserver.geo-solutions.it</a> for


                                  more information.<br>
                                  ==<br>
                                </div>
                                <div><br>
                                </div>
                                <div>Ing. Andrea Aime </div>
                                <div>@geowolf</div>
                                <div>Technical Lead</div>
                                <div><br>
                                </div>
                                <div>GeoSolutions S.A.S.</div>
                                <div>Via Poggio alle Viti 1187</div>
                                <div>55054 Â Massarosa (LU)</div>
                                <div>Italy</div>
                                <div>phone: <a moz-do-not-send="true"
                                    href="tel:%2B39%200584%20962313"
                                    value="+390584962313"
                                    target="_blank">+39 0584 962313</a></div>
                                <div>fax: <a moz-do-not-send="true"
                                    href="tel:%2B39%200584%201660272"
                                    value="+3905841660272"
                                    target="_blank">+39 0584 1660272</a></div>
                                <div>mob: <a moz-do-not-send="true"
                                    href="tel:%2B39%20%C2%A0339%208844549"
                                    value="+393398844549"
                                    target="_blank">+39 Â 339 8844549</a></div>
                                <div><br>
                                </div>
                                <div><a moz-do-not-send="true"
                                    href="http://www.geo-solutions.it"
                                    target="_blank">http://www.geo-solutions.it</a></div>
                                <div><a moz-do-not-send="true"
                                    href="http://twitter.com/geosolutions_it"
                                    target="_blank">http://twitter.com/geosolutions_it</a></div>
                                <div><br>
                                </div>
                                <div>-------------------------------------------------------</div>
                              </div>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                      <br>
                      <br clear="all">
                      <br>
                      -- <br>
                      Pasquale Di Donato<br>
                      web: Â <a moz-do-not-send="true"
                        href="http://www.padido.eu" target="_blank">www.padido.eu</a><br>
                      chat: <a moz-do-not-send="true"
                        href="mailto:padido@jabber.org" target="_blank">padido@jabber.org</a>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                  </div>
                </div>
                <div class="im">
                  <pre>_______________________________________________
<a moz-do-not-send="true" href="mailto:Gfoss@lists.gfoss.it" target="_blank">Gfoss@lists.gfoss.it</a>
<a moz-do-not-send="true" href="http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss" target="_blank">http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss</a>
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</pre>
                </div>
              </blockquote>
              <br>
            </div>
            <br>
            _______________________________________________<br>
            <a moz-do-not-send="true" href="mailto:Gfoss@lists.gfoss.it">Gfoss@lists.gfoss.it</a><br>
            <a moz-do-not-send="true"
              href="http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss"
              target="_blank">http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss</a><br>
            Questa e' una lista di discussione pubblica aperta a tutti.<br>
            I messaggi di questa lista non hanno relazione diretta con
            le posizioni dell'Associazione GFOSS.it.<br>
            638 iscritti al 28.2.2013<br>
          </blockquote>
        </div>
        <br>
        <br clear="all">
        <br>
        -- <br>
        Pasquale Di Donato<br>
        web: Â <a moz-do-not-send="true" href="http://www.padido.eu"
          target="_blank">www.padido.eu</a><br>
        chat: <a moz-do-not-send="true" href="mailto:padido@jabber.org"
          target="_blank">padido@jabber.org</a> </div>
    </blockquote>
    <br>
  </body>
</html>