[Gfoss] wms mapserver e openlayer

Francesco Geri francescogeri a yahoo.it
Gio 4 Nov 2010 17:20:14 CET


In effetti è uno stato uno dei miei primi tentativi ma probabilmente 
sbaglio qualcosa nel codice. All'inizio, dato che si trattava di un 
controllo, lo avevo brutalmente aggiunto con map.addcontrol. Poi:

   var infoControls = { click: new OpenLayers.Control.WMSGetFeatureInfo(
                 { url: 
"http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map",
                   title: 'Query sic',
                   layers: [bioitaly_v],
                   queryVisible: true,
                   infoFormat: 'application/vnd.ogc.gml' } ) };

il risultato è che non si vede più niente, osm compreso.

Per quanto riguarda il web template ho letto la documentazione di 
mapserver ma quando dice che si deve inserire per ogni layer il tag 
TEMPLATE non specifica come questo va fatto (il DUMP va messo TRUE e 
infatti è ok). Allora ho fatto una paginetta html e ho provato a 
mettergli quella (tipo TEMPLATE "template.html") ma il risultato è che 
mi dice (con lo script precedente):

Content-type: text/html isValidTemplate(): Web application error. 
Missing magic string, /var/www/template.html doesn't look like a 
MapServer template.


Il 04/11/2010 16:38, Luca Casagrande ha scritto:
> Il 04/11/2010 16:19, Francesco Geri ha scritto:
>> Salve a tutti.
>> Sto cercando di visualizzare dati postgis attraverso mapserver con 
>> openlayer. Ho provato realizzando un server WFS ma ho avuto una serie 
>> di problemi. Sono passato allora ad un server WMS. L'overlay di un 
>> layer postgis su un base layer OSM è filata via abbastanza liscia. 
>> Ovviamente mi sono bloccato subito dopo sull'interrogazione del 
>> layer. Infatti il getfeatureinfo mi restituisce una serie di errori. 
>> Ho utilizzato una funzione che ho trovato in rete e che posto qui di 
>> seguito
>>
>> map.events.register('click', map, function (e) {
>>     var url 
>> ="http://localhost/cgi-bin/mapserv?map=/var/www/pmapper-4.0/config/florawms/pmapper_florawms.map"; 
>>
>>       + "?REQUEST=GetFeatureInfo"
>>       + "&EXCEPTIONS=application/vnd.ogc.se_xml"
>>       + "&BBOX=" + map.getExtent().toBBOX()
>>       + "&X=" + e.xy.x
>>       + "&Y=" + e.xy.y
>>       + "&INFO_FORMAT=text/plain"
>>       + "&QUERY_LAYERS=bioitaly_v"
>>       + "&LAYERS=bioitaly_v"
>>       + "&FEATURE_COUNT=1"
>>       + "&SRS=EPSG:900913"
>>       + "&STYLES="
>>       + "&WIDTH=" + map.size.w
>>       + "&HEIGHT=" + map.size.h;
>>     
>> window.open(url,"GetFeatureInfo","location=0,status=1,scrollbars=1,width=600,height=150"); 
>>
>>   });
>>
>> Quando vado a cliccare su un elemento mi si apre la nuova finestra ma 
>> mi restituisce un errore
>>
>> mapserv(): Web application error. Traditional BROWSE mode requires a 
>> TEMPLATE in the WEB section, but none was provided.
>>
>> Se faccio una GetFeature request, questo è quello che ottengo
>>
>> <?xml version='1.0' encoding="UTF-8" standalone="no" ?>
>> <!DOCTYPE ServiceExceptionReport SYSTEM 
>> "http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd">
>> <ServiceExceptionReport version="1.1.1">
>> <ServiceException code="LayerNotQueryable">
>> msWMSFeatureInfo(): WMS server error. Requested layer(s) are not 
>> queryable.
>> </ServiceException>
>> </ServiceExceptionReport>
> Ciao Francesco,
> ti conviene usare OpenLayers.Control.WMSGetFeatureInfo per effettuare 
> questo tipo di operazione
> piuttosto che scrivere tutto a mano.
>
> Luca
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: 
> http://www.gfoss.it/drupal/iscrizione
> Gfoss a lists.gfoss.it
> http://lists.gfoss.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.
> 474 iscritti al 18.9.2010


Maggiori informazioni sulla lista Gfoss