Locatieserver: hectometerpaaltjes en percelen

Sinds kort is de PDOK Locatieserver ook gevuld met NWB gegevens (Nationaal Wegen Bestand) van Rijkswaterstaat. Standaard krijg je die bij een bevraging op de Locatieserver echter niet terug in je resultaat (zie de wiki voorbeelden).

Om dat mogelijk te maken moet je de zoek-url uitbreiden met een zogenaamde fq (Filter Query). Dus bijvoorbeeld ALLEEN zoeken naar de eerste tien hectometerpaaltjes op de A1:

https://geodata.nationaalgeoregister.nl/locatieserver/v3/suggest?q=a1&fq=+type:hectometerpaal

Of i.p.v. alleen zoeken op de typen: gemeente, woonplaats, weg, postcode en adres (de ‘default’ typen), kun je ook aangeven op ALLES te willen zoeken:

https://geodata.nationaalgeoregister.nl/locatieserver/v3/suggest?q=a1&fq=+type:*

In de PDOKServicesPlugin werd nog niet gebruik gemaakt van die Filter/fq mogelijkheid. Sinds vandaag is er een versie beschikbaar die dat WEL heeft. Het Geocoder-tabje in de plugin ziet er nu zo uit:

pdokservicesplugingeocodertab

Zoekend naar de ‘a10′ zie je adressen en wegen.

Wanneer je nu echter ‘Hectometerpaal’-type aanvinkt, verschijnen er ook opeens ‘hectometerpaal’ resultaten:

pdokservicesplugingeocodertabhmp.

Op dezelfde wijze kun je nu in QGIS ook zoeken op kadastrale percelen, door het type ‘Perceel’ aan te klikken: zoekend op ‘haarle’ bijvoorbeeld komen de perceelnummers direkt naar boven:

pdokservicesplugingeocodertab

Maar ook kun je natuurlijk zoeken op de kadastrale ‘aanduiding’, ‘gemeentecode’ of ‘sectie’!

En in combinatie met een mooie ondergrondkaart als de OpenTopokaart, die de Hectometerpaalbordjes daadwerkelijk toont, heb je op deze manier een hele mooie combinatie:

pdokservicesplugingeocoderopentopo

Happy QGISsing :-)

(English) AmsterdamTimeMachine

Via twitter: AmsterdamTimeMachine.nl.

Jan Hartman’s en WebMappers bloed, zweet en traantjes om een oude set kaarten van Amsterdam te georefereren: http://amsterdamtimemachine.nl.

6 XYZ-Map services met kaarten van Amsterdam, vanaf 1625 om een inkijkje in de geschiedenis van Amsterdam te hebben. En natuurlijk zo in QGIS te laden :-)

Altijd al eens de Waag willen zien in 1625?

debroen

Of Hollands Glorie op het IJ (als je de kaart teminste 135 graden draait :-) ):

vbercenrode

En wist je dat er OOK een Waag was op De Dam?

vberckenrodededam

Ga naar http://amsterdamtimemachine.nl voor de xyz url’s of download dit zip bestand met een QGIS project file.

Het zipje bevat een .qgs bestand welke je NU zo al project kunt laden in QGIS 2.18 of QGS 3.x. Maar er zit ook een bestandje ‘amsterdamtimemachine.nl.xml’ in, die je kunt importeren als setje ‘XYZ-services’ MITS je een QGIS versie nieuwer dan 3.1 hebt (dus als je een ontwikkelversie hebt, OF als je nog even wacht tot 3.2).

Happy QGISsing…

Maak een QgsLocator (Plugin) met PyQGIS

Wat is een Locator (plugin)

Een paar maanden geleden, voegde Nyall Dawson stilletjes een klein zoekinvoer(widget) toe aan QGIS: zie de linker benedenhoek:

locatorbel

Mensen die bekend zijn met QtCreator (de Qt-ontwikkelomgeving) zouden het kunnen herkennen als een ‘QtCreator Locator’ clone: een manier om (heel) snel in een project te kunnen zoeken op: woorden, classes, favorieten, help-onderwerken, bestanden enz enz.. Het is eigenlijk een alles kunnen om razendsnel iets op te zoeken OF op te starten. Zie ook de originele Qt documentatie.

