[Gfoss] WMS Client con mapserver

Ciao a tutti,
sto cercando di creare un mapfile (da visualizzare poi in ka-map) con un solo layer WMS.
In pratica, utilizzando mapserver come client WMS, vorrei ottenere il risultato che si vede caricando una delle demo di ka-map degli ominiverdi (aqua).

Parsando il mapfile tramite cgi non ottengo alcun errore ma la pagina risulta vuota...

L'url NASA (JPL) l'ho preso caricando il layer WMS in QGIS ed esportando poi il mapfile.
Mi sembra strano che il server restituisca un'immagine non valida... QGIS carica il layer tranquillamente.
Ho un po' modificato il mapfile di qgis, lasciando per ora solo il minimo indispensabile per le prove:

MAP
  NAME 'BMNG'
  TRANSPARENT ON
  SIZE 800 600
  UNITS dd
  EXTENT -180.000000 -135.938804 180.000000 135.938804

  PROJECTION
    'init=epsg:4326'
  END

  WEB
    IMAGEPATH '/usr/local/apache2/webdomains/openmaps.it/home/htdocs/_studio/tmp/'
    IMAGEURL '/usr/local/apache2/webdomains/openmaps.it/home/htdocs/_studio/tmp/'
  END

  LAYER
    NAME 'BMNG'
    TYPE RASTER
    CONNECTIONTYPE WMS
    CONNECTION 'http://wms.jpl.nasa.gov/wms.cgi?
    METADATA
      'wms_name' 'BMNG'
      'wms_server_version' '1.1.1'
      'wms_srs' 'EPSG:4326'
      'wms_format' 'image/gif'
    END
    METADATA
      'wms_title' 'BMNG'
    END
    STATUS ON
    TRANSPARENCY 100
    PROJECTION
    'init=epsg:4326'
    END
END
END

Ho consultato la documentazione relativa al WMS client sul sito di mapserver e mi sembra che non ci siano errori nel mapfile.
Eseguendo la richiesta GetCapabilities il file xml scaricato non presenta errori ma solo due warning. Allego il file xml prodotto se qualcuno volesse leggerlo... =)

Cosa mi sfugge?

grazie a tutti in anticipo

mapserv (5.41 KB)

alessio di lorenzo-2 wrote:

Ciao a tutti,
sto cercando di creare un mapfile (da visualizzare poi in ka-map) con un
solo layer WMS.
In pratica, utilizzando mapserver come client WMS, vorrei ottenere il
risultato che si vede caricando una delle demo di ka-map degli
ominiverdi (aqua).

Parsando il mapfile tramite cgi non ottengo alcun errore ma la pagina
risulta vuota...

L'url NASA (JPL) l'ho preso caricando il layer WMS in QGIS ed esportando
poi il mapfile.
Mi sembra strano che il server restituisca un'immagine non valida...
QGIS carica il layer tranquillamente.
Ho un po' modificato il mapfile di qgis, lasciando per ora solo il
minimo indispensabile per le prove:

MAP
  NAME 'BMNG'
  TRANSPARENT ON
  SIZE 800 600
  UNITS dd
  EXTENT -180.000000 -135.938804 180.000000 135.938804

  PROJECTION
    'init=epsg:4326'
  END

  WEB
    IMAGEPATH
'/usr/local/apache2/webdomains/openmaps.it/home/htdocs/_studio/tmp/'
    IMAGEURL
'/usr/local/apache2/webdomains/openmaps.it/home/htdocs/_studio/tmp/'
  END

  LAYER
    NAME 'BMNG'
    TYPE RASTER
    CONNECTIONTYPE WMS
    CONNECTION 'http://wms.jpl.nasa.gov/wms.cgi?
    METADATA
      'wms_name' 'BMNG'
      'wms_server_version' '1.1.1'
      'wms_srs' 'EPSG:4326'
      'wms_format' 'image/gif'
    END
    METADATA
      'wms_title' 'BMNG'
    END
    STATUS ON
    TRANSPARENCY 100
    PROJECTION
    'init=epsg:4326'
    END
END
END

Ho consultato la documentazione relativa al WMS client sul sito di
mapserver e mi sembra che non ci siano errori nel mapfile.
Eseguendo la richiesta GetCapabilities il file xml scaricato non
presenta errori ma solo due warning. Allego il file xml prodotto se
qualcuno volesse leggerlo... =)

