Ringrazio per le tempestive risposte!
> da postgis puoi uscire direttamente con WKT, che openlayer "capisce al > volo" e > con un po' di fatica in più anche con GML o KML che vengono entrambi > ben > digeriti da openlayers. > > Chiaramente ti serve qualche forma più o meno sofisticata di cgi per > gestire > la richieste/risposte ma mapserver non è strettamente necessario. > Avevo pensato ad una soluzione del genere ma, immagino, che usando un file wkt o gml sarebbe necessario "aggiornarlo" ad ogni modifica delle tabelle, mentre usando un mapfile l'aggiornamento sarebbe automatico; mi spiego meglio: se aggiungo un punto alla tabella di postgis, dovrei ricreare il wkt, con un mapfile no...giusto? > Un esempio minimale di riproiezione di layer vettoriale EPSG:4326 > su raster EPSG:900913 (OSM) lo trovi qui: > > http://www.rigacci.org/openlayers/ > > Vedi l'html di "OpenLayers with WFS overlay". > Ho dato un'occhiata, e adattando il tuo script...mi ritrovo in mezzo al mare tra corsica e francia invece che in trentino!!! E non vedo il mio layer Il codice è: <script type="text/javascript"> var map = new OpenLayers.Map('map', { maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34), numZoomLevels: 19, maxResolution: 156543.0399, units: 'm', projection: new OpenLayers.Projection("EPSG:900913"), displayProjection: new OpenLayers.Projection("EPSG:3003") }); var osm = new OpenLayers.Layer.OSM.Mapnik("Mapnik"); var wfs = new OpenLayers.Layer.WFS("Comuni", "http://localhost/cgi-bin/mapserv?map=/var/www/mtsc-2.1/config/default/map.map", {layers:'confini_com', format:'image/png', transparent:'off'} ); map.addLayer(osm); map.addLayer(wfs); map.setBaseLayer(osm); map.addControl(new OpenLayers.Control.LayerSwitcher()); var extent = new OpenLayers.Bounds(653890.824038, 5121367.412500, 673982.300962, 5139410.087500); map.zoomToExtent(extent); </script> Usando questo codice, invece, con epsg 4326 mi ritrovo in trentino nella zona giusta ma non vedo il mio layer (e comunque non è la proiezione giusta!) Con epsg 3003 mi ritrovo in guinea! Il codice è: <script type="text/javascript"> var lat=46.203 var lon=11.228 var zoom=8 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.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:900913"), displayProjection: new OpenLayers.Projection("EPSG:3003") } ); layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik"); map.addLayer(layerMapnik); layerCycleMap = new OpenLayers.Layer.OSM.CycleMap("CycleMap"); map.addLayer(layerCycleMap); wfs = new OpenLayers.Layer.WFS("Comuni", "http://localhost/cgi-bin/mapserv?map=/var/www/mtsc-2.1/config/default/map.map", {layers:'confini_com', format:'image/png', transparent:'off'} ); map.addLayer(wfs); var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()); map.setCenter (lonLat, zoom); } </script> Grazie mille per i consigli! -beppe- Il giorno mer, 18/11/2009 alle 16.09 +0100, beppe ha scritto: > Salve a tutti, > cogliendo l'occasione offertami da un lavoro che devo fare, volevo > approfondire la conoscenza di openlayers. > La sintassi è, ad un primo approccio, "complicatina" per chi non ha basi > informatiche, ma abbastanza intuitiva per chi ha buona volontà! > Detto questo vi chiedo qualche consiglio: > il progetto consiste in un semplicissimo webgis formato da 2 soli layer > (motivo per cui volevo evitare p.mapper, ka-map ecc.). > Entrambi i layer sono "gestiti" da due tabelle postgis, di cui uno è un > semplice "sfondo", mentre sull'altro andrebbero fatte una serie di > ricerche (la tabella che contiene la geometria è collegate ad altre > tabelle del db). > Dubbi: > 1. nella documentazione che ho trovato in giro non mi sembra ci siano > modi per estrarre i dati direttamente, ma dovrei passare da mapserver, > quindi: creo un mapfile con i collegamenti alle tabelle (magari > creandomi delle view, in modo da estrarre tutti i dati che mi servono > per le ricerche) e crearmi la variabile: > layer = new OpenLayers.Layer.WMS ("MioLayer", "http://url...", > {layers:'nomelayer', format:'image/png', transparent:'true'}); > Giusto? > > 2. Per vestire la mappa volevo usare come "sfondo" (layer basic) gli > strati offerti dal portale cartografico nazionale (ortofoto e igm > 25000). C'è qualche "controindicazione" per la quale è meglio usare osm > o mapnik? > > 3. Come gestire le proiezioni...questo è il punto che più mi angoscia!!! > I miei layer sono in epsg 3003, quelli del portale cartografico che mi > interessano hanno epsg 32632 (se non sbaglio), mentre openstreetmap usa > un'altra proiezione ancora. Nei vari esempi che ho trovato sul sito di > openlayers ci sono diverse sintassi per gestire le proiezioni, > sicuramente equivalenti, ma che possono confondere chi ha poca > esperienza come me! > > Nell'attesa di consigli e "dritte" mi metto al lavoro...e che Dio (o chi > per lui) me la mandi buona! > > Saluti > > -beppe- _______________________________________________ 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.