Nyall had het briljante idee om zoiets ook toe te voegen aan QGIS… en hij deed dat ook. In de code heet dit een QgsLocator en het laad/registreert zogenaamde ‘QgsLocatorFilters’.
In een nieuwe QGIS kun je daar al direct zoeken op: Acties, Processing Algorithmen, Ruimtelijke Favorieten, Features in de actieve laag, Projectlagen en Project Layouts.
Om even te proberen, tik ‘bel…’ en je ziet dat er wat (buffer) gerelateerde Processing Algoritmen beschikbaar zijn.

Door er dan op te dubbelklikken start je het algorithme, of eigenlijk je start het in processing, supersnel en handig. Maar als je net een kaart van de wereld hebt geladen zoals in bovenstaand plaatje en je klikt daar op ‘Belgium’ dan zoom je naar dat object.

Maar het mooiste nog (vind ik), is dat je als (python) ontwikkelaar heel ‘gemakkelijk’ zelf zo’n QgsLocatorFilter kunt bouwen.

Het eerste wat er bij mij opkwam was: ‘Dit moet je gebruiken om een geocoder aan te roepen…’.

Dus, meteen proberen…

De Locator plugin bouwen

De crux is, om de zogenaamde ‘QgsLocatorFilter’ te implementeren ( Zie de QGIS API documentatie, de PyQGIS Api of de cpp headerfile).

Jouw implementatie van die Class is dan eigenlijk het werkpaard van je Locator Filter. Het zal de invoertekst nemen, hier iets mee doen (in ons geval naar een Online Geocoder sturen), the resultaten verzamelen en dan een rij ‘QgsLocatorResult’-objectjes ervan maken die dan in die zoekrij worden getoond. En het bepaalt wat er wordt gedaan wanneer de gebruiker op een zoekresultaat klikt.

Daarnaast moet je die Class natuurlijk nog even in QGIS lijmen:
– een mini plugin die je dan in de QGIS plugin repo kan zetten, zodat gebruikers je filter kunnen downloaden
– in de plugin ‘registeer’ je je QgsLocatorFilter zodat QGIS die opppikt en toont in de Locator zoekwidget (zie de Nominatim Locator Plugin als je wilt zien hoe dat wordt gedaan)

Sommige geocoders (Google…) hebben tegenwoordig een ‘api key’ nodig om te blijven werken. Daarvoor moet je op het kleine vergrootglas icoontje klikken, zodat er een menu verschijnt en je op ‘Configureren’ kan klikken.

configuremenu

Dat brengt je dan in de ‘Locator’ tab in de Opties Dialoog:

locatoroptions

Je kunt er daar voor kiezen om een Locator Filter altijd te activeren of juist uit te zetten.

Helemaal rechts zie je een (nu niet aktieve) configureerknop. Als jouw Locator ‘True’ retourneert in de code wanneer hasConfigWidget() wordt aangeroepen, dan wordt die knop actief en kun je zelf een (klein) configuratiedialoogje bouwen en tonen.

Een voorbeeldgeocoder: Nominatim_Locator_Plugin

Nominatim (latijn, ‘op naam’) is volgens de OpenStreetMap wiki “a tool to search OSM data by name and address and to generate synthetic addresses of OSM points (reverse geocoding)”. Lees erover in de OSM wiki of de OSM api informatie.

Ik heb nu een ‘Nominatim_Locator_Plugin’ gebouwd die precies dat doet: de QgsLocatorFilter interface implementeren. Je kunt deze zelf via de Plugin Manager van QGIS installeren: zoek op ‘Nominatim’ en installeer de ‘Nominatim Locator Filter’ plugin. Of … bekijk gewoon de Python code.

In die code zie dat dat we in de ‘fetchResults’ wachten tot de gebruiker 2 letters heeft getikt, en dan pas gaan zoeken.
De Nominatim service is nog een speciaal geval: het is gratis, maar het is NIET toegestaan het als een ‘suggest-service’ te gebruiken. Je mag dus niet letter voor letter zoeken, maar alleen op een volledig adres zoeken. Om hieraan te gehoorzamen heb ik toegevoegd dat je zoekterm moet eindigen op een ‘spatie': pas dan wordt het verzoek naar Nominatim gestuurd.

Het supermooie met Nominatim en OpenStreetMap is dat het alle talen kan verwerken. Dus als je in het nederlands
‘vrijheidsbeeld’ intikt, dan krijg je dus gewoon resultaat:

vrijheidsbeeld

Wat technische details
De methoden die je moet implementeren en de beschrijving ervan vind je in de api docs van de qgslocatorfilter.h headerfile.