Cosa mi sfugge?

grazie a tutti in anticipo

Prova ad eliminare la sezione METADATA (quella dove c'è "wms_title") forse
con più di una si arrabbia!
Controlla anche i permessi delle volte sono le banalità che ci sfuggono.
Magari lancia pure un
tail -f /var/log/apache2/error.log non si sa mai!
Ciao
--
View this message in context: http://www.nabble.com/WMS-Client-con-mapserver-tf3795169.html#a10737638
Sent from the Gfoss mailing list archive at Nabble.com.

Alessio, controlla bene il manuale di mapserver:

http://mapserver.gis.umn.edu/docs/howto/wms_client

poi segui il consiglio di Salvatore.

infine io proverei:

shp2img -m tuomapfile.map -o miaimmagine.png

dovresti ricevere i messaggi di errore sulla linea di comando e avere direttamente l'immagine di output senza passare dal browser.

poi ti consiglio l'uso di jpeg invece che gif per quel tipo di immagine raster. supporta un maggior numero di colori e non perde le sfumature anche con buona compressione.

in linea di massima la tua idea dovrebbe funzionare bene.
una volta che ka-map ha fatto la cache le prestazioni di visualizzazioni della mappa aumenteranno enormemente.

ciao
Lorenzo

Ciao Lorenzo,
Ti ringrazio per i suggerimenti, purtroppo eliminare la seconda sezione METADATA come consigliato da Salvatore, non ha prodotto risultati... oggi riprovo tenendo conto anche di quello che mi hai detto tu.
Ieri pomeriggio ho avuto da fare e non sono riuscito a dedicarmi allo studio del problema... stamattina riprovo e appena ne vengo a capo faccio un fischio!

ciao e grazie

Lorenzo Becchi ha scritto:

Alessio, controlla bene il manuale di mapserver:

http://mapserver.gis.umn.edu/docs/howto/wms_client

poi segui il consiglio di Salvatore.

infine io proverei:

shp2img -m tuomapfile.map -o miaimmagine.png

dovresti ricevere i messaggi di errore sulla linea di comando e avere direttamente l'immagine di output senza passare dal browser.

poi ti consiglio l'uso di jpeg invece che gif per quel tipo di immagine raster. supporta un maggior numero di colori e non perde le sfumature anche con buona compressione.

in linea di massima la tua idea dovrebbe funzionare bene.
una volta che ka-map ha fatto la cache le prestazioni di visualizzazioni della mappa aumenteranno enormemente.

ciao
Lorenzo

_______________________________________________
Gfoss mailing list
Gfoss@faunalia.com
http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss

Risolto:
dal http://wms.jpl.nasa.gov/wms.cgi?request=GetCapabilities si vede che per il layer BMNG sono definiti una serie di stili, essendo una immagine multitemporale. Mentre QGIS prende il primo (“default”), dentro il mapfile dev’essere definito esplicitamente col tag “wms_style”.

giovanni

Il 23/05/07, Alessio Di Lorenzo <alessio.dilorenzo@gmail.com> ha scritto:

Ciao Lorenzo,
Ti ringrazio per i suggerimenti, purtroppo eliminare la seconda sezione
METADATA come consigliato da Salvatore, non ha prodotto risultati…
oggi riprovo tenendo conto anche di quello che mi hai detto tu.
Ieri pomeriggio ho avuto da fare e non sono riuscito a dedicarmi allo
studio del problema… stamattina riprovo e appena ne vengo a capo
faccio un fischio!

ciao e grazie

Lorenzo Becchi ha scritto:

Alessio, controlla bene il manuale di mapserver:

http://mapserver.gis.umn.edu/docs/howto/wms_client

poi segui il consiglio di Salvatore.

infine io proverei:

shp2img -m tuomapfile.map -o miaimmagine.png

dovresti ricevere i messaggi di errore sulla linea di comando e avere
direttamente l’immagine di output senza passare dal browser.

poi ti consiglio l’uso di jpeg invece che gif per quel tipo di immagine
raster. supporta un maggior numero di colori e non perde le sfumature
anche con buona compressione.

in linea di massima la tua idea dovrebbe funzionare bene.
una volta che ka-map ha fatto la cache le prestazioni di visualizzazioni
della mappa aumenteranno enormemente.

ciao
Lorenzo


Gfoss mailing list
Gfoss@faunalia.com
http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss


Gfoss mailing list
Gfoss@faunalia.com
http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss

eh eh... caro giovanni, purtroppo abbiamo cantato vittoria in anticipo... =)

