Using MetaSearch plugin to search and load (meta)data from your National Georegister

We (mostly Tom Kralidis, Angelos Tzotsos with some additions by me) just released the MetaSearch Catalogue Client plugin for QGIS. The new plugin is an update of the CSWClient plugin from NextGIS. This new MetaSearch plugin makes searching metadata and using the services peanuts!

A Catalog Service for the Web (CSW), for example provided by the Dutch clearinghouse Nationaal Georegister, contains metadata about geographic data and services. The metadata not only provide descriptions, but can also contain hyperlinks to the services to directly view (e.g. WMS) or load (e.g. WFS and WCS) the geographic information.

Search and result based on several keywords in combination with a spatial constraint

Search and result based on several keywords in combination with a spatial constraint

Continue reading

Generate series of maps with Python script

Sometimes you need to produce a series of similar thematic maps. The only difference is the field used to colour areas or show graduated symbols. Classifications or maximal symbol sizes are identical. For large numbers of maps it is quite annoying to repeat the same actions in QGIS over and over again. Moreover, mistakes are easily made this way. This article explains how the production of large numbers of maps can be automated with a Python script. All files needed to try this method are available in a ZIP file. This is a modified version of a previous article. This new method works better and faster than the previous one en works the same for Windows and Linux.

Continue reading

Generate a series of maps 2 (Linux)

In a previous article I described how you can let QGIS generate a series of thematic maps with a batch file. This method was meant for the Windows version of QGIS. Now I have written a similar shell script for Linux (‘projectsnapshots’). You can find it in the ZIP file included with this article. It also contains all other files you need to test the script and an example of the result. The result consist of a series of images and a HTML showing all maps. The content could be copied and pasted in a word processing file. Before the script can be run, you have to make it executable. For further instructions I refer to the previous article. The script was tested with openSUSE 12.3. It works with QGIS 1.9.0-Master, but unfortunately not with QGIS 1.8.

Shell script to generate series of maps

Download ZIP file with shell script and sample files

Temporary Fix for OpenLayers Plugin

Current development version of QGIS ( upcoming QVIS 2.0 ) has undergone a nessecary upgrade of the Python-Cpp glue (SIP) which temporarily broke almost all python plugins. Currently plugin devs are busy fixing their plugins to be usable on time for the real launch of QGIS 2.0.

One plugin notably missing plugin is the OpenLayers-plugin, which is very usefull to use Openstreetmap (or Google or Bing) as a quick reference underground in QGIS. In the mailinglist the OpenLayers-plugin made it clear that there was currently no time available to fix this in a way they want it to be fixed (that is in a way that the plugin keeps working in both 1.8 and 2.0) and that there will be time to work on it during the QGIS hackfest in Brighton in september.

The good news is that the code of the plugins is available on Github. Because it was just easier to fix it only for QGIS 2.0 I did a quick fix to be able to use the plugin on my own build of QGIS (users of QGIS 1.8 should use the official version). The fixes you can find in my Github repo.

This fixed plugins is available for download here, but note that you can only use it by downloading it and unpacking it in the right plugin directory. On Linux this is ~/.qgis2/python/plugins and on Windows somewhere near C:\Documents and Settings\you\.qgis2\python\plugins. Note also that this is a temporary hack and that in time there will be an offical ( better :-) ) fix from the original authors.

Combining the best of Top10NL, BAG & OSM in QGIS

For some time now I’ve been using the BAG buildings in QGIS as an alternative to the Top10NL buildings. The BAG buildings are more accurate, after all. This is not to disqualify the Top10NL, on the contrary: each geo data set has its own merits. The Top10NL is unbeatable regarding terrain details. As for the Open Street Map (OSM), that would of course be the road lines, which is updated daily by a community of enthusiasts. As the Top10NL usually lags behind a few years, it is tempting to use the OSM roads as an alternative to the Top10NL roads. But can the OSM roads be rendered just as if they look like the Top10NL roads? The answer is: yes, if you keep using a few specific lines of the Top10NL. Here’s a sample of Highway junction Raasdorp near Haarlem-Amsterdam, where the brand new A5 highway is already available in OSM but not yet in the Top10NL (made in QGIS 1.8)

Using Top10NL, BAG, and OSM to render an up-to-date map in QGIS 1.8Top10NL (april 2013/from aerial photo 2011), OSM (22 june 2013) and BAG (april 2013) to render an actual map.

The Dutch OSM roads are downloadable als shapefiles from When using Top10NL, you do need to convert the OSM roads to the RD coordinate system, which is easy in QGIS 1.8. Add the OSM vector layer “Roads”, select it with right mouse button and choose “Save as…”. Choose ESRI Shapefile and select the correct CRS (Amersfoort / RD New, EPSG:28992). This results in a shapefile of 264Mb. Add that layer to the Top10NL layers and off we go.

The Top10NL roads are polygons, allowing the exact width of each road to be rendered. OSM roads are lines, so all roads have the same width. This may sound like a disadvantage, but in practice this is no nuisance. The example above uses a scale of 1:25000, and roads that seem to be wider are actually double rendered lines in the data (for both sides of the road). The colouring of the roads is easy thanks to the attribute “type” that allows the colouring on values such as “trunk”, “motorway”, “primary”, “secondary”, etc. The Top10NL and OSM differ on occasion on wheter a road is a primary road or secondary road, but that only goes to show the subjectivity of such labeling. Of course, the dark grey lining below the roads is easily done by adding the same map layer just below the coloured roads and making it slightly broader.

The Top10NL ‘problem’ of lining roads at non-level crossings is easily solved using OSM thanks to the attributes “Tunnel” and “Bridge”. For roads crossing above other roads of the same type, add that piece of road (filtered on “Bridge > 0″) plus another copy of that layer with dark grey lining slightly off-bias to both sides.

