Related Plugins and Tags

QGIS Planet

PDF reports with embedded maps

Printing is always one of the more difficult parts in a web mapping application. There are solutions like the MapFish Print module or the built-in QGIS WYSIWYG PDF printing. But very often users do not want only a map on their print output, but collected information stored in a database with images, etc. - and a matching map. This is the domain of database reporting tools like JasperReports. They provide desktop tools for designing complex reports with texts, graphics, images, tables, etc. and server software for web applications. But how to include a matching map - a map with application parameters like the bounding box or a list of active layers, etc.?

Sourcepole is releasing the missing link between high-quality map printing and database reports, an extension for JasperReports/iReport. This extension makes it easy to embed maps served with the standardized Web Map Service (WMS) protocol.

With this extension installed as plugin for iReport Designer, you have all the reporting features of JapserReports plus a new toolbox component for embedding maps.

This allows you to create multi-page reports with embedded maps using parameters from your web mapping application and complex Jasper expressions.

Source and documentation of the WMS map extension for Jasper Reports is available on Github and binaries as Github downloads

Many thanks to Mika from Panter for implementing the Java stuff and the Canton of Zurich for sponsoring this useful piece of Open Source software.

@PirminKalberer

PDF reports with embedded maps

Printing is always one of the more difficult parts in a web mapping application. There are solutions like the MapFish Print module or the built-in QGIS WYSIWYG PDF printing. But very often users do not want only a map on their print output, but collected information stored in a database with images, etc. - and a matching map. This is the domain of database reporting tools like JasperReports. They provide desktop tools for designing complex reports with texts, graphics, images, tables, etc. and server software for web applications. But how to include a matching map - a map with application parameters like the bounding box or a list of active layers, etc.?

Sourcepole is releasing the missing link between high-quality map printing and database reports, an extension for JasperReports/iReport. This extension makes it easy to embed maps served with the standardized Web Map Service (WMS) protocol.

With this extension installed as plugin for iReport Designer, you have all the reporting features of JapserReports plus a new toolbox component for embedding maps.

This allows you to create multi-page reports with embedded maps using parameters from your web mapping application and complex Jasper expressions.

Source and documentation of the WMS map extension for Jasper Reports is available on Github and binaries as Github downloads

Many thanks to Mika from Panter for implementing the Java stuff and the Canton of Zurich for sponsoring this useful piece of Open Source software.

@PirminKalberer

FOSSGIS 2013: Mapfish Appserver

Mapfish Appserver is a platform for building web mapping applications using OGC standards and the Mapfish REST protocol.

Slides from FOSSGIS 2013 in Rapperswil (in german).

FOSSGIS 2013: Mapfish Appserver

Mapfish Appserver is a platform for building web mapping applications using OGC standards and the Mapfish REST protocol.

Slides from FOSSGIS 2013 in Rapperswil (in german).

Faster maps with progressive WMS

The good old OGC WMS has many advantages compared to tiled maps:

  • Continious zoom levels
  • Support for different projections
  • Combination of multiple layers in one request
  • Higher resolutions for printing
  • Better labelling
  • No maintenance needed when updating data

Well known disadvantages are scalability issues for high-traffic sites and a slower response time for complex maps.

The second point can be significantly improved by using a technique known from the progressive JPEG format. Before loading a map with full resolution, a map image with a lower resolution is requested from the server. This results in a better response time, because rendering and transmitting of the low resolution image is significantly faster. The biggest effect on rendering time is in combination with raster layers, but also for vector layers the improvement can be substantial.

High resolution:

Low resolution:

The technique can be easily applied to any WMS using this basic OpenLayers implementation.

There is much room for improvements. The low resolution layer could be tiled, limited to certain zoom levels or having a larger extend for smoother panning.

QGISCloud has this optimization built into the QGIS Web-Client viewer, which helps collecting experience with a wide range of datasets.

Faster maps with progressive WMS

