Salve a tutti e ...rieccomi qui!
Mettendo insieme i consigli di tutti, sono riuscito a sistemare la parte
relativa a postgis/mapserver (almeno credo!)
Per OpenLayer, alla fine, ho usato una via alternativa e sono passato
dal buon vecchio Geoserver.
Ho caricato i miei livelli e copiato il codice riadattandolo alle mie
esigenze, facendolo puntare, cioè, al mapfile invece che a geoserver.

Tutta fila liscio, gli errori di prima dipendevano da una cattiva
dichiarazione delle proiezioni.

A questo punto voglio esagerare e provare a fare delle interrogazioni
usando getFeatureInfo + popup; setto la chiamata OpenLayers.ProxyHost e
qui succede di tutto tranne quello che vorrei:

1. La cosa istintiva è mettere il percorso al file presente nella
cartella example di openlayers
"http://localhost/OpenLayers-2.7/example/proxy.cgi?url=";;
Ma ovviamente non funziona: la popup si apre e mi fa vedere il codice
del file proxy.cgi. Stessa cosa se punto direttamente al file dal
browser...il perché è abbastanza scontato!!!

2. stesso comportamento del punto 1 se copio il file proxy.cgi nella
stessa cartella della pagina con la mappa.
La stringa diventa: OpenLayers.ProxyHost = "proxy.cgi?url=";

3. copio il file in usr/lib/cgi-bin (dove c'è anche l'eseguibile di
mapserver). Se punto al file col browser, mi si apre una home page di
OpenLayer...il che fa ben sperare.
La stringa diventa: OpenLayers.ProxyHost = "cgi-bin/proxy.cgi?url=";
come suggerito in vari tutorial, ma quando interrogo la mappa:
"Unhandled request return Unexpected Error"
che significa, sempre secondo google, che non è un problema di
openlayers ma del server, suggeriscono di dare un'occhiata a
firbug...fatto, e ora? Non so come risolvere il problema anche perché
l'Unexpected error è segnalato da firebug come il 500, ma se leggo il
testo mi dice: "Some unexpected error occurred. Error text was: HTTP
Error 404: Not Found" ... ma il 404 non dovrebbe essere un altro errore,
diverso dal 500? Boh!

Attendo lumi

Grazie mille
-beppe-

Il mio codice è:

            OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";

            function init(){
                var bounds = new OpenLayers.Bounds(
                    657732.15, 5120937.825,
                    670140.975, 5139839.675
                );

                var options = {
                    controls: [],
                    maxExtent: bounds,
                    maxResolution: 40.83535156249854,
                    projection: "EPSG:3003",
                    units: 'm'
                };

                map = new OpenLayers.Map('map', options);               
               
                // setup comuni
               var comuni = new OpenLayers.Layer.MapServer(
                    "comuni", 
"http://localhost/cgi-bin/mapserv?map=/var/www/vervo/config/default/pmapper_demo.map&";,
                    {layers: 'confini_com',
                     tiled: 'true',
                     tilesOrigin : "657732.15,5120937.825"
                   },
                   {buffer: 0} 
                );
                map.addLayer(comuni);
                
                // setup ut
              var  ut = new OpenLayers.Layer.WMS(
                        "ut", 
"http://localhost/cgi-bin/mapserv?map=/var/www/vervo/config/default/pmapper_demo.map&";,
                   {    srs: 'EPSG:3003',
                        layers: 'ut',
                        styles: '',
                        format: 'image/png',
                        tiled: 'true',
                        tilesOrigin : "658390.746875,5121279.4",
                        transparent: 'true'
                    },
                    {buffer: 0} 
                );
                map.addLayer(ut);
                
                //Crea pop-up info
                var createPopup = function(response) {
                        var lonlat = map.getLonLatFromViewPortPx(this.xy);
                        var popup = new 
OpenLayers.Popup.FramedCloud("info",lonlat, null, 
response.responseText,null,true);
                        popup.setBackgroundColor("#c1cdc1");
                        popup.setOpacity(0.7);
                        map.addPopup(popup, true /* exclusive */);

                        function onFeatureUnselect(event) {
                                var feature = event.feature;
                                if(feature.popup) {
                                        map.removePopup(feature.popup);
                                        feature.popup.destroy();
                                        delete feature.popup;
                                        }//end if
                                      }//end function onFeatureUnselect
                                }; //end function (response)
                
                // support GetFeatureInfo
                map.events.register('click', map, function (e) {
                    var url = ut.getFullRequestString ({
                        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: ut,
                        FEATURE_COUNT: 50,
                        RADIUS: 5,
                        Srs: 'EPSG:3003',
                        Layers: 'ut',
                        Styles: '',
                        WIDTH: map.size.w,
                        HEIGHT: map.size.h,
                        format: 'image/png'},
        
"http://localhost/cgi-bin/mapserv.exe?map=/var/www/vervo/config/default/pmapper_demo.map&SERVICE=WMS&VERSION=1.1.1";
                        );
                    OpenLayers.loadURL(url, '', e, createPopup);
                    OpenLayers.Event.stop(e);
                });
                
                
                // build up all controls            
                map.addControl(new OpenLayers.Control.PanZoomBar({position: new 
OpenLayers.Pixel(2, 15)}));
                map.addControl(new OpenLayers.Control.Navigation());
                map.addControl(new OpenLayers.Control.Scale($('scale')));
                map.addControl(new OpenLayers.Control.MousePosition({element: 
$('location')}));
                map.zoomToExtent(bounds);
               
        }



_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[email protected]
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.

Rispondere a