So no drawbacks? One obvious argument could be that OSM doesn’t guarantee a complete and correct map because it’s updated by so many different people. But as is well known these days, the quality of (at least the Dutch OSM) is astoundingly high. When zooming in, you can see some OSM lines not exactly following the actual line compared to the aerial photograph (a deviation of a meter is no exception), but on a scale such as 1:25000 that’s barely noticeable.

The great thing about all this newly available open source geodata is that QGIS offers such a wonderful vehicle to make the most out of these datasets and render a meaningful map image. The Top10NL is unbeatable regarding terrain image, the BAG on buildings, and the OSM on roads. I’m really looking forward to QGIS 2.0.

Jan-Willem van Aalst,

An advantage of using map services like WMS and WMTS is that your styling has been done by someone else. But this can turn into a disadvantage as well in case the colours of your overlay are similar to the colours in your remote base layer.

To show this I created an example using the Dutch Top10NL topographic map (WMTS) with my own random polygon layer in random colours on top of it. Because of the bright and colourful Top10NL my own features are hard to distinguish.


In QGIS master (soon QGIS 2.0) I discovered a new feature. For WMS and WMTS layers it is possible to adjust the colours. You can change brightness, saturation and contrast. It is also possible to display the layer in grayscale or adjust the colour (hue), for example to purples. (It’s still a matter of taste…)


Some examples:

adjusted brightness and contrast



België en Duitsland in RD met QGIS

De Basisregistratie Topografie (BRT/Top10NL) houdt ongeveer een kilometer na de landsgrens al op. Velen, bijvoorbeeld brandweermensen, hebben behoefte aan meer kaartbeeld over de landsgrens. Die kaartdata is er, en nog kosteloos ook. De Open Street Map (OSM) van de Europese landen is als Shapefiles te downloaden, o.a. via de Duitse GeoFabrik, Ze wordt aangeboden in WGS84 (latitude, longitude). QGIS 1.8 biedt een eenvoudige mogelijkheid om die te converteren naar het Rijksdriehoeksstelsel (EPSG:28992): maak een kopie van de Shapefile onder een andere naam (eventueel alleen het relevante geselecteerde gebied langs de grens “selectie opslaan als…”), en kies daarbij voor het geselecteerde CRS “Amersfoort New/RD”. QGIS maakt een nieuwe shapefile aan met het gewenste RD-coördinaatstelsel. Die Shapefile kun je toevoegen als kaartlaag in je QGIS RD-projectfile. Die Shapefile sluit aan de landsgrens mooi aan op de BRT kaartlagen.

Voorbeeldje van de stad Emden, bij Delfzijl:

OSM beeld van Emden, geconverteerd naar RD stelsel, en opgemaakt in het QGIS JW kleurenschema.

Voor de kleurenopmaak heb ik gebruikt gemaakt van de kleurcodes die ik eerder op dit forum heb gedeeld. De OSM versies (QML formaat, voor in QGIS) vind je hier. Per OSM sublaag (natural, landuse, buildings, roads, etc) vind je een stijlbestand. Let wel, de wegen heb je minimaal 2x nodig: één keer voor de zwarte omranding, en één keer voor de kleuren daar bovenop. En omdat de OSM roads ook een “tunnel” indicator hebben, kun je die ook als aparte kaartlaag toevoegen met een eigen QML opmaak.

Natuurlijk is OSM vooral gericht op wegen, en minder op terrein. Mij valt op dat er in de OSM terreinvlakken nogal wat ‘gaten’ zitten, afhankelijk per landsgebied, provincie of zelfs gemeente. Zo heeft Emden z’n zaakjes goed voor elkaar, maar de buurgemeenten hebben veel minder terreinvlakken beschikbaar (zie links bovenin bij het voorbeeld).


QGIS and WFS service caching

The dutch PDOK-services plugin is a simple plugin to load some national (PDOK) dataservices.

One of the available services is a Web Features Service (WFS), while a very handy service, calling the WFS service to load all roads in the Netherlands shows you the following result:

As you can see the blue bar are actually all the (road) features that you receive. This (rather) strange result is also what you get when you zoomed in to a much smaller area. One would expect that the features would be retrieved only within current Extent/BoundingBox, but QGIS show exact the same ‘bar’ of features.

But we/QGIS can make this work…

Continue reading

BAG building usage notations on Top10NL in QGIS

The building contours of BAG objects are much more precise than the standard built-up block shapes of the Top10NL topographic data set (aside from the fact that the BAG is more up-to-date than the Top10NL). The “BAG objects & addresses” data set also contains the usage function(s) of buildings. Using the BAG, it’s possible to quickly view locations of shops, entertainment areas, office parks, industrial zones and schools. But these usage functions are not part of a geometry column in the BAG, because a particular BAG residential object can have multiple usage functions (1:n relation). However, using the free Geon BAG convertor it’s possible to create a shapefile of BAG objects that include up to 2 usage functions per BAG residential object.

In QGIS, this point-shapefile may be used to visualise the usage function on top of the building contours. See the example below, using the following legend:

  • Green: shops, stores
  • Purple: entertainment, restaurants, club houses
  • Yellow: education
  • Pink: health
  • Blue: office
  • Brown: industry
  • Cyan: sports
  • Red: hotels
Map of part of Almere incl Top10NL, BAG buildling contours and usage functions

You can view the larger map including the full legend here.

The topographic map quickly shows the locations of stores, restaurants, office parks, schools, etc. A next step would be to color the entire area of a particular building instead of using a dot. However, this requires some more complex joining of attributes of tables. Anyone with a smart solution is most welcome to report it here.