Noto con vero piacere che, dopo il mio accorato appello, molta gente si
è mossa a compassione ... scherzi a parte ringrazio tutti! Grazie al vostro aiuto, openlayer continua a non volere stampare 'sto dannato layer, ma almeno ho fatto grossi passi in avanti: 1.OpenLayer visualizza la porzione giusta di territorio (basta Africa, Corsica o Nuova Zelanda!) 2. il mapfile è stato configurato in maniera (spero) corretta usando EPSG:4326, ed ora riesco "addirittura" a visualizzarlo in qgis (usando il plugin "MapFile tool"). 3. le chiamate getcapabilities e getfeature restituiscono valori "quasi" corretti Problemi: 1. il "quasi" è riferito alla sezione "featuretype" della chiamata getcapabilities, che mi da strani valori sul bounding box (credo!) <FeatureType> <Name>confini_com</Name> <Title>confini_com</Title> <SRS>EPSG:4326</SRS> <LatLongBoundingBox minx="-2.5e+07" miny="-2.5e+07" maxx="2.5e+07" maxy="2.5e+07"/> </FeatureType> se nel map file cambio il valore dell'epsg del layer postgis da 4326 (quello impostato da me) a 3003 (quello "originale" del layer), la bb mi stampa: <LatLongBoundingBox minx="-163.828" miny="-1.1161e+13" maxx="155.081" maxy="1.1161e+13"/> ma la chiamata getfeature genera: <gml:boundedBy> <gml:null>missing</gml:null> </gml:boundedBy> </wfs:FeatureCollection> 2. Se imposto epsg:4326 come proiezione generale del mapfile e richiamo mapserver con "mode=map" mi da pagina bianca, se invece uso epsg:3003 stampa correttamente il layer ma addio getcapabilities e getfeature. 3. In ogni caso, qualsiasi magheggio io provi, openlayer non funge Ho la sensazione che ci sia un problema di riproiezione che, tanto per cambiare, mi sfugge!!! Vi posto il map file e il pezzo di codice di openlayer...sentitevi liberi di mandarmi in @§£& ... io mi sono già offeso abbastanza! -beppe- ------------mapfile--------------- MAP NAME "Progetto prova" EXTENT #-205201.65625 5738005 -189123.625 5763243.5 653890.824038 5121367.412500 673982.300962 5139410.087500 PROJECTION "init=epsg:4326" END SIZE 800 600 SHAPEPATH "." IMAGETYPE aggpng24 WEB METADATA wfs_title "Progetto prova" wfs_onlineresource "http://localhost/vervo_data/ol_prove/map.map&" #wfs_srs "EPSG:4326 EPSG:900913 EPSG:3003" wfs_srs "EPSG:4326" END END OUTPUTFORMAT NAME "aggpng24" DRIVER "AGG/PNG" IMAGEMODE RGB END LAYER NAME 'confini_com' TYPE POLYGON CONNECTIONTYPE postgis CONNECTION "dbname='vervo' host=localhost port=5432 user='beppe' password='xxxxxxx'" DATA 'confini_com FROM public.dati_amm_terr using unique "id_dati_amm" using SRID=3003' PROJECTION "init=epsg:3003" END DUMP TRUE METADATA "wfs_title" "confini_com" "wfs_featureid" "id_dati_amm" END CLASS NAME 'confini_com' STYLE SYMBOL 0 SIZE 2 OUTLINECOLOR 0 0 0 COLOR 11 54 104 END END END END ---------------openlayer------------------- var lat=46.231 var lon=11.232 var zoom=10 var map; function init() { map = new OpenLayers.Map ("map", { controls:[ new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanZoomBar(), new OpenLayers.Control.LayerSwitcher(), new OpenLayers.Control.Permalink(), new OpenLayers.Control.MousePosition(), new OpenLayers.Control.Attribution()], maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34), maxResolution: 156543.0399, numZoomLevels: 19, units: 'm', projection: new OpenLayers.Projection("EPSG:4326"), //displayProjection: new OpenLayers.Projection("EPSG:4326") } ); layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik"); map.addLayer(layerMapnik); var wfs = new OpenLayers.Layer.WFS("Comuni", "http://localhost/cgi-bin/mapserv?map=/var/www/vervo_data/ol_prove/map.map&", { typename: 'confini_com'}); map.addLayer(wfs); var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()); map.setCenter (lonLat, zoom); } _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] 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. |
On Fri, Nov 27, 2009 at 12:22:37AM +0100, beppe wrote:
> <LatLongBoundingBox minx="-2.5e+07" miny="-2.5e+07" maxx="2.5e+07" > maxy="2.5e+07"/> Hai specificato un EXTENT nel mapfile ? --strk; Free GIS & Flash consultant/developer () ASCII Ribbon Campaign http://foo.keybit.net/~strk/services.html /\ Keep it simple! _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] 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. |
In reply to this post by Giuseppe Naponiello
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 [hidden email] 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. |
In reply to this post by Giuseppe Naponiello
> var bounds = new OpenLayers.Bounds( La proiezione che setti e' 3003 = Gauss Boaga fuso ovest. Pero' setti dei bounding che sono UTM (657732,5120937). Non so' se centra qualcosa con il tuo errore, ma comunque penso sia da correggere.... -- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] 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. |
In reply to this post by Giuseppe Naponiello
Il giorno lun, 14/12/2009 alle 02.01 +0100, beppe ha scritto:
> La proiezione che setti e' 3003 = Gauss Boaga fuso ovest. > > Pero' setti dei bounding che sono UTM (657732,5120937). > > Non so' se centra qualcosa con il tuo errore, ma comunque penso sia da > correggere.... Giustissimo, da principiante non c'avevo nemmeno fatto caso!!! A questo punto mi chiedo da cosa può dipendere visto che ho copiato il codice generato da geoserver, il quale ha rilevato automaticamente sia la proiezione che la BBOX del layer!!! Grazie della dritta, a questo punto, però, non capisco come, nonostante l'errore, il layer venga visualizzato correttamente - con qgis ho provato a caricare un'ortofoto con proiezione gauss boaga e si sovrappongono correttamente -beppe- _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] 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. |
Free forum by Nabble | Edit this page |