[Gfoss] WMS e mapserver, piccolo problema..

Salve a tutti comunità!

mi sto da poco avvicinando al mondo del WEBGIS e sto riscontrando alcuni
problemi nel caricare un WMS utilizzando mapserver..

premetto che con altri mapfiles anche complessi, ma privi di WMS tutto
sembra funzionare..

per prima cosa vi posto un semplice MAPFILE di prova che sto utilizzando per
vedere se ho capito bene come fare:

MAP

EXTENT -442534.386 3909653.064 908238.819 5281088.192
SIZE 700 750
SHAPEPATH "D:\ms4w\apps\esercitazioni\data"
IMAGECOLOR 255 255 255
FONTSET "D:/ms4w/apps/tutorial/fonts/fonts.list"
SYMBOLSET "D:/ms4w/apps/tutorial/symbols/symbols35.sym"
   PROJECTION
       "proj=utm"
       "zone=33"
       "ellps=WGS84"
       "datum=WGS84"
       "units=m"
       "no_defs"
       #"init=EPSG:3263"
   END

WEB
    IMAGEPATH "D:/ms4w/tmp/"
    IMAGEURL "D:/ms4w/tmp/"
END

     # INIZIO LAYER WMS AREE PROTETTE -------------------------------
  LAYER
    NAME "wms_aanp_f33"
    TYPE RASTER
    STATUS ON
    CONNECTION
"http://wms.pcn.minambiente.it/cgi-bin/mapserv.exe?map=/ms_ogc/service/aanp_f33.map"
    CONNECTIONTYPE WMS
    METADATA
      "wms_srs" "EPSG:32633"
      "wms_name" "aanp_f33"
      "wms_server_version" "1.1.1"
      "wms_format" "image/png"

    END

   PROJECTION
       "proj=utm"
       "zone=33"
       "ellps=WGS84"
       "datum=WGS84"
       "units=m"
       "no_defs"
       #"init=EPSG:3263"
   END
  END # FINE AREE PROTETTE WMS --------------------------------------

END

credo vada bene..

per testarlo digito nel browser:

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&layer=wms_aanp_f33&mode=map

ed ottengo come errore:

msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in the
LAYERS parameter.

stessa cosa se x i TAG PROJECTION uso codici EPSG (es: "init=EPSG:3263")

non capisco come risolvere e visualizzare il servizio..

qualche idea del punto in cui io stia sbagliando?

