QGIS gebruikersmiddagnieuws

De laatste voorbereidingen voor de allereerste QGIS gebruikersmiddag op 31 januari lopen. Tenminste, als we het in onze onderlinge gesprekken hebben over de naamkaartjes voor bezoekers en cadeautjes voor sprekers, dan kan je wel stellen dat het de laatste voorbereidingen zijn.

QGIS gebruikersdagIk leg er nog maar een keer de nadruk op: het is een evenement voor en door QGIS gebruikers. Er is ruim de tijd om met elkaar in gesprek te gaan, er is ruimte waar je met elkaar je laptop kan openklappen en problemen of juist leuke dingen met elkaar kan delen, een beetje showen waar je mee bezig bent, kijken wat anderen doen, en Richard Duivenvoorde is aanwezig als dokter om te helpen écht lastige dingen op te lossen.

Ik krijg verschillende vragen over het programma. Ja, dat is er natuurlijk ook! Er is een lezingenprogramma dat nu op een haar na helemaal rond is. Als we echt alles bevestigd hebben komt het netjes op de Eventbrite pagina (en hier). Dat zal vermoedelijk dit weekend zijn, Hans en ik hebben de laatste bevestigingsmails gisteren uitgestuurd.

Tip van de sluier: Joost Deen vertelt over het gebruik van QGIS bij veiligheidsregio’s, Jan-Willem van Aalst over de manier waarop hij de kaarten van OpenTopo en de Gemeentenatlas maakt met QGIS. Jazeker, die worden met QGIS gemaakt! En in het Engelstalig programma (ja, dat is er ook, zodat ook de internationale studenten van het IHE hun ervaringen met QGIS kunnen delen) vertelt Niel de Jong hoe het Rode Kruis QGIS gebruikt om een effectieve inzet mogelijk te maken bij rampen in bijvoorbeeld Malawi, en Claudia Ruz Vargas geeft aan welke plugins het mogelijk maken grondwater te monitoren en te modelleren. En dat is nog niet de helft van het programma!

Kortom, druk middagje. Vol met je eigen favoriete GIS pakket. En had ik al gezegd dat Raymond Nijssen met nieuws komt over QGIS 3? Ja, dat ook nog. Heb je je nog niet aangemeld? Dat kan nog hoor! https://www.eventbrite.nl/e/tickets-qgis-gebruikersdag-39826426915

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).

3D data visualiseren met expressies