The good old OGC WMS has many advantages compared to tiled maps:

  • Continious zoom levels
  • Support for different projections
  • Combination of multiple layers in one request
  • Higher resolutions for printing
  • Better labelling
  • No maintenance needed when updating data

Well known disadvantages are scalability issues for high-traffic sites and a slower response time for complex maps.

The second point can be significantly improved by using a technique known from the progressive JPEG format. Before loading a map with full resolution, a map image with a lower resolution is requested from the server. This results in a better response time, because rendering and transmitting of the low resolution image is significantly faster. The biggest effect on rendering time is in combination with raster layers, but also for vector layers the improvement can be substantial.

High resolution:

Low resolution:

The technique can be easily applied to any WMS using this basic OpenLayers implementation.

There is much room for improvements. The low resolution layer could be tiled, limited to certain zoom levels or having a larger extend for smoother panning.

QGISCloud has this optimization built into the QGIS Web-Client viewer, which helps collecting experience with a wide range of datasets.

QGIS Server on Ubuntu Step-by-step

This post summarizes my notes about installing QGIS Server on Ubuntu, adding a QGIS project file to the server and using the WMS in an OpenLayers application.

Installation

First, it’s useful to figure out the Ubuntu version:

lsb_release -a

Since my server runs “lucid”, I add the following package sources to /etc/apt/sources.list (as described in the QGIS installation documentation)

deb http://qgis.org/debian lucid main
deb-src http://qgis.org/debian lucid main

Before we can install anything, we need to add the key and update the package list

gpg --keyserver keyserver.ubuntu.com --recv 1F9ADD375CA44993
gpg --export --armor 1F9ADD375CA44993 | sudo apt-key add -
sudo apt-get update

Now we can install QGIS Server and the necessary Apache package

sudo apt-get install qgis-mapserver libapache2-mod-fcgid

It never hurts to restart Apache :)

sudo /etc/init.d/apache2 restart

Let’s test the installation before we proceed. The GetCapabilities request should already work

http://10.101.21.28/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities

Adding a QGIS project file

It’s time to add a QGIS project to our server. To do that, we move to the QGIS Server folder

cd /usr/lib/cgi-bin

where you should find qgis_mapserv.fcgi and wms_metadata.xml.
I’ve decided to have one folder for each project file. My first project is “vienna”.

sudo mkdir vienna
cd vienna

qgis_mapserv.fcgi and wms_metadata.xml can now be linked into this new folder

sudo ln -s ../qgis_mapserv.fcgi .
sudo ln -s ../wms_metadata.xml .

The only thing that’s missing anymore is a QGIS project file. It can be copied or linked into the folder. After restarting Apache, we should be good to go.

Let’s test the setup using “Add WMS Layer” in QGIS by adding the service URL such as

http://10.101.21.28/cgi-bin/vienna/qgis_mapserv.fcgi

and ticking “Ignore GetMap URI …” and “Ignore GetFeature URI …”.

After clicking “Connect”, all layers from the project file we added should get listed and we can select and load them.

QGIS Server can serve as many project files as you want. There a different ways to organize your server but I would simply add a new folder (like the “vienna” folder in this example) and link in the executable and project file.

Using QGIS Server WMS in OpenLayers

Of course QGIS Server doesn’t just talk to QGIS Desktop but to any other WMS client that conforms to the standard. One classic use case is to add the WMS layers to an OpenLayers application. This is rather simple but I’ll add it here for the sake of completeness:

I used to have a Geoserver WMS base layer in my application. The only lines of code that needed to be changed to migrate to QGIS Server were the service URL and the layer names.

    wms = new OpenLayers.Layer.WMS(
        'roads', "http://10.101.21.28/cgi-bin/vienna/qgis_mapserv.fcgi",
        {
            layers: 'roads', 
            format: 'image/png';
            bgcolor: '#fafafa'
        }, 
        {
            buffer: 1, 
            isBaseLayer: true, 
            graphicZIndex: 0, 
        }
    );

Standardized services are great!


QGIS Server on Windows