il modo in cui lo sto testando (digitando l'URL già scritto nel browser) è
corretto o per i WMS funziona diversamente?

vi prego di non dare nulla per scontato dato che sono un "novellino".

Grazie mille a tutti voi

Roberto
--
View this message in context: http://www.nabble.com/WMS-e-mapserver%2C-piccolo-problema…-tp25617830p25617830.html
Sent from the Gfoss mailing list archive at Nabble.com.

On Sat, Sep 26, 2009 at 11:49:14AM -0700, robysdc wrote:

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&layer=wms_aanp_f33&mode=map

ed ottengo come errore:

msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in the
LAYERS parameter.

Testare il funzionamento del mapfile con una richiesta non WMS
(quindi quelle standard di MapServer: mode=map oppure
mode=browse) è il primo passo per verificare che il mapfile sia
corretto.

Per vedere se anche la parte WMS è configurata bene devi testare
le richieste GetCapabilities e GetMap, magari sempre nel browser.
La prima deve resitituire un XML, la seconda una immagine.

Un esempio funzionante lo trovi in fondo a questa pagina:

http://www.rigacci.org/mapserver/

--
Niccolo Rigacci
Firenze - Italy

innanzi tutto ti ringrazio per il tuo aiuto e ti faccio i complimenti per il
sito che visito spesso..

allora, ho fatto come dici ma evidentemente c'è qualcosa che sbaglio..

se digito:
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&layer=wms_aanp_f33&mode=map

ottengo il solito errore:
errore: msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in
the LAYERS parameter.

Se poi faccio sempre nel browser:

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilitie

ottengo un file "mapserv.1&REQUEST=GetCapabilitie" nel quale trovo scritto:

<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM
"http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd&quot;&gt;
<ServiceExceptionReport version="1.1.1">
<ServiceException>
msWMSDispatch(): WMS server error. Incomplete or unsupported WMS request
</ServiceException>
</ServiceExceptionReport>

stessa cosa se digito nel browser:
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYER=aanp_f33&FORMAT=image/png

così ottengo un file che si chiama "mapserv" e che ha lo stesso contenuto di
quello poco più in su:

<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM
"http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd&quot;&gt;
<ServiceExceptionReport version="1.1.1">
<ServiceException code="LayerNotDefined">
msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in the
LAYERS parameter.
</ServiceException>
</ServiceExceptionReport>

Immagino che stia sbagliando in qualcosa ma non riesco a capire dove..

vi ringrazio per il tempo che potrete dedicarmi e per l'aiuto dato fino ad
ora.

Niccolo Rigacci-3 wrote:

On Sat, Sep 26, 2009 at 11:49:14AM -0700, robysdc wrote:

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&layer=wms_aanp_f33&mode=map

ed ottengo come errore:

msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in the
LAYERS parameter.

Testare il funzionamento del mapfile con una richiesta non WMS
(quindi quelle standard di MapServer: mode=map oppure
mode=browse) è il primo passo per verificare che il mapfile sia
corretto.

Per vedere se anche la parte WMS è configurata bene devi testare
le richieste GetCapabilities e GetMap, magari sempre nel browser.
La prima deve resitituire un XML, la seconda una immagine.

Un esempio funzionante lo trovi in fondo a questa pagina:

http://www.rigacci.org/mapserver/

--
Niccolo Rigacci
Firenze - Italy
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@faunalia.it
http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.

--
View this message in context: http://www.nabble.com/WMS-e-mapserver%2C-piccolo-problema…-tp25617830p25652776.html
Sent from the Gfoss mailing list archive at Nabble.com.

On Mon, Sep 28, 2009 at 01:52:33PM -0700, robysdc wrote:

se digito:
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&layer=wms_aanp_f33&mode=map

ottengo il solito errore:
errore: msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in
the LAYERS parameter.

Strano che risponda "WMS server error", perché tale richiesta non
dovrebbe essere interpretata come richiesta WMS, ma come
semplice richiesta MapServer.

Prova comunque a togliere la parte "layer=wms_aanp_f33", in quel
modo dovrebbe disegnare solo i layer che sono in STATUS ON oppure
DEFAULT.

Se poi faccio sempre nel browser:
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilitie

ottengo un file "mapserv.1&REQUEST=GetCapabilitie" nel quale trovo scritto:

Qui mi sa che hai tagliato l'URL, manca la "s" di
GetCapabilities.

stessa cosa se digito nel browser:
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYER=aanp_f33&FORMAT=image/png
...
msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in the
LAYERS parameter.

Qui vedo che hai passato il parametro LAYER=aanp_f33, mentre lo
standard WMS chiede "LAYERS" con la "S".

--
Niccolo Rigacci
Firenze - Italy

Allora...

comincio con il ringraziarti e poi ti aggiorno sugli sviluppi;

Ho fatto varie prove con un mapfile (robysdc_demo.map) con altri layer
(vettoriali e raster) oltre al WMS, ma del servizio WEB nessuna traccia...

andando con ordine, se digito nel browser:

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/pmapper/pmapper4.0.beta2/config/default/robysdc_demo.map&mode=map

mi mostra a video tutti i dati del mapfile tranne il wms;

sullo sfondo, sotto ai dati della mappa si legge il solito
"msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in the
LAYERS parameter. "

Se faccio la chiamata get capabilities (aggiungendo la "s" come mi hai fatto
notare):

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/pmapper/pmapper4.0.beta2/config/default/robysdc_demo.map&mode=map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilities

stranamente mi salva una immagine PNG di alcuni dati della mia mappa
naturalmente con l'esclusione del WMS..

se poi digito (correttamente credo, scrivendo LAYERS con la "S":

http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/pmapper/pmapper4.0.beta2/config/default/robysdc_demo.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS=aanp_f33&FORMAT=image/png

ottengo il solito file "mapserv":

<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM
"http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd&quot;&gt;
<ServiceExceptionReport version="1.1.1">
<ServiceException code="LayerNotDefined">
msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in the
LAYERS parameter.
</ServiceException>
</ServiceExceptionReport>

direi che sono un pò confuso..

il wms che vorrei visualizzare, e preso dal portale cartografico nazionale e
si trova a questo indirizzo:
http://www.pcn.minambiente.it/PCNDYN/catalogowms.jsp?lan=it

è il secondo in elenco: "altre aree naturali protette fuso 33"
il suo URL è
"http://wms.pcn.minambiente.it/cgi-bin/mapserv.exe?map=/ms_ogc/service/aanp_f33.map&quot;

ti copio il pezzo di mapfile che lo riguarda, è corretto?

     # INIZIO LAYER WMS AREE PROTETTE -------------------------------
  LAYER
    NAME "aree_protette"
    TYPE RASTER
    STATUS DEFAULT
    CONNECTION
"http://wms.pcn.minambiente.it/cgi-bin/mapserv.exe?map=/ms_ogc/service/aanp_f33.map&quot;
    CONNECTIONTYPE WMS
    METADATA
      "wms_name" "aanp_f33"
      "wms_srs" "EPSG:32633"
      "wms_server_version" "1.1.1"
      "wms_format" "image/png"
      "wms_style" "visual"
      "ows_title" "aree_protette"

    END

   PROJECTION
       #"proj=utm"
       #"zone=33"
       #"ellps=WGS84"
       #"datum=WGS84"
       #"units=m"
       #"no_defs"
       "init=EPSG:3263"
   END
  END # FINE AREE PROTETTE WMS --------------------------------------

altra cosa, nel MAP file, nella sezione della MAPPA cosa devo aggiungere?
basta inserire:

WEB

  IMAGEPATH "/ms4w/tmp/ms_tmp/"
  IMAGEURL "/ms_tmp/"

END

ho dimenticato forse qualcosa di elementare? se serve posso postare l'ntero
mapfile, non l'ho messo perchè è un pò lunghetto e non vorrei rendere
illegibile il post (almeno più di quanto già non lo sia..)

spero possiate aiutarmi a capire dove sto sbagliando..

Grazie ancora!

Roberto

Niccolo Rigacci-3 wrote:

On Mon, Sep 28, 2009 at 01:52:33PM -0700, robysdc wrote:

se digito:
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&layer=wms_aanp_f33&mode=map

ottengo il solito errore:
errore: msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given
in
the LAYERS parameter.

Strano che risponda "WMS server error", perché tale richiesta non
dovrebbe essere interpretata come richiesta WMS, ma come
semplice richiesta MapServer.

Prova comunque a togliere la parte "layer=wms_aanp_f33", in quel
modo dovrebbe disegnare solo i layer che sono in STATUS ON oppure
DEFAULT.

Se poi faccio sempre nel browser:
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilitie

ottengo un file "mapserv.1&REQUEST=GetCapabilitie" nel quale trovo
scritto:

Qui mi sa che hai tagliato l'URL, manca la "s" di
GetCapabilities.

stessa cosa se digito nel browser:
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/esercitazioni/mapfiles/Esempio_WMS.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYER=aanp_f33&FORMAT=image/png
...
msWMSLoadGetMapParams(): WMS server error. Invalid layer(s) given in the
LAYERS parameter.

Qui vedo che hai passato il parametro LAYER=aanp_f33, mentre lo
standard WMS chiede "LAYERS" con la "S".

--
Niccolo Rigacci
Firenze - Italy
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@faunalia.it
http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.

--
View this message in context: http://www.nabble.com/WMS-e-mapserver%2C-piccolo-problema…-tp25617830p25668512.html
Sent from the Gfoss mailing list archive at Nabble.com.

On Tue, Sep 29, 2009 at 11:34:40AM -0700, robysdc wrote:

ti copio il pezzo di mapfile che lo riguarda, è corretto?

  # INIZIO LAYER WMS AREE PROTETTE -------------------------------
  LAYER
    NAME "aree_protette"
    TYPE RASTER
    STATUS DEFAULT
    CONNECTION "http://wms.pcn.minambiente.it/cgi
    CONNECTIONTYPE WMS
    METADATA
      "wms_name" "aanp_f33"
      "wms_srs" "EPSG:32633"
      "wms_server_version" "1.1.1"
      "wms_format" "image/png"
      "wms_style" "visual"
      "ows_title" "aree_protette"
    END

Intanto mi rendo conto di un grosso fraintendimento: avevo
pensato che tu volessi configurare il tuo MapServer come server
WMS, invece lo vuoi usare come **client** WMS!

Quindi butta alle ortiche tutte le richieste SERVICE=WMS verso il
tuo http://localhost !! Non è quello che deve funzionare! È
wms.pcn.minambiente.it che risponde alle GetCapabilities e
GetMap.

Non ho sotto mano esempi di MapServer come client WMS,
ma qui c'è il manuale:
http://www.mapserver.org/ogc/wms_client.html#mapfile-configuration

Come "wms_name" ci dovresti mettere "aanp_33" (senza f) che è il
nome annunciato da wms.pcn.minambiente.it.

--
Niccolo Rigacci
Firenze - Italy

Come "wms_name" ci dovresti mettere "aanp_33" (senza f) che è il
nome annunciato da wms.pcn.minambiente.it.

Era proprio questo il problema... mi stavo perdendo in un niente..

grazie mille per il tuo aiuto!

PS
visto che sei stato così gentile ne approfitto per chiederti una cosa
ulteriore, dopo le aree protette ho provato nello stesso modo a visualizzare
l'ortofoto del 2008 ma senza riuscirci, ottengo una pagina bianca (senza
errore questa volta);

c'è forse un limite alle dimensioni dei WMS visualizzabili con pmapper o va
settato qualche altro parametro per files di grosse dimensioni?
--
View this message in context: http://www.nabble.com/WMS-e-mapserver%2C-piccolo-problema…-tp25617830p25686057.html
Sent from the Gfoss mailing list archive at Nabble.com.

Ciao

Il 30 settembre 2009 20.02, robysdc <robysdc@gmail.com> ha scritto:

c'è forse un limite alle dimensioni dei WMS visualizzabili con pmapper o va
settato qualche altro parametro per files di grosse dimensioni?

Le ortofoto del PCN sono settate in modo da venir visulizzate a partire
da un certo valore della scala.
Tuttavia dovresti vedere un quadrato celeste e non bianco..in questo caso credo
sia un problema di configurazione di Pmapper.

Ciao
Luca

Immaginavo ci fosse un limite di visualizzazione per le ortofoto, ma anche
zoomando non compare nulla..

continuo a visualizzare la finestra bianca; se poi faccio zoom sul layer
(dal menù ad albero, nel quale compare il nome) mi si ridimensiona la
finestra come se vi fosse qualcosa ma a video non vedo nulla..
tutti gli altri layers (raster e vettoriali) funzionano bene..

immagino ci sia qualcosa da configurare in pmapper ma non ho idea di cosa
sia..
potreste darmi qualche dritta?

questo è l'estratto del mapfile che riguarda il wms delportale cartografico
nazionale:

     # INIZIO LAYER WMS ORTOFOTO 2008 -------------------------------
  LAYER
    NAME "wms_ortofoto_colore_08_f33"
    TYPE RASTER
    STATUS DEFAULT
    CONNECTION
"http://wms.pcn.minambiente.it/cgi-bin/mapserv.exe?map=/ms_ogc/service/ortofoto_colore_08_f33.map&quot;
    CONNECTIONTYPE WMS
    METADATA
      "wms_name" "ortofoto_colore_08_f33"
      "wms_srs" "epsg:32633"
      "wms_server_version" "1.1.1"
      "wms_format" "image/png"
    END

   PROJECTION
       #"proj=utm"
       #"zone=33"
       #"ellps=WGS84"
       #"datum=WGS84"
       #"units=m"
       #"no_defs"
       "init=epsg:32633"
   END
  END # FINE AREE PROTETTE WMS --------------------------------------
--
View this message in context: http://www.nabble.com/WMS-e-mapserver%2C-piccolo-problema…-tp25617830p25703097.html
Sent from the Gfoss mailing list archive at Nabble.com.