Laatst kreeg ik de vraag om de blootstelling aan geluidsoverlast in beeld te brengen voor een aantal woningen. Op zich niet moeilijk, ware het niet dat het hier ging om gebouwen met meerdere woonlagen. De woningen (puntlocaties) lagen pal bovenop elkaar.
selection_005De tabel maakt veel duidelijk. Naast een X en Y coördinaat zit er ook een Z-waarde in: dat is de hoogte. De kolom DB geeft het geluidsniveau aan per woning. Je krijgt op één plek (XY) dus meerdere DB waarden, met elk een eigen hoogte.
selection_004
Tsja, hoe geef je dat nou mooi weer? Mijn eerste idee was: een staafdiagram voor elke XY locatie. En dan met de kleur (geclassificeerde DB waarde) voor alle woningen netjes boven mekaar in de grafiek. Dat valt echter tegen: in QGIS kun je naast taartdiagrammen (pie chart) en tekstdiagrammen alleen histogrammen maken. En dat wou ik nou net niet.
Punt verplaatsing (Point Displacement) dan?
selection_006Je krijgt dan een hele zwik opties om ervoor te zorgen dat je alle punten netjes ziet. Alleen …. ik kon geen invloed krijgen op waar welk punt precies terecht kwam: je wil natuurlijk wel degene met de hoogste Z-waarde boven de op één na hoogste Z-waarde, enz enz. Werkte dus ook niet.
Toen bedacht ik me nog iets. Je kan namelijk ook marker symbolen verschuiven. Als je bij Style de Symbol selector kiest kun je naast grootte, hoek e.d. ook een Offset X,Y kiezen.
symbol-selector_007Nou levert het verplaatsen van alle symbolen met een vaste X en Y Offset uiteraard niet direct het gewenste resultaat op. Wat echter wel heel veel mogelijkheden biedt is de expressie knop (epsilon teken) rechts van de X en Y waarden. Hier kun je namelijk de Offset afhankelijk maken van de waarden in de tabel. Dat biedt mogelijkheden, ik heb immers een kolom met Z-waarden …
Nou is het wel even puzzelen hoe zo’n expressie eruit moet zien. Na wat prutsen kwam ik er achter dat de expressie ‘0, 100’ wel wat deed: elk punt werd 0 mm opzij (X) en 100 mm naar beneden (Y) verplaatst. Moet ie 100 mm naar boven, dan heb je dus een negatieve Y nodig. En de hele expressie moet tussen enkele quootjes: het is feitelijk een letterlijke tekst.
selection_008Maar we zijn er nog niet. Ik wou wat met die Z-waarde. Nou kun je in zo’n expressie ook Fields and Values gebruiken, en dus kun je nu wat knutselen met die Z-waarde. Na weer wat trial & error was ik er uit:
‘0, ‘|| to_string(-1 * “z”)
Het eerste deel is makkelijk: omdat ik geen verschuiving in de X richting wil wordt dat gewoon ‘0, ‘. In dat laatste stuk pak ik de waarde in de kolom “z”. Die vermenigvuldig ik met -1 (negatieve Z -> de symbolen worden naar boven verplaatst). Het resultaat daarvan is echter een getal, dus voor de functie moet je er vervolgens met to_string nog tekst van maken. En met || voeg je dat dan weer samen met die 0 voor de X richting.
Van het resultaat werd ik toch wel blij:
qgis-2-14-11-essen-verschovenpuntenmetexpressies_010Het werkt dus! Ik zie de symbolen nu netjes boven elkaar, afhankelijk van de Z-waarde, terwijl de kleur de DB waarde weergeeft. Nou ja, nétjes? Er zitten wat gaten in, maar dat komt doordat er wat gegevens missen. De functie doet alles goed. Ter illustratie: de rondjes zijn de oorspronkelijke punten.
De mogelijkheden van de expressies zijn werkelijk fantastisch, ik ben daarna helemaal los gegaan. Bijvoorbeeld: bij torenflats van meer dan 10 verdiepingen de eerste 10 boven elkaar, en dan 11 t/m 20 in een nieuwe rij daarnaast? Kan! En ook bij tekstlabels kun je dit soort expressies gebruiken: de labels precies in de blokjes krijgen is grotendeels een kwestie van copy / paste van dezelfde expressie.
Veel succes met knutselen!

De QGIS BGT plugin

