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.