Een belangrijk ding om je bewust van te zijn is dat het zoeken/ontvangen/tonen van de resultaten allemaal plaatsvindt buiten de ‘applicatie’-thread om. Ik dacht slim te zijn en dus de ‘requests’ naar de services asynchroon af te vuren, maar dat eindigde met een ‘gevecht om threads’. Dus mijn tip: gebruik synchrone HTTP voor je aanroepen.

Dit brengt me op welke Python module je moet gebruiken voor het HTTP-verkeer. In QGIS 2 plugins gebruikte men vaak de Requests-module, of gewoon httplib2 of bouwde hun eigen NetworkAccessManagers.
Het nadeel van het gebruiken van die externe of zelfgemaakte oplossingen is dat QGIS eigen Netwerkinstellingen zoals ‘Proxy Settings’ of ‘Network Timeout’ vaak genegeerd werden…

Voor deze plugin gebruikte ik deze module networkaccessmanager.py.

Het mooie eraan is dat het probeert om een dunne schil te zijn rondom QGIS’ eigen QgsNetworkAccessManager (die op zijn beurt weer een schil is om Qt’s QnetworkAccessManager).
Het gebruikt alle Proxy-instellingen die een gebruiker heeft ingesteld, en het kan ook uitstekend samenwerken met QGIS’ eigen authorisatie-modules en -configuraties, dus het HTTP verkeer wordt geauthoriseerd en geleid volgens de eigen systeeminstellingen.

De Boundless oplossing werkt goed, maar het zou nog mooier zijn als de (beetje kale) QgsNetworkAccessManager C++ implementatie kon worden uitgebreid om ‘m wat Python/gebruiksvriendelijke te maken. Zodat het wat eenvoudiger wordt om redirects, timeouts en speciale headers te behandelen. En zoals in de Boundless module ook kan: kiezen of je de requests synchroon of asynchroon (niet blokkerend) wilt hebben.

Ik heb hiervoor een QEP (QGIS Enhancement Proposal) aangemaakt, ik hoop dat er meer mensen in geinteresseerd zijn.

Toekomst

Een OpenSource project is natuurlijk nooit ‘klaar’, in de positieve zin van ‘nooit af’ :-)

Terwijl je aan het programmeren bent borrelen de ideeen al weer op:

– toch een configuratieschermpje toevoegen aan Nominatim, om bijvoorbeeld te kunnen zoeken op OSM tags (wat dacht je van “alle cafe’s in de de kaart die ik nu voor mijn neus heb”, of nog beter: hier in de buurt :-) )

– de ‘accept-language option’ van Nominatim gebruiken (als in gebruik de huidige ingestelde taal) om zo te kunnen zoeken op: Эйфелева башня of eiffeltoren en dan ook van OSM de resultaten in die taal terug te krijgen.

eiffeltowerrussion

– zoeken met de Google Maps api. Heb je dan wel een ‘api key’ voor nodige dus zul je een configuratieschermpje moeten maken (heb ik al af :-) )

– De PDOK locatieserver gebruiken…. uh… intussen af PDOK Locatieserver Locator Filter:

pdok_nominatim_postcode

– of andere interessante zoekservices gebruiken

Ik hoop dat ik wat interesse heb gewekt, en zie de ‘locators’ wel verschijnen op plugins.qgis.org

Ah, en nog wat tips voor Python QGIS / PyQGIS programmeurs:

Latest Python API docs (thanks Denis): https://qgis.org/pyqgis/master/

https://qgis.org/api/api_break.html (all QGIS2.x – QGIS3.x api breaks and fixes)

PDOK services plugin: nieuwe versie + services

Er zijn (zowel voor QGIS 2.x als voor QGIS 3.x) nieuwe versies van de PdokServicePlugin beschikbaar.

Altijd al eens willen zien hoeveel Rijksmonumenten er zijn?

pdokrijksmonumenten

Of welke Postcode6 gebieden de kortste (of langste) aanrijdtijd hebben voor de brandweer?

pdokpc6brandweerbereikbaarheidwms

Of misschien de WFS voor de Postcode4 gebieden gebruiken?

pdokpc4wfs

Naast het fixen van een aantal bugs, is de belangrijkste aanpassing een update van de PDOK-services lijst.

De nieuwe lagen op een rijtje (we gaan van 8645 naar 9684 lagen!):