Jan-Willem van Aalst schreef een mooi stukje over het gebruik van de BGT in QGIS met als voorbeeld weer een van zijn bekende prachtige kaarten. Hiervoor is het wel nodig om de complete BGT in Postgis te laden. Dat is misschien een beetje overkill als je geïnteresseerd bent in pakweg 1 gemeente.
Zou QGIS ook op een makkelijker manier overweg kunnen met de BGT? Laten we als proef eens van de BGT download site (https://www.pdok.nl/nl/producten/pdok-downloads/download-basisregistratie-grootschalige-topografie) een deel van de BGT downloaden (hier de gemeente Bodegraven-Reeuwijk):
selection_268
Als resultaat krijg je een zipfile met flink wat gml-bestanden. Deze kun je vanuit de verkenner zo in QGIS slepen en het resultaat is (na soms flink wachten) een stuk of 30 kaartlagen en een niet zo mooi opgemaakt kaartbeeld:
selection_272
Een kenner ziet direct dat er iets mis is gegaan. De BGT is vlakdekkend, en de getoonde kaart niet!
Om te begrijpen waar dit probleem vandaan komt is het nodig iets meer te weten van gml. De Nederlandse overheid heeft ervoor gekozen om de open standaard gml te gebruiken voor het uitwissel van geo-informatie. Gml is daarbij inderdaad een standaard en geen bestandsformaat! De standaard is zeer rijk en staat een hele mooie objectgerichte modellering toe waarbij objecten zowel een punt-, een lijn- als een vlakgeometrie hebben. Maar zulke objecten zijn natuurlijk wel moeilijk te gebruiken in de meeste GIS-programma’s die net zoals QGIS graag punten, lijnen en vlakken in aparte kaartlagen zetten.
Als voorbeeld zien we hier de panden (bgt_pand.gml) die zowel een puntlocatie als een vlak aan zich hebben:selection_270
Indien we dan in de gml gaan kijken (dat kan, het is een gewoon tekstbestand), dan zien we dat zo’n pand een imgeo:geometrie2dGrondvlak attribuut heeft, en een imgeo:nummeraanduidingreeks.
In het bgt_vegetatieobject.gml zien we zelfs punten, lijnen en vlakken:
selection_269
Er zijn hier meerdere objecten zichtbaar, twee punten boven op elkaar (de sterren), een lijn (rood gestippeld) en een vlak (groen).
Het gebruik van de identify tool leert dat het vlak, de lijn en een van de punten een “haag” betreft. Het andere punt betreft een boom.
Bij het inlezen van dit soort bestanden waarbij bij sommige objecten wel, en bij andere objecten niet meerdere typen geometrieen zijn opgenomen wordt het voor de onderliggend software die het bestand in moet lezen moeilijk te bepalen wat ingelezen moet worden. Zo krijg je al gauw de nummeraanduidingreeks van de panden terwijl je QGIS vraagt de vlakken in te lezen.
Gelukkig is de software niet al te moeilijk ervan te overtuigen om de juiste dingen in te lezen. Bij FOSS4GNL (28 juni 2017) werd door mij al een plugin aangekondigd die dat zou regelen. De BGT import plugin staat inmiddels bij de QGIS plugins en regelt het inlezen door een klein bestandje aan te maken waarin precies staat waar de geometrie elementen in het gml bestand zitten. QGIS gebruikt dat vervolgens om het gml bestand goed in te lezen.
selection_271
Indien je een BGT bestand importeert met de plugin, dan maakt de plugin een kopie (of een symlink als dat kan) van het gml bestand, met de toevoeging _P, _V, _L in de bestandsnaam voor punten, lijnen en vlakken respectievelijk. Vervolgens wordt naast elk _X.gml bestand een _X.gfs bestand geplaatst op basis waarvan QGIS op de juiste manier de punten, lijnen of vlakken kan inlezen. Je hebt de plugin daarna dus niet meer nodig om zo’n _X.gml bestand goed in te lezen!
Als voorbeeld de bgt_pand.gml direct ingelezen met QGIS (er zijn alleen punten ingelezen):
selection_275
En met gebruik van de plugin (zowel de punten als de vlakken zijn ingelezen):
selection_276
Overigens is het voor de snelheid belangrijk om alleen die geometrie typen aan te vinken die daadwerkelijk in het gml bestand zitten. Anders moet de plugin de hele gml uitpluizen op zoek naar een geometrie type dat er niet is. Dat kan lang duren!
Met behulp van de plugin is het gebruik van de BGT gml bestanden niet zo moeilijk meer en hoef je niet over te gaan tot het gebruik van Postgis en/ of NL-extract.
Wel is het jammer dat je niet zomaar de prachtige visualisatie van Jan-Willem van Aalst kunt gebruiken. Nu maar hopen dat iemand een mooie visualisatie maakt (en deelt!)voor de bestanden die je rechtstreeks met de BGT import plugin inleest.

Zelf met de BGT in QGIS werken

De Basisregistratie Grootschalige Topografie (BGT) begint al aardig gevuld te raken. Deze open overheidsdata wordt 2x per maand aangeboden door NLExtract in PostGIS formaat. Zie: http://data.nlextract.nl/bgt/postgis/ . Het PostGIS backup bestand is inmiddels gegroeid naar zo’n 12 Gigabyte.
Je kunt dit bestand in QGIS gebruiken als je zelf PostgreSQL met de PostGIS extensie hebt geïnstalleerd. Zie hiervoor https://www.postgresql.org/ . Kies bij de installatie een handig wachtwoord voor de gebruiker ‘postgres’. Vergeet niet na installatie Stackbuilder te activeren om de Postgis extensie beschikbaar te krijgen. In de PgAdmin tool maak je dan een nieuwe database aan genaamd ‘bgt’. Daarin maak je een nieuw schema ‘latest’. Denk ook hierbij weer aan het toevoegen van de Postgis extensie. Vervolgens kun je op de database titel kiezen voor “restore” en kies je de NLExtract BGT dump. Na 30-40 minuten stampen heb je de gehele BGT tot je beschikking in QGIS. Maar ja, hoe visualiseer je die?
In de OpenTopo kaarten (www.opentopo.nl) zie je hoe ik de BGT visualiseer op het schaalniveau van 3200 pix/km. Deze visualisatie (althans, de BGT elementen daarin, ik gebruik ook OSM en Top10NL) kun je nu zelf ook gebruiken, via een speciaal door mij samengesteld QGIS BGT projectbestand.
Download daarvoor deze zipfile op imergis.nl. Je vindt daarin een QGIS projectbestand en twee SVG plaatjes. Plaats de plaatjes in een mapje “SVG” dat een submap is van waar je projectbestanden staan. Open het QGIS projectbestand in een tekst editor zoals Notepad++ en doe een “Find & Replace” op het wachtwoord, dat nu nog bestaat uit sterretjes. Bestand bewaren en in QGIS openen. Je zou zoiets als het volgende moeten zien:
zelfbgt1
Hierbij zit dus geen schaduwreliëf en geen labels, want die haal ik uit andere bronnen. Je hebt echter wel de volledige BGT van Nederland onder handbereik. Let op, deze visualisatie is bedoeld voor een schaal van 3200 pix/km op 96 dpi, dus in QGIS ongeveer 1:1180. Je kunt in- en uitzoomen wat je wilt, maar dat geeft misschien niet altijd het gewenste beeld. Je hebt in elk geval wel een basis om mee te werken.
Veel plezier ermee. Vragen? Stuur me een e-mail.
— Jan-Willem van Aalst

Georefereren van een medaille

Gisteren liep ik de halve marathon van Zwolle met mijn petje op met het vorige QGIS logo. Mijn tijd was zo niet bijzonder (2:08:47) maar de medaille die ik daarmee verdiende wel. Het bevat een plattegrond van de stad Zwolle.

original medal of Zwolle half marathon 2017
De originele medaille van de halve marathon van Zwolle.

Er staan wat gebouwen op afgebeeld maar welke?
Ik besloot de medaille met behulp van QGIS te georefereren en een kaart toe te voegen.

  1. Ik legde eerste de medaille onder de scanner en maakte hiervan een PNG afbeelding.
  2. Vervolgens georefereerde ik de kaart met de Georeferencer plugin in QGIS die standaard wordt meegeleverd en die geactiveerd moet worden via de Plugin manager. Onder het menu Raster kun je dan deze georeferencer tool starten.
  3. Daarna voegde ik via de PDOK plugin de laag lufolabels toe.

Het resultaat ziet u hieronder.
medal-half-marathon-zwolle-on-map
De gebouwen zijn: De Broerenkerk, de Peperbus, de Grote St. Michaelskerk, museum de Fundatie en de oude stadspoort Sassenpoort.
met vriendelijke groet,
Diethard Jansen

Gray is the new Black

Soms wil ik mijn kaart (printvormgeving…) niet in zwart maar in grijs opmaken. Maar QGIS maakt alle items die ik aan mijn kaart toevoeg standaard zwart.

Turn Gray dialog
Turn Gray dialog

Om de kleur eenvoudiger en sneller aan te passen heb ik de “Turn Gray” plugin geschreven. Standaard verandert deze de kleur van alle teksten en outlines in een kaart in grijs. Maar je mag ook vrolijkere kleuren uitkiezen. Optioneel ook voor de achtergrondkleur.
Op het moment worden nog niet alle items in een kaart aangepast, maar de (door mij) meest gebruikte wel: de kaart, legenda, teksten en schaalbalk. Tabellen, pijlen en kaartgrids komen later.
Ik hoop dat anderen hier ook blij mee zijn, dat is toch het idee van open source!
Hier een paar voorbeelden:
original map composer
originele vormgeving

turned to gray (default plugin values)
in grijs (met standaard plugin waarden)

turned to red foreground and lime green background
met rode voorgrondkleur en limoengroene achtergrondkleur

TopoTijdReis kaartlagen in QGIS

Aanpassing 13 oktober 2020: meer service-lagen t/m 2019 zijn nu beschikbaar, scriptje en projectfile aangepast

Aanpassing 3 september 2020: de WMTS service werkt nu alleen nog onder httpS. Let dus op de code is aangepast (de service heeft een dag of wat de verkeerde url’s (http) in de capabilities gehad, maar per 3sept OK)

Aanpassing 19 juni 2020: voor de hele ongeduldige mensen (of bij wie het stukje code niet lukt): hier een gezipt QGIS topotijdreisqgisproject. Even uitpakken en het .qgz bestand openen als project.

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
https://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 https://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', '2000', '2001', '2002', '2003', '2004', '2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015',
'2016', '2017', '2018', '2019']
# 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=https://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=https://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!!

