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:
- la definizione dei layer come WMS all’interno del filemap che poi richiami
- 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/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](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/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](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@gmail.com>
Subject: [Gfoss] R: problema proiezioni postgis+mapserver
To: gfoss@faunalia.it
Message-ID:
<86ee9eaa0809121159m50275d34nb3d1c20956cb2dc8@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8ho 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=getmapnaturalmente non tutti sono obbligatori (o meglio se non li indichi
prende il default)Ma alcuni sono obbligatori.
Gli obbligatori sono:request=getmap
service=WMSse 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@faunalia.com
http://www.faunalia.com/cgi-bin/mailman/listinfo/gfossFine di Digest di Gfoss, Volume 39, Numero 23