[Gfoss] R: problema proiezioni postgis+mapserver

Francesco Massa massa80 a gmail.com
Sab 13 Set 2008 13:11:06 CEST


Ciao, provo a dire la mia.

La chiamata WMS e quella CGI sono cose abbastanza differenti per mia
esperienza il fatto che la chiamata WMS non funzioni è quasi sempre legata a
due cose:
1) la definizione dei layer  come WMS all'interno del filemap che poi
richiami
2) la chiamata al servizio (come già sottolineato da Andrea)

Per verificare che il WMS funzioni e sia ben definito nel mapfile, sul
browser dovresti invocare il servizio con una stringa simile a questa:
http://localhost:81/cgi-bin/ <goog_1221302341386>
mapserv.exe?map=/ms4w/Apache/ <goog_1221302341386>
htdocs/lombardia/moreLayers. <goog_1221302341386>
map&SERVICE=WMS&VERSION=1.1.1&REQUEST=getmap&BBOX=1554750.736259,4678325.520000,1771722.760000,4924791.900000&SRS=EPSG:3003<http://localhost:81/cgi-bin/mapserv.exe?map=/ms4w/Apache/htdocs/lombardia/moreLayers.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=getmap&BBOX=1554750.736259,4678325.520000,1771722.760000,4924791.900000&SRS=EPSG:3003>
(prova eventualmente ad aggiungere anche il valore dell'extent (BBOX) e del
srs (con EPSG scritto maiuscolo mi raccomando) nel caso avessi problemi
sulla chiamata)

Per trovare eventuali errori nella definizione dei layer
http://localhost:81/cgi-bin/ <goog_1221302341393>
mapserv.exe?map=/ms4w/Apache/ <goog_1221302341393>
htdocs/lombardia/moreLayers. <goog_1221302341393>
map&SERVICE=WMS&VERSION=1.1.1&REQUEST=getcapabilities&BBOX=1554750.736259,4678325.520000,1771722.760000,4924791.900000&SRS=EPSG:3003<http://localhost:81/cgi-bin/mapserv.exe?map=/ms4w/Apache/htdocs/lombardia/moreLayers.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=getcapabilities&BBOX=1554750.736259,4678325.520000,1771722.760000,4924791.900000&SRS=EPSG:3003>

per quel che riguarda la chiamata cgi sul browser è corretto quello che
riporti direi
http://localhost:81/cgi-bin/mapserv.exe?map=/ms4w/Apache/htdocs/lombardia/elettrodottiPostgis.map&layer=elettrodotti&mode=map
"
Questo però ti aiuta poco per quel che riguarda il WMS in quanto questa
chiamata richiama il layer in modalità CGI e non WMS.

In sintesi ti consiglio di verificare  che la getcapabilities non ti
restituisca errori e che la chiamata al servizio funzioni sul browser
QGIS aggiunge di default i parametri che ti abbiamo segnalato per cui nella
chiamata al servizio puoi ometterli dichiarando semplicemente il nome del
file.map (però ti servono sul browser per capire se il servizio funziona)

>Resta il mistero di come mai nel primo caso senza i parametri
>obbligatori il browser ti visualizzava la mappa.
>Puo' anche darsi che mapserver sia cosi' "smart" da non richiedere i
>parametri obbligatori, ma sarebbe un comportamento non standard e
>questo rischia di generare confusione su come deve essere fatta una
>chiamata wms.
Faccio un'ipotesi per risolvere questo "mistero":
Dentro il tuo mapfile (moreLayers.map?) sono contenuti dei layer
visualizzabili con una semplice chiamata CGI, non definiti quindi come layer
WMS?
In quel caso giustamente  il browser li deve visualizzare. Sbaglio?

Saluti, Francesco Massa


