User Tools

Site Tools


tecnica:gps_cartografia_gis:beyond_mapserver

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tecnica:gps_cartografia_gis:beyond_mapserver [2011/08/09 10:56] – [QGIS Web Client] niccolotecnica:gps_cartografia_gis:beyond_mapserver [2012/03/22 11:54] (current) – [PyWPS] niccolo
Line 7: Line 7:
   * [[http://www.tinyows.org/]]   * [[http://www.tinyows.org/]]
  
-%%http://localhost/cgi-bin/tinyows?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetCapabilities%%+Installazione versione 1.0.0:
  
-Il file di configurazione predefinito è **''/etc/tinyows/config.xml''**, per usarne uno diverso bisogna impostare la variabile d'ambiente **''TINYOWS_CONFIG_FILE''**. Un metodo per impostare la variabile è quello di creare uno script shell, ad esempio **''/usr/lib/cgi-bin/tinyows-demo''** che contiene:+<code> 
 +./configure 
 +make && make install 
 +</code> 
 + 
 +Viene creata la directory **''/usr/local/share/tinyows/''**, l'eseguibile **''tinyows''** deve essere copiato a mano in **''/usr/lib/cgi-bin/''**. Pare che la patch per risolvere il [[http://www.tinyows.org/trac/wiki/LibxmlSchemaGmlBug|bug di Libxml con GML 3.1.1]] sia già applicata nei sorgenti, contrariamente a quanto scritto nella pagina wiki. 
 + 
 +Il file di configurazione predefinito è **''/etc/tinyows.xml''**, ma conviene creare una directory **''/etc/tinyows/''** in modo da poterne avere più di uno. Per indicare il file di configurazione da usare bisogna impostare la variabile d'ambiente **''TINYOWS_CONFIG_FILE''**. Un metodo per impostare la variabile è quello di creare uno script shell, ad esempio **''/usr/lib/cgi-bin/tinyows-demo''** che contiene:
  
 <code bash> <code bash>
Line 27: Line 34:
 SetEnvIf Request_URI "/cgi-bin/tinyows-demo" TINYOWS_CONFIG_FILE=/etc/tinyows/demo/config.xml SetEnvIf Request_URI "/cgi-bin/tinyows-demo" TINYOWS_CONFIG_FILE=/etc/tinyows/demo/config.xml
 </file> </file>
-===== QGIS-Mapserver ===== 
  
-Fornisce un server WMS a partire da un progetto QGIS. Si installa il pacchetto Debian **qgis-mapserver**.+Per testarne il funzionamento si può richiedere una ''GetCapabilities'': 
 + 
 +%%http://localhost/cgi-bin/tinyows?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetCapabilities%% 
 + 
 +==== Debug ==== 
 + 
 +Per avere un po' di logging da TinyOWS dovrebbe essere sufficiente aggiungere qualcosa del genere nel file di configurazione: 
 + 
 +<code xml> 
 +<tinyows online_resource="http://127.0.0.1/cgi-bin/tinyows" 
 +    schema_dir="/usr/share/tinyows/schema/" 
 +    check_schema="0" 
 +    log="/tmp/tows.log" 
 +    log_level="1"> 
 +</code> 
 +===== QGIS Server ===== 
 + 
 +Modulo CGI allegato al programma QGIS, fornisce un server WMS a partire da un progetto QGIS. Si installa con il pacchetto Debian **qgis-mapserver**.
  
   * [[http://www.qgis.org/wiki/Web_server]]   * [[http://www.qgis.org/wiki/Web_server]]
Line 95: Line 118:
   * **php5-xsl**   * **php5-xsl**
   * **php5-curl**   * **php5-curl**
 +
 ===== QGIS Web Client ===== ===== QGIS Web Client =====
  
 +  * Readme e download: [[https://github.com/qgis/qgis-web-client/]]
   * Demo: [[http://webgis.uster.ch/]]   * Demo: [[http://webgis.uster.ch/]]
   * Bugs: [[http://hub.qgis.org/projects/qgis-web-client]]   * Bugs: [[http://hub.qgis.org/projects/qgis-web-client]]
-  * Readme: [[https://github.com/qgis/qgis-web-client/blob/master/readme.txt]] 
  
 Come prelevare il codice aggiornato: Come prelevare il codice aggiornato:
Line 111: Line 135:
 **''js/GlobalOptions.js''** **''js/GlobalOptions.js''**
  
-:!: **ATTENZIONE!** Non è ben chiaro il motivoma il parametro **''serverAndCGI''** deve puntare ad un URL **sullo stesso dominio** dell'applicativo WebGIS, altrimenti la mappa appare vuota e genera alcuni errori JavaScript.+:!: **ATTENZIONE!** Le richieste **''GetCapabilities''**, **''GetFeatureInfo''** e **''GetPrint''** devono essere indirizzate allo stesso host che ospita l'applicazione webcioè il parametro **''serverAndCGI''** **deve puntare allo stesso host dove risiede l'applicazione web**, altrimenti la mappa appare vuota e genera alcuni errori JavaScript. È la limitazione **[[wp>Same origin policy]]** di **[[wp>XMLHttpRequest]]**. Le richieste **''GetMap''** non avrebbero questa limitazione.
  
 <code javascript> <code javascript>
Line 117: Line 141:
 var serverAndCGI = "http://www.faunalia.it/cgi-bin/qgis-ms-demo/qgis_mapserv.fcgi"; var serverAndCGI = "http://www.faunalia.it/cgi-bin/qgis-ms-demo/qgis_mapserv.fcgi";
 var epsgcode = 3003; var epsgcode = 3003;
-var overviewLayer = new OpenLayers.Layer.WMS(...); 
  
 var MapOptions = { var MapOptions = {
     ...     ...
 +    units: "m",
     maxScale:5000,     maxScale:5000,
     minScale:8000000,     minScale:8000000,
Line 128: Line 152:
 var OverviewMapOptions = { var OverviewMapOptions = {
     ...     ...
 +    units: "m",
     maxScale:500000,     maxScale:500000,
     minScale:16000000,     minScale:16000000,
     ...     ...
 } }
 +
 +var overviewLayer = new OpenLayers.Layer.WMS(...);
 </code> </code>
  
Line 170: Line 197:
  
 :!: **ATTENZIONE!** Se tutto è configurato a dovere gli script wsgi sono elaborati dall'interprete Python quando vengono richiesti dal browser. Tuttavia - in caso di errata configurazione - potrebbero essere serviti come testo inalterato, rivelando informazioni sensibili quali le credenziali per l'accesso al database. Per questo motivo è consigliato spostare gli script wsgi in una directory **fuori dalla DocumentRoot** e configurare opportunamente le direttive ''WSGIScriptAlias'' e ''WSGIScriptAliasMatch''. :!: **ATTENZIONE!** Se tutto è configurato a dovere gli script wsgi sono elaborati dall'interprete Python quando vengono richiesti dal browser. Tuttavia - in caso di errata configurazione - potrebbero essere serviti come testo inalterato, rivelando informazioni sensibili quali le credenziali per l'accesso al database. Per questo motivo è consigliato spostare gli script wsgi in una directory **fuori dalla DocumentRoot** e configurare opportunamente le direttive ''WSGIScriptAlias'' e ''WSGIScriptAliasMatch''.
 +
 ==== Query ==== ==== Query ====
  
Line 212: Line 240:
 Attenzione al sistema di riferimento delle geometrie, che deve essere lo stesso usato in ''js/GlobalOptions.js''. Attenzione al sistema di riferimento delle geometrie, che deve essere lo stesso usato in ''js/GlobalOptions.js''.
  
-==== URL ====+==== Parametri GET ====
  
 Nell'URL si possono passare al volo alcuni parametri: Nell'URL si possono passare al volo alcuni parametri:
Line 218: Line 246:
 ^ ''lang''           | Impostazione della lingua (es. **''en''**).  | ^ ''lang''           | Impostazione della lingua (es. **''en''**).  |
 ^ ''visibleLayers''  | Elenco separato da virgole dei layer visibili all'avvio.  | ^ ''visibleLayers''  | Elenco separato da virgole dei layer visibili all'avvio.  |
 +
 ==== Usare proiezioni extra con proj4js ==== ==== Usare proiezioni extra con proj4js ====
  
Line 233: Line 262:
  
 Nell'elenco dei layer a sinistra della pagina web, i layer vengono organizzati gerarchicamente come nel progetto QGIS (click destro su layers, //Add group//, che nel file del progetto si traduce in una sezione ''%%<qgis>%%'', ''%%<legend>%%'', ''%%<legendgroup>%%''. Nell'elenco dei layer a sinistra della pagina web, i layer vengono organizzati gerarchicamente come nel progetto QGIS (click destro su layers, //Add group//, che nel file del progetto si traduce in una sezione ''%%<qgis>%%'', ''%%<legend>%%'', ''%%<legendgroup>%%''.
 +
 +===== Lizmap Web Client =====
 +
 +  * [[http://hub.qgis.org/projects/lizmapwebclient]]
 +
 +Lizmap Web Client is a complete web application dedicated to show dynamic maps created with Qgis.
 +
 +It is build with Jelix (a PHP framework), Jquery (a Javascript framework) and OpenLayers (a javascript set of tools to create and display maps in a web page).
 +
 +It uses QgisServer as the map server. Lizmap Web Client needs the Qgis projects data to be send to the server via Lizmap Plugin, a python plugin which help to configure and publish a web map from a project.
 +
 +===== PyWPS =====
 +
 +  * http://pywps.wald.intevation.org/
 +
 +==== Installazione ====
 +
 +L'installazione ufficiale (versione 3.2.1) prevede di scompattare l'archivio ed eseguire come root:
 +
 +<code>
 +python setup.py install
 +</code>
 +
 +Ma c'è un bug segnalato in questo [[http://lists.wald.intevation.org/pipermail/pywps-devel/2011-November/001243.html|messaggio]], bisogna patchare ''setup.py''.
 +
 +Vengono aggiunti questi file/directory in **''/usr/local/''**:
 +
 +<code>
 +./bin/wps.py
 +./lib/python2.6/dist-packages/pywps-3.2.1-py2.6.egg/
 +./lib/python2.6/dist-packages/easy-install.pth
 +</code>
 ===== Allestire una demo integrata ===== ===== Allestire una demo integrata =====
  
Line 243: Line 304:
  
 ===== Altri componenti software ===== ===== Altri componenti software =====
- 
  
   * [[http://geoscript.org/]] Libreria geografica per Python e JavaScript.   * [[http://geoscript.org/]] Libreria geografica per Python e JavaScript.
   * [[http://leaflet.cloudmade.com/]] Libreria JavaScript alternativa a OpenLayers   * [[http://leaflet.cloudmade.com/]] Libreria JavaScript alternativa a OpenLayers
tecnica/gps_cartografia_gis/beyond_mapserver.1312880160.txt.gz · Last modified: 2011/08/09 10:56 by niccolo