Want to finally try QGIS Server on your Windows system? Thankfully, Till Adams has written a new HowTo for QGIS Server on Windows. Till shows how to install OSGeo4W version and how to get it running.

If you first want to see what QGIS Server and QGIS Webclient can do, check Webgis-Uster homepage by Andreas Neumann.


FOSSGIS 2011: Webgis mit QGIS und GeoExt

Neues vom QGIS Server

Der Vortrag zeigt die Fortschritte von QGIS Server auf, illustriert auch anhand von Beispielen aus der Praxis. QGIS Server kann neu .qgs Projektfiles aus dem Desktop-GIS-Bereich als zentrale Konfigurationsdatei von Webdiensten (derzeit nur WMS) verwenden. Das bietet verschiedene Vorteile:

  • Desktop-GIS, Web-GIS und WMS aus der gleichen Konfigurationsdatei
  • kein manuelles Editieren von .map-Files - auch Mapserver-Laien können nun sehr einfach Webdienste erstellen
  • Übernahme von Druck-Layouts für das Drucken im Web (derzeit in Arbeit)
  • Verwendung der neuen Label-Engine und der erweiterten Symbolisierungsmöglichkeiten aus der neuen Symbology-Engine

Die Client-Komponente wurde mit GeoExt (OpenLayers, ExtJS,GeoExt) realisiert. Es werden soviele Konfigurationen wie möglich aus dem Desktop-GIS-Bereich in den Web-GIS-Bereich übernommen, wie z.b. der Projektname, die Attributdatenbehandlung (Spaltenunterdrückung, Spaltenaliases, etc.), das Selektierbarmachen von Layern, sowie das Verwenden bereits vordefinierter Drucklayouts.

Wo möglich wurde der bestehende WMS Standard verwendet, wo nötig, wurden Erweiterungen im WMS-Protokoll vorgenommen, vorwiegend beim Drucken, aber auch bei den getFeatureInfo und getCapabilities Requests.

Der Vortrag zeigt produktive Beispiele aus dem GIS der Stadt Uster und zeigt welche Arbeitsschritte auf dem Server und dem Client notwendig sind, um ein QGIS-Projekt ins Web zu bringen.

Präsentation

FOSSGIS 2011: Webgis mit QGIS und GeoExt

Neues vom QGIS Server

Der Vortrag zeigt die Fortschritte von QGIS Server auf, illustriert auch anhand von Beispielen aus der Praxis. QGIS Server kann neu .qgs Projektfiles aus dem Desktop-GIS-Bereich als zentrale Konfigurationsdatei von Webdiensten (derzeit nur WMS) verwenden. Das bietet verschiedene Vorteile:

  • Desktop-GIS, Web-GIS und WMS aus der gleichen Konfigurationsdatei
  • kein manuelles Editieren von .map-Files - auch Mapserver-Laien können nun sehr einfach Webdienste erstellen
  • Übernahme von Druck-Layouts für das Drucken im Web (derzeit in Arbeit)
  • Verwendung der neuen Label-Engine und der erweiterten Symbolisierungsmöglichkeiten aus der neuen Symbology-Engine

Die Client-Komponente wurde mit GeoExt (OpenLayers, ExtJS,GeoExt) realisiert. Es werden soviele Konfigurationen wie möglich aus dem Desktop-GIS-Bereich in den Web-GIS-Bereich übernommen, wie z.b. der Projektname, die Attributdatenbehandlung (Spaltenunterdrückung, Spaltenaliases, etc.), das Selektierbarmachen von Layern, sowie das Verwenden bereits vordefinierter Drucklayouts.

Wo möglich wurde der bestehende WMS Standard verwendet, wo nötig, wurden Erweiterungen im WMS-Protokoll vorgenommen, vorwiegend beim Drucken, aber auch bei den getFeatureInfo und getCapabilities Requests.

Der Vortrag zeigt produktive Beispiele aus dem GIS der Stadt Uster und zeigt welche Arbeitsschritte auf dem Server und dem Client notwendig sind, um ein QGIS-Projekt ins Web zu bringen.

Präsentation