# Nieuwe luchtfotos: 2017
# Beschermde Gebieden INSPIRE (geharmoniseerd)
# BRO Bodemkaart 1:50.000
# BRO Geomorfologischekaart 1:50.000
# BRO Geotechnisch sondeeronderzoek (CPT)
# CBS Postcode4 statistieken
# CBS Postcode4 statistieken
# CBS Postcode6 statistieken
# Hydrografie – Netwerk RWS (INSPIRE geharmoniseerd)
# Hydrografie – Physical Waters (INSPIRE geharmoniseerd)
# Statistical Units Grid
# Vervoersnetwerken – Gemeenschappelijke elementen (INSPIRE geharmoniseerd)
# Vervoersnetwerken – Kabelbanen (INSPIRE geharmoniseerd)
# Vervoersnetwerken – Luchttransport (INSPIRE geharmoniseerd)
# Vervoersnetwerken – Spoorwegen (INSPIRE geharmoniseerd)
# Vervoersnetwerken – Waterwegen (INSPIRE geharmoniseerd)
# Vervoersnetwerken Waterwegen RWS (INSPIRE geharmoniseerd)
# Vervoersnetwerken – Wegen (INSPIRE geharmoniseerd)
# Vervoersnetwerken Wegen RWS (INSPIRE geharmoniseerd)

PDOK services plugin: nieuwe services EN PDOK Locatieserver!

Een korte post om te laten weten dat er nieuwe versies beschikbaar zijn van de ‘PDOK services plugin’.

De Bodemkaart 1:50000 als WMS en WFS
De Bodemkaart 1:50000 als WMS en WFS

Voor QGIS3 is er de versie 3.1.0, en voor QGIS 2.x is er 0.16.

De belangrijkste verandering is nodig omdat de PDOK Geocoderservice (die nu wordt gebruikt) aan het eind van dit jaar verdwijnt.
Daarvoor in de plaats komt de PDOK Locatieserver (https://www.pdok.nl/nl/producten/pdok-locatieserver)
en die wordt nu in de plug als service aangeroepen.

Op dit moment alleen de zogenaamde ‘free’ service, maar in een volgende versie OF plugin zal de ‘suggest’ service
worden gebruikt in combinatie met de QgsLocator interface van QGIS.

Zoeken op Apollolaan in Amsterdam
Zoeken op Apollolaan in Amsterdam

Nieuwe services

Daarnaast zijn er een aantal nieuwe lagen bijgekomen: we springen van 7570 naar 8645 lagen!

De belangrijkste op een rijtje:

# Administratieve Eenheden (INSPIRE geharmoniseerd)
# BAG Terugmeldingen
# CBS Wijken en Buurten 2017
# Geluidskaarten Schiphol
# Geluidskaarten spoorwegen
# Geografische Namen (INSPIRE geharmoniseerd)
# Geomorfologischekaart 1:50.000 (zie screenshot: de Bodemkaart van Nederland)
# Transport Netwerken – Kabelbanen (INSPIRE geharmoniseerd)
# Vervoersnetwerken – Waterwegen (INSPIRE geharmoniseerd)

TopRaster lagen

Een set van al langer bestaande WMS lagen is de TopRaster kaartlagen: top25/50/100/250/500/1000raster. Nadeel van de inrichting is echter dat ze schaalafhankelijk zijn, MAAR daarbij in de schalen dat ze NIET zichtbaar zijn een wit vlak teruggeven. Daardoor is zo’n kaartlaag niet bruikbaar als tussenlaag in een project.

Om nu te zorgen dat de set van Raster services te gebruiken zijn, kun je ze natuurlijk stapelen, en QGIS zelf die kaartlagen uit laten schakelen wanneer ze niet in ‘zichtbereik’ zijn. Dat heb ik gedaan, je ziet dan zoiets:

Naarden in de 1:25000 Raster kaart
Naarden in de 1:25000 Raster kaart

Het is even wat gepiel, maar dan heb je een projectje wat je eventueel kunt gebruiken als basis project. Ik heb de project file even gezipped, en die is hier: PDOK TopRaster project te downloaden. Wel even unzippen voordat je het project kunt openen.

Plezier weer met QGIS en de plugin(s).

TopoTijdReis kaartlagen in QGIS

Aanpassing 15 april 2018: code geupdate, werkt nu in zowel QGIS2 als QGIS3

Al weer even geleden presenteerde Het Kadaster samen met ESRI the website TopoTijdReis. Een website met prachtig kaartmateriaal: verdeelt over 75 kaartlagen de scans van topografische data van Het Kadaster van 1815 tot en met 2015!

topotijdreis

Een website is mooi, maar dezelfde data kunnen gebruiken in bijvoorbeeld QGIS is nog leuker. Toen iemand mij benaderde of dat mogelijk was, heb ik geprobeerd om de lagen toe te voegen als ‘ArcGIS Mapserver layer’, wat mogelijk zou moeten zijn met QGIS 2.16 en hoger. Maar… ik kreeg het niet voor elkaar (en ernaar ‘googelende’ blijkbaar meer mensen niet)…

Maar… na wat gemopper van mij op Twitter dat ‘ze’ toch eens wat meer dit soort zaken m.b.v. OpenStandaarden zouden moeten ontsluiten, kreeg ik van het Kadaster het vriendelijke antwoord, dat de kaartlagen ook als WMTS beschikbaar zouden moeten zijn. Dat wil ik wel zien.

Eerst maar eens proberen op de WMTS link te klikken in een pagina als

http://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1950/MapServer…

Mmm, geen tiles. Gelukkig werkt het getCapabilities document wel:

En op basis daarvan is het in QGIS eenvoudig om de service te bevragen. Voer de capabilities url (of de verkorte versie zonder het /1.0.0/WMTSCapabilities.xml deel) in in het ‘WMS/WMTS kaartlaag toevoegen’ dialoog

addwmts

en de dialoog toont welke kaartlaag er op te halen is.

wmtslayer

Prachtig! Werkt!

haarlem1950

Maar het mooie aan de TopoTijdReis is natuurlijk dat je je de historie van een omgeving kunt bekijken door even door te tijd te reizen… We willen natuurlijk al die 75 kaartlagen ‘even’ laden in QGIS. Jammer dat elke laag in een aparte service is gedefineerd :-(

Ik zie twee mogelijkheden:
1) we zorgen dat die 75 lagen komen te staan in het pdok.json lagenbestand van de PDOKServicePlugin, maar dan nog moet je 75 keer klikken om alle lagen te bekijken (deze optie stel ik dus even uit tot iemand hier heel vriendelijk om vraagt…)
2) we schrijven wat Python code welke we in de Python Console kunnen uitvoeren om die 75 lagen te laden.