Dunque, ho utilizzato - come da te consigliato - il mapfile di pmapper di ms4w come base -

Utilizzando questo mapfile ed inserendo il mio layer WMS, questo viene visualizzato perfettamente sia nel browser via cgi che in pmapper, ma il problema ora sta nell'oggetto WEB:

modificando i valori di default

IMAGEPATH "\ms4w\apps\pmapper-2.0.0\tmp\"
IMAGEURL "/pmapper/tmp/"

con

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

Il mapfile in questione non funziona più... se lo passo al cgi ricevo il seguente errore:

msHTTPExecuteRequests(): HTTP request error. Can't open output file \tmp\ms_tmp\4655db8c_494_0.img
.tmp.

(ovviamente il nome del file .img.tmp. cambia di volta in volta)

La cosa strana è che utilizzo

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

per tutti gli altri mapfile - in cui non ho inserito layers wms - senza problemi...

G. Allegri ha scritto:

Risolto:
dal http://wms.jpl.nasa.gov/wms.cgi?request=GetCapabilities si vede che per il layer BMNG sono definiti una serie di stili, essendo una immagine multitemporale. Mentre QGIS prende il primo ("default"), dentro il mapfile dev'essere definito esplicitamente col tag "wms_style".
--
giovanni

Il 23/05/07, *Alessio Di Lorenzo* <alessio.dilorenzo@gmail.com <mailto:alessio.dilorenzo@gmail.com>> ha scritto:

    Ciao Lorenzo,
    Ti ringrazio per i suggerimenti, purtroppo eliminare la seconda
    sezione
    METADATA come consigliato da Salvatore, non ha prodotto risultati...
    oggi riprovo tenendo conto anche di quello che mi hai detto tu.
    Ieri pomeriggio ho avuto da fare e non sono riuscito a dedicarmi allo
    studio del problema... stamattina riprovo e appena ne vengo a capo
    faccio un fischio!

    ciao e grazie

    Lorenzo Becchi ha scritto:
    > Alessio, controlla bene il manuale di mapserver:
    >
    > http://mapserver.gis.umn.edu/docs/howto/wms_client
    <http://mapserver.gis.umn.edu/docs/howto/wms_client&gt;
    >
    > poi segui il consiglio di Salvatore.
    >
    > infine io proverei:
    >
    > shp2img -m tuomapfile.map -o miaimmagine.png
    >
    > dovresti ricevere i messaggi di errore sulla linea di comando e
    avere
    > direttamente l'immagine di output senza passare dal browser.
    >
    > poi ti consiglio l'uso di jpeg invece che gif per quel tipo di
    immagine
    > raster. supporta un maggior numero di colori e non perde le
    sfumature
    > anche con buona compressione.
    >
    > in linea di massima la tua idea dovrebbe funzionare bene.
    > una volta che ka-map ha fatto la cache le prestazioni di
    visualizzazioni
    > della mappa aumenteranno enormemente.
    >
    > ciao
    > Lorenzo
    >
    > _______________________________________________
    > Gfoss mailing list
    > Gfoss@faunalia.com <mailto:Gfoss@faunalia.com>
    > http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss
    >

    _______________________________________________
    Gfoss mailing list
    Gfoss@faunalia.com <mailto:Gfoss@faunalia.com>
    http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss

------------------------------------------------------------------------

_______________________________________________
Gfoss mailing list
Gfoss@faunalia.com
http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss
  

Ho risolto il problema col cgi su ms4w… era una cavolata, bastava indicare il giusto percorso:

IMAGEPATH “/ms4w/tmp/ms_tmp/”
IMAGEURL “/tmp/ms_tmp/”

ora il mio mapfile produce correttamente la mappa caricando il layer wms nel browser.