Kadastrale percelen en het gfs bestand

De laatste reactie van Fred van Bemmel op de eerdere Blog “Kadastrale percelen genereren”, was bijzonder verrassend.
Het bestand Perceel.gml zou namelijk punten en polygonen bevatten! Door het .gfs bestand aan te passen zal deze openen met polygonen. Maar na bestudering van het .gfs bestand die Fred aanleverde zag ik meer mogelijkheden!
Het gfs bestand
Het .gfs bestand wordt aangemaakt tijdens de eerste keer openen van een GML bestand met QGIS. Het is eigenlijk de GDAL/OGR GML-driver die hiervoor zorgt.
Stap 1: Tonen van Polygonen
Als eerste willen we na het openen van Perceel.gml geen punten maar polygonen zien. Open het .gfs bestand in een tekst-editor of een xml-editor. Het is wel prettig wanneer de editor xml herkent. Wijzig zo nodig even de extensie van .gfs naar .xml zodat direct alle xml-tags herkend worden.
Begin door bovenin de regel met de “GeometryType” XML-tag te verwijderen of te voorzien van XML-commentaar. Zet er “<!–” voor en “–>” achter.

<!--    <GeometryType>1</GeometryType> -->

Ga nu naar het einde van het gfs bestand. Voeg nu tussen de laatste afsluitende XML-tag en de volgende nieuwe tag:

    </PropertyDefn>
<!-- voeg de volgende XML tag toe -->
    <GeomPropertyDefn>
      <Name>begrenzing</Name>
      <ElementPath>begrenzingPerceel</ElementPath>
      <Type>Polygon</Type>
    </GeomPropertyDefn>
<!-- einde aanpassing -->
  </GMLFeatureClass>

Sla het gfs bestand op en open nu het GML bestand in QGIS.
Als het goed is zie je nu dat deze inderdaad de percelen als polygonen opent.
Stap 2: Aanpassen van veldnamen
Je kunt eveneens de naamgeving van velden aanpassen door het .gfs bestand aan te passen. Zoek in de .gfs naar de volgende tag “<Name>waarde</Name>”. Wijzig deze naar “<Name>Oppervlak</Name>” sla op en open de gml file Perceel.gml. Je zult zien dat het veldnaam is gewijzigd van “Waarde” naar “Oppervlak”.
Stap 3: Het verwijderen van velden
Je kunt er ook voor zorgen dat velden niet worden getoond.
Dit doe je door een volledige PropertyDefn XML-tag om te zetten naar commentaar of weg te halen.
Zet de volgende PropertyDefn om naar commentaar door er “<!–” voor te zetten en af te sluiten met “>”, hierdoor blijft het veld “namespace” achterwege.

<!--    <PropertyDefn>
      <Name>namespace</Name>
      <ElementPath>identificatie|NEN3610ID|namespace</ElementPath>
      <Type>String</Type>
      <Width>25</Width>
    </PropertyDefn> -->

Let op dat het GML bestand ouder moet zijn dan het gfs bestand. Anders wordt deze genegeerd. Have fun!

Nieuwe release QGIS + boek!

Afgelopen week is niet alleen de nieuwste versie van QGIS 2.14.0 Essen uitgekomen maar ook een prachtig boek “QGIS Map Design” welke uitgaat van deze nieuwe versie van QGIS.
Voorpagina boek QGIS Map Design
Een release van QGIS is altijd bijzonder maar inmiddels is eveneens aangekondig dat QGIS 2.14 de nieuwe “beoogde” LTR versie is. QGIS 2.8.7 is de huidige LTR versie waarin alle fouten die opgelost zijn voor alle versies van 2.8 t/m 2.14.0 ook zijn opgelost (indien van toepassing) in 2.8.
Een (Long Term Release) LTR versie heeft twee voordelen, deze is erg stabiel en qua functionaliteit blijft deze lang ongewijzigd zodat instructies, handleidingen, boeken en cursussen gebaseerd op een LTR versie ook wel even meegaan. Zodra QGIS 2.16 uitkomt, beschikken wij daadwerkelijk over de nieuwe QGIS 2.14 LTR versie! Deze versie draagt als naam QGIS Essen omdat het een fantastische locatie was waar twee hackfesten, bijeenkomsten voor QGIS ontwikkelaars en anderen, werd gehouden in het Linux Hotel. Ik bezocht beide hackfesten en ze waren bijzonder inspirerend en productief.
Splashscreen QGIS 2.14.0 Essen
Na QGIS 2.14 wordt er gestart met de megaklus om QGIS, die nu is ontwikkeld op het Qt 4 framework en Python 2.7,  te bouwen op het Qt 5 framewerk en Python 3.5. Dat is zo ongeveer vergelijkbaar met een klus als het vervangen van de fundering van een flatgebouw. In de aanloop naar dit werk toe is begonnen met het voorbereidende werk door een hele goed test infrastructuur op te zetten waarbij de vele unit-testen er voor gaan zorgen dat dit ook gaat lukken.
Ook al is QGIS 2.14 nog niet de LTR versie van QGIS, toch is het al verstandig om boeken en cursussen te baseren op deze nieuwe versie!
Het eerste boek dat is uitgegeven voor QGIS 2.14 is er al! Het boek QGIS Map Design is geschreven door Anita Graser & Gretchen N. Peterson en uitgegeven door Locate Press van Gary Sherman (de grondlegger van QGIS). Dit is het eerste boek waarbij de focus ligt op hoe je met alle mogelijkheden die QGIS te bieden heeft, zelf de meest geweldige kaarten kunt maken.
Het boek bestaat uit een hele reeks “recepten”, volledig uitgewerkte praktische voorbeelden, waarbij verondersteld wordt dat de kennis die je opdoet in de eerste basisrecepten in volgende recepten kunt toepassen.
Ik kon niet wachten en heb het 200 bladzijden tellende boek in PDF-formaat gekocht van Locate Press. Opmerkelijk, je kunt het boek behalve met een kredietkaart ook kopen in bitcoins! Je ontvangt bij de aankoop van een PDF een gepersonaliseerde PDF met onderaan elke bladzijde een copyright statement. In die van mij staat:
“Copyrighted material generated for Diethard Jansen on 2016-03-02 do not distribute”
Ik verwacht nog heel veel plezier te gaan beleven aan QGIS 2.14 en van dit boek!
Wat QGIS 2.14 allemaal te bieden heeft?
Kijk daarvoor op de Visuele lijst met aanpassingen.