DOEN:
– open de Python Console die je vind als menu item in het Plugins menu
– open een bestandje door op het ‘nieuw bestand’ knopje te klikken (4e knopje van links)
– kopieer daarin de volgende regels:

OPMERKING: onderstaande code zou zowel in recente QGIS 2.x als QGIS 3.x versies moeten werken:

# create a layer group
layer_group = QgsProject.instance().layerTreeRoot().insertGroup(0, 'TopoTijdReis')
# make the group mutually exlusive (one layer visible at a time)
layer_group.setIsMutuallyExclusive(True)

# copied from http://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/
years = ['1815', '1820', '1821', '1823_1829', '1830_1849', '1850', '1857', '1858', '1861', '1862', '1865', '1866', '1868', '1870', '1871', '1872', '1880', '1883', '1886', '1888', '1889', '1893', '1899', '1900', '1901', '1902', '1904', '1908', '1909', '1910', '1912', '1915', '1918', '1919', '1920', '1922', '1925', '1929', '1931', '1935', '1937', '1940', '1942', '1943', '1947', '1948', '1949', '1950', '1951', '1952', '1953', '1955', '1962', '1963', '1965', '1970', '1971', '1973', '1975', '1976', '1978', '1980', '1984', '1988', '1990', '1994', '1995', '1996', '1997', '1999', '2006', '2010', '2011', '2014', '2015']

# for every year, create a layer
for year in years:
  layer = QgsRasterLayer("tileMatrixSet=default028mm&crs=EPSG:28992&layers=Historische_tijdreis_{0}&styles=default&format=image/jpgpng&url=http://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_{1}/MapServer/WMTS/".format(year, year), "TopoTijdReis {0}".format(year), "wms")
  # add it to the layer registry, without showing it yet
  # False, meaning not ready to add to legend
  if hasattr(qgis.core, 'QgsMapLayerRegistry'):
    # QGIS 2.x
    QgsMapLayerRegistry.instance().addMapLayer(layer, False)
  else:
    # QGIS 3.x
    QgsProject.instance().addMapLayer(layer, False)
  # add it on top of the group
  layer_group.insertLayer(0, layer)