> ------------------------------
>
> Message: 7
> Date: Fri, 12 Sep 2008 20:59:03 +0200
> From: "Andrea Peri" <peri.rtoscana a gmail.com>
> Subject: [Gfoss] R: problema proiezioni postgis+mapserver
> To: gfoss a faunalia.it
> Message-ID:
>        <86ee9eaa0809121159m50275d34nb3d1c20956cb2dc8 a mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
>
> >ho fatto dei test creando un servizio wms appoggiato a degli shp, e da
> qgis
> >faccio la chiamata al wms in questo modo
> >
> http://localhost:81/cgi-bin/mapserv.exe?map=/ms4w/Apache/htdocs/lombardia/moreLayers.map
> >e in questo caso vedo i layer su qgis!
> >quindi anche questa è sbagliata?
>
> Il discorso non e' semplice, e va al di la' di quello che vorrei
> discutere in questo thread,
> ma poiche' non posso ne rispondere "si", ne "no", devo cercare di
> spiegarmi:
>
> Quello che determina una chiamata wms corretta sono i parametri che si
> impone nella chiamata.
> Eventuali parametri che esulano da quelli previsti dallo standard sono
> peculiarita' del server specifico,
> ma che non determinano la correttezza della chiamata (dal punto di
> vista delle specifiche wms).
>
> in una chiamata wms ci devono essere dei parametri, in loro assenza il
> server wms non deve rispondere.
>
> alcuni dei parametri sono questi:
>
> ...?BBOX=1554750.736259,4678325.520000,1771722.760000,4924791.900000&
> WIDTH=400&HEIGHT=300&SRS=EPSG:3003&Layers=_idreg,idprov,idcomuni&
> version=1.1.0&service=WMS&FORMAT=JPEG&TRANSPARENT=TRUE& request=getmap
>
> naturalmente non tutti sono obbligatori (o meglio se non li indichi
> prende il default)
>
> Ma alcuni sono obbligatori.
> Gli obbligatori sono:
>
> request=getmap
> service=WMS
>
> se questi mancano il server wms non deve rispondere una mappa ! Se in
> questa situazione risponde con una mappa adotta un comportamento che
> non e' standard.
>
> Ora bisogna chiarirsi, perche' nella prima email avevi detto
>
> >se
> >richedo la mappa da browser con
> >"
> http://localhost:81/cgi-bin/mapserv.exe?map=/ms4w/Apache/htdocs/lombardia/elettrodottiPostgis.map&layer=elettrodotti&mode=map
> "
> >mi ritorna la mappa, se invece accedo al servizio wms da qgis, ottengo un
> >layer ke "sembra vuoto".
>
> E questo era strano perche' nella chiamata con il browser non avevi
> messo i due parametri obbligatori, ma la mappa ti era arrivata.
> Mentre su qgis non ti arrivava.
> Questo appariva quasi come se la chiamata i questione rispondesse a
> una specificita' di MapServer, ma che fosse fuori standard wms.
>
> Nella tua seconda email invece spieghi che:
>
> >ho fatto dei test creando un servizio wms appoggiato a degli shp, e da
> qgis
> >faccio la chiamata al wms in questo modo
> >
> http://localhost:81/cgi-bin/mapserv.exe?map=/ms4w/Apache/htdocs/lombardia/moreLayers.map
> >e in questo caso vedo i layer su qgis!
>
> se sia o no una chiamata corretta di un server wms non posso capirlo
> da quello che mostri.
>
> L'unico modo per saperlo e' provare a chiamarla da browser.
> La chiami tale e quale e ti dve ritornare un messaggio di pagina vuota
> o di errore.
> poi ci metti i due parametri obbligatori e deve tornarti una mappa.
>
> Infatti il browser non aggiunge automaticamente i parametri
> obbligatori, cosa che invece fa' qgis.
>
> Resta il mistero di come mai nel primo caso senza i parametri
> obbligatori il browser ti visualizzava la mappa.
> Puo' anche darsi che mapserver sia cosi' "smart" da non richiedere i
> parametri obbligatori, ma sarebbe un comportamento non standard e
> questo rischia di generare confusione su come deve essere fatta una
> chiamata wms.
>
> Scusa la complicatezza del discorso, ma una semplice risposta si/no
> non avrebbe aiutato la discussione.
>
> --
> ~~~~~~~~~~~~~~~~~
> § Andrea §
> § Peri §
> ~~~~~~~~~~~~~~~~~
>
> ------------------------------
>
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> Gfoss mailing list
> Gfoss a faunalia.com
> http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss
>
>
> Fine di Digest di Gfoss, Volume 39, Numero 23
> *********************************************
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://www.faunalia.com/pipermail/gfoss/attachments/20080913/977e16b1/attachment.htm>


Maggiori informazioni sulla lista Gfoss