FOSSGIS 2011: Webgis mit QGIS und GeoExt

Neues vom QGIS Server

Der Vortrag zeigt die Fortschritte von QGIS Server auf, illustriert auch anhand von Beispielen aus der Praxis. QGIS Server kann neu .qgs Projektfiles aus dem Desktop-GIS-Bereich als zentrale Konfigurationsdatei von Webdiensten (derzeit nur WMS) verwenden. Das bietet verschiedene Vorteile:

  • Desktop-GIS, Web-GIS und WMS aus der gleichen Konfigurationsdatei
  • kein manuelles Editieren von .map-Files - auch Mapserver-Laien können nun sehr einfach Webdienste erstellen
  • Übernahme von Druck-Layouts für das Drucken im Web (derzeit in Arbeit)
  • Verwendung der neuen Label-Engine und der erweiterten Symbolisierungsmöglichkeiten aus der neuen Symbology-Engine

Die Client-Komponente wurde mit GeoExt (OpenLayers, ExtJS,GeoExt) realisiert. Es werden soviele Konfigurationen wie möglich aus dem Desktop-GIS-Bereich in den Web-GIS-Bereich übernommen, wie z.b. der Projektname, die Attributdatenbehandlung (Spaltenunterdrückung, Spaltenaliases, etc.), das Selektierbarmachen von Layern, sowie das Verwenden bereits vordefinierter Drucklayouts.

Wo möglich wurde der bestehende WMS Standard verwendet, wo nötig, wurden Erweiterungen im WMS-Protokoll vorgenommen, vorwiegend beim Drucken, aber auch bei den getFeatureInfo und getCapabilities Requests.

Der Vortrag zeigt produktive Beispiele aus dem GIS der Stadt Uster und zeigt welche Arbeitsschritte auf dem Server und dem Client notwendig sind, um ein QGIS-Projekt ins Web zu bringen.

Präsentation

FOSSGIS 2011: SDI-Architektur mit verteilter Datenhaltung

Aggregation von OGC Diensten

Um OGC-Dienste verschiedener Anbieter (z.B. Bundesländer) zu einem zentralen Dienst zusammenzufassen, müssen neben der Kaskadierung noch einige weitere Operationen ausgeführt werden. Eine hohe Performance und Ausfallsicherheit kann mit einem Tile-Cache auf Basis der aggregierten Dienste gewährleistet werden. Dieser Vortrag zeigt die Problempunkte, die es bei bei einer solchen SDI-Architektur zu berücksichtigen gilt und stellt entsprechende Lösungen vor.

Präsentation

FOSSGIS 2011: SDI-Architektur mit verteilter Datenhaltung

Aggregation von OGC Diensten

Um OGC-Dienste verschiedener Anbieter (z.B. Bundesländer) zu einem zentralen Dienst zusammenzufassen, müssen neben der Kaskadierung noch einige weitere Operationen ausgeführt werden. Eine hohe Performance und Ausfallsicherheit kann mit einem Tile-Cache auf Basis der aggregierten Dienste gewährleistet werden. Dieser Vortrag zeigt die Problempunkte, die es bei bei einer solchen SDI-Architektur zu berücksichtigen gilt und stellt entsprechende Lösungen vor.

Präsentation

FOSSGIS 2011: SDI-Architektur mit verteilter Datenhaltung

Aggregation von OGC Diensten

Um OGC-Dienste verschiedener Anbieter (z.B. Bundesländer) zu einem zentralen Dienst zusammenzufassen, müssen neben der Kaskadierung noch einige weitere Operationen ausgeführt werden. Eine hohe Performance und Ausfallsicherheit kann mit einem Tile-Cache auf Basis der aggregierten Dienste gewährleistet werden. Dieser Vortrag zeigt die Problempunkte, die es bei bei einer solchen SDI-Architektur zu berücksichtigen gilt und stellt entsprechende Lösungen vor.

Präsentation

  • Page 1 of 1 ( 14 posts )
  • wms

Back to Top

Sustaining Members