Resta il problema di Ka-Map.
Tutta la documentazione che ho letto, sia di mapserver che di kamap, non mi ha aiutato ad individuare il problema ed il mio mapfile (in allegato) è scritto bene, altrimenti non mi darebbe il risultato via cgi…
Quando spengo il layer vettoriale e accendo quello wms (BMNG) vedo per un attimo le mattonelle che si caricano col simbolo del link rotto in alto (effetto che vi potete godere qui: http://openmaps.it/kamap/index_overlay.html ).
Sembrerebbe un problema di permessi, ma ho controllato e la dir kacache è presente ed accessibile.

L’output di init.php e tile.php non mi riporta nessun errore… o almeno così mi sebra di vedere:

init.php

/init/aszScales=new Array(‘100000000’,‘75000000’,‘50000000’,‘25000000’);var map = new _map({name:‘gmap’,title:‘World Map’,currentScale: 0,units:5,resolution:72,version:‘’,scales:aszScales});map.setDefaultExtents(-180,-90,180,90);map.setBackgroundColor(‘rgb(192,192,192)’);map.addLayer(new _layer( { name:‘BMNG’,visible:false,opacity:100,imageformat:‘gif’,queryable:false,tileSource:‘auto’,redrawInterval:-1,refreshInterval:-1,scales: new Array(‘1’,‘1’,‘1’,‘1’)}));map.addLayer(new _layer( { name:‘WorldMap’,visible:true,opacity:100,imageformat:‘gif’,queryable:false,tileSource:‘auto’,redrawInterval:-1,refreshInterval:-1,scales: new Array(‘1’,‘1’,‘1’,‘1’)}));map.resolution = 72;this.addMap( map );this.tileWidth=256;this.tileHeight=256;this.server = 'http://www.openmaps.it/kamap/';this.tileURL = ‘tile.php’;this.selectMap(‘gmap’);

tile.php

nessun errore, genera la mattonella del layer vettoriale.

Se cancello la cache di kamap e commento il layer vettoriale nel mapfile (lasciando solo quello wms) non ricevo comunque alcun errore ma visualizzo (per modo di dire…) una tile png 256x256 vuota (non so se bianca o trasparente).

Ho controllato anche sulla ML di ka-map e c’è questo messaggio: http://lists.maptools.org/pipermail/ka-map-users/2006-August/002151.html
che illustra un problema simile al mio, ma in quel caso era dovuto al fatto che nel mafile non erano stati specificati imagepath e imageurl… cosa che io invece ho fatto!

La situazione sta diventando frustrante! In tutti gli esempi il mapfile è uguale al mio e lo stesso mapfile su pmapper funziona.

Devo modificare qualcosa in ka-map per poter utilizzare layers richiamati via wms?
Ho letto il config.php abbastanza a fondo e non mi sembra di ritrovare riferimenti ad impostazioni particolari per il wms.

Ho controllato e la funzione client wms è supportata.
./mapserv -v
MapServer version 4.10.2 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=GEOS INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE

Poi sono andato a vedere il log di apache e questo è il risultato:

Sat May 26 15:53:35 2007] [error] [client 151.44.4.30] PHP Warning: [MapServer Error]: msDrawMap(): Failed to draw WMS layer
named ‘BMNG’. This most likely happened because the remote WMS server returned an invalid image, and XML exception or another
unexpected result in response to the GetMap request. Also check and make sure that the layer’s connection URL is valid.\n in
/usr/local/apache2/webdomains/openmaps.it/home/htdocs/ka-map-1.0/htdocs/tile.php on line 289, referer: http://www.openmaps.it/
kamap/index_overlay.html

Mi scuso per la lunghezza del messaggio, ma volevo dare il maggior numero di informazioni possibili…

ciao

world_map.map (1.98 KB)

ho usato Firebug per vedere quale indirizzo richiedessero le tiles di quel layer.
questo l'indirizzo di una delle tiles:
http://openmaps.it/kamap/tile.php?map=gmap&t=-512&l=-512&s=100000000&force=true&g=BMNG&i=png

questo l'errore (l'ho accorciato):
----------------------------------
Warning: [MapServer Error]: msDrawMap(): Failed to draw WMS layer named 'BMNG'. This most likely happened because the remote WMS server returned an invalid image, and XML exception or another unexpected result in response to the GetMap request. Also check and make sure that the layer's connection URL is valid. in /usr/local/apache2/webdomains/openmaps.it/home/htdocs/ka-map-1.0/htdocs/tile.php on line 289

Fatal error: Call to a member function saveImage() on a non-object in /usr/local/apache2/webdomains/openmaps.it/home/htdocs/ka-map-1.0/htdocs/tile.php on line 290
------------------------------------------------------

mandami il mapfile in privato

meglio se posti sulla lista di ka-map:
http://lists.maptools.org/mailman/listinfo/ka-map-users