Door nu op het blauwe ‘Play’-knopje te klikken wordt bovenstaande code uitgevoerd, en moet QGIS er ongeveer zo uit zien:

qgistopotijdreis

Zoals je ziet staan de 75 beschikbare kaartlagen (die ik trouwens van de ‘services’ url heb http://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/ gehaald) netjes in een aparte groep.
En het mooi van een layer-group is dat je ‘m ‘mutual exlusive’ kunt maken, d.w.z. er is slechts 1 kaartlaag tegelijk zichtbaar: bij het zichtbaar maken van een andere kaartlaag wordt een evt andere zichtbaar kaartlaag uit die groep verborgen.

Eigenlijk hebben we zo onze eigen TopoTijdReis in QGIS.

En mocht je nu via de python console gewoon maar 1 kaartlaag willen laden, gebruik dan:

iface.addRasterLayer(
"tileMatrixSet=default028mm&crs=EPSG:28992&layers=Historische_tijdreis_1820&styles=default&format=image/jpgpng&url=http://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1820/MapServer/WMTS/", # uri
"TopoTijdReis 1820", # name for layer (as seen in QGIS)
"wms"
)

Een paar leuke screenshots nog ter afsluiting:

Zoals je ziet is de kaarttekst van 1815 nog franstalig. Wanneer namen we ook al weer afscheid van de Fransen? De daaropvolgende kaart is dan ook opgedragen “aan zijne majesteit den koning”

kaartkoppen

Verder is het goed te zien dat er hier en daar wel flink ‘geplakt’ is.

Letterlijk (ik denk door het oude Kadaster):

plakwerk

Figuurlijk (door de cache bouwer):
mapmix

Een paar tips:

– Gebruik het ‘Tile Scale Panel/Paneel Schaal tegel’ om de juiste kaartschaal te bepalen: maak een kaartlaag aktief/zichtbaar en gebruik dan de schuif om ‘m op de juiste schaal te krijgen. (zie de grijze ‘schuif’ aan de rechterkant in een van de volgende screenshots)

– Zorg dat je in Extra/Opties/Rendering het vinkje ‘Gelijktijdig rendereren van kaartlagen …’ aan hebt. Voor Tiled layers scheelt dit aanzienlijk en ziet er VEEL beter uit!

– Gebruik de middelmuisknop om netjes met een factor 2 in of uit te zoomen (gebruik diezelfde middelmuisknop trouwens ook eens om eenvoudig te ‘pannen’ zonder de pan-tool aktief te hoeven maken

En om toch nog wat te mopperen te hebben:

– waarom heeft het kadaster/esri zich eigenlijk niet gehouden aan de Nederlands Tiling richtlijn? De kaartschalen komen niet overeen met die van de overige PDOK kaartlagen?

– waarom zijn juist de modernste kaartlagen niet scherp?

Maar verder: bedankt Kadaster en ESRI voor het beschikbaarstellen van dit prachtige kaartmateriaal!!

PDOK services plugin update

Een korte post om te laten weten dat er een versie 0.10 beschikbaar is van de pdokservices plugin (http://plugins.qgis.org/plugins/pdokservicesplugin/).

Er zijn wat lagen verdwenen en wat lagen bijgekomen. Het totaal aantal lagen komt nu op 6723 (was 5298).

WMS layer windspeed at 100m height
WMS laag Windsnelheid op 100m hoogte

Belangrijkste veranderingen zijn:

Verdwenen:

– brtachtergrondtijdelijk
– brtachtergrondgrijstijdelijk
– top10nl (nu: top10nl2)
– Noordzee Kabels en Leidingen
– Noordzee Wingebieden

Nieuw:

– AHN3 WMS, WFS en WCS
– Adressen (INSPIRE geharmoniseerd)
– CBS Wijken en Buurten 2014
– Historische Rivierkaarten
– Kadastrale Kaart
– NAPinfo
– Potentiekaart omgevingswarmte
– Potentiekaart reststromen
– Potentiekaart restwarmte
– Verspreidingsgebied habitattypen
– Windsnelheden 100m hoogte

Update je plugin via de plugin-manager in QGIS.

2016_histrivieren

Aanpassen van de vaste schalen plus nieuwe PDOK services

Nieuwe PDOK services

Ten eerste: PDOK heeft een aantal nieuwe services ingevoerd de laatste maanden, en ik had die nog niet toegevoegd aan de plugin. Nu wel, en ze zijn beschikbaar voor de plugin, zonder een nieuwe versie van de plugin te installeren.

Ga in de dialoog naar het tabblad ‘Extra’ en gebruik daar de knop ‘Check services’. De plugin zal een nieuw laagbestand proberen op te halen en gebruiken.

PdokServicesPlugin_201

Als dat goed gaat schiet je van 2782 beschikbare layers naar meer dan 5000(!) lagen: de service die de meeste lagen toevoegd zijn de ‘Habitatrichtlijnen verspreiding’, typen en soorten. Dus heb je je altijd al eens afgevraagd wat het verspreidingsgebied is van de ‘Grijze Grootoor Vleermuis’, dan heb je die nu als WMS en WFS beschikbaar :-)

Verder zijn er een paar nieuw referentiekaartlagen bijgekomen: een ‘pastel’ kleurige en een tijdelijk grijze. Verder is NOK2014 beschikbaar, nieuw Spoorwegenlagen, iets met Schelpdierwater, Vogelrichtlijn verspreiding van soorten, Verkeersscheidingsstelsel en Publiek rechtelijke beperkingen.. In ieder geval: plezier ermee.

Aangepaste vaste schalen

In de statusbar van QGIS is er een Schaal/Scale dropdown waarmee je QGIS direkt naar een bepaalde schaal kan zetten. Standaard bevat die schalen lopend van 1:500 naar 1:1.000.000.

Selection_202

Als je echter de brtachtergrondkaart of de luchtfoto’s van PDOK gebruikt, en je maakt gebruik van de door QGIS vastgestelde schalen, dan krijg je dit:

wrongscale

Onscherpte van de tegels omdat de WMTS tileschema schalen die gelijklopen met de mooie historisch kaartschalen die QGIS nog in de dropdown heeft staan.

Nu is het mogelijk bij QGIS om ZELF te bepalen welke schalen in de dropdown staan. Ga via Settings/Options naar tabje Map Tools en verwijder door op het rode ‘minnetje’ te klikken alle daar aanwezige schalen. Een ‘schaalconfiguratie’ in QGIS bestaat uit een eenvoudig XML-bestand. Download hier: zip met schaalbestanden
twee PDOK voorbeelden door ze ergens uit te pakken. Probeer ze beide eens uit: door op de knop met het mapje te klikken kun je bv het bestandje nltilescales.xml openen. Je hebt dan in dropdown alle schalen zoals die te vinden zijn in dit Geonovum bestand.

Een andere manier is om de een PDOK WMTS laag te laden, aktief te maken en dan de ’tile scale’ of ‘schaalschuif’ te voorschijn te halen. Door op een van de schaalstreeptjes te klikken zal QGIS de schaal pakken zoals die in het capabilitiesdocument zijn gedefinieerd.

tilescale

Het vreemde nu is dat dit andere schalen zijn dan die in het Geonovum bestand zijn. Ik heb een tweede xml bestand in het zipje gestopt: nlscales.xml en DIE bevat de schalen die QGIS bepaalt als je gebruikt maakt van de tile scale.

Dit geeft eigenlijk de beste resulaten: rightscale.

Op deze manier kun je dus zonder gebruikt te maken van de tile scale gewoon naar een scherpe achtergrondkaartschaal zoomen.
Je zou natuurlijk ook nog een aantal tussenliggende schalen eruit kunnen laten. Door bijvoorbeeld alleen je favoriete schalen op te nemen. Elke kaartvisualisatie heeft wel een aantal schaalnivo’s die niet helemaal mooi zijn.

Moraal van het verhaal: bepaal ZELF je schalen. Happy QGIS-ing!

QGIS goodies

Even een kort berichtje voor het geval je het gemist hebt.

Sinds kort heeft QGIS een samenwerking met spreadshirt.com zodat we overal ter wereld virtuele winkeltjes hebben om QGIS-t-shirts, petjes en mokken te verkopen.

Dus: check je maat en ga via deze pagina naar de dichtsbijzijnde QGIS-shop en maak je vrienden jaloers met zo’n prachtig QGIS shirt :-)

shop_tshirt

Oh, en het QGIS project ontvangt een klein percentage van de verkopen om verfrissingen te kunnen kopen tijdens de hackfests…