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
Last revisionBoth sides next revision
tecnica:gps_cartografia_gis:beyond_mapserver [2011/08/09 10:55] – [QGIS Web Client] niccolotecnica:gps_cartografia_gis:beyond_mapserver [2012/03/22 11:52] – [QGIS Web Client] 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 =====
  
-  * Demo: [[http://webgis.uster.ch/]].+  * Readme e download: [[https://github.com/qgis/qgis-web-client/]] 
 +  * 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>%%''.
 +
 +===== 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 294:
  
 ===== 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.txt · Last modified: 2012/03/22 11:54 by niccolo