Vector Tiles BRT en BGT via PDOK

Inleiding
Tot voor kort zijn de topografische kaarten van de BRT en BGT enkel beschikbaar via de traditionele viewservices zoals TMS en WMTS. Deze viewservices hebben als nadeel dat je weinig of geen opties hebt om de kaarten zelf te stylen. Om die reden is er de afgelopen periode hard gewerkt aan het beschikbaar stellen Vector Tiles voor de BRT en BGT.

Vector Tiles
Bij Vector Tiles worden in tegenstelling tot de traditionele viewservices geen PNG of JPEG kaarten maar vectorbestanden teruggeven. Vector bestanden zijn klein en bevatten (vector) informatie die gebruikt wordt om aan een kaart een (eigen) stijl mee te kunnen geven. Het is ook mogelijk om objecten zoals wegen of gebouwen wel of niet te tonen op de kaart en er is geen restrictie voor wat betreft zoomniveaus.

BGT en BRT Vector Tiles via PDOK (bèta)
Gezien de vele voordelen hebben het Kadaster, Webmapper en PDOK in opdracht van het ministerie van BZK de handen in één geslagen om Vector Tiles van de BRT en BGT aan u beschikbaar te kunnen stellen. Om het afnemers makkelijker te maken, is er een voorbeeldstijl beschikbaar die u één op één kunt overnemen en verder uitbreiden naar wens. Hiermee kunt u één of meerdere kaarten op basis van de BRT en BGT maken. Deze stijl, de URL’s en meer technische informatie zijn te vinden op: https://github.com/PDOK/vectortiles-bgt-brt. Aan nog meer gedetailleerde documentatie wordt momenteel gewerkt. Dit zal op korte termijn op GitHub verschijnen.

De Vector Tiles worden nog niet dagelijks bijgewerkt en als bèta beschikbaar gesteld. Deze bèta bevat op de zoomniveau’s 16 en 17 overigens uitsluitend de BGT van de steden Amersfoort, Amsterdam, Apeldoorn en Utrecht. Er zijn dus nog enkele zaken die niet uitontwikkeld zijn. We ontvangen graag uw feedback.

Demo Viewer, feedback en vragen
Om iedereen een beeld te geven van de mogelijkheden van Vector Tiles is er een Demo Viewer ingericht. Zijn er vragen of wensen? Wij horen het graag via deze categorie via het forum.


Voorbeeld verschillende visualisatie mogelijkheden Vector Tiles:

6 likes

Goed werk!

Opmerkingen over de demo viewer: die wordt over https geserveerd, maar probeert vector tiles te laden over plain http. Dat gaat niet, in ieder geval niet in chrome/firefox/safari. Je krijgt geen kaart te zien. De demo viewer openen via plain http geeft wel een kaart. Betere oplossing is om de tiles via https in te laden voor de demo viewer.

In Chrome krijg ik inderdaad in de opgegeven link geen kaart te zien. Je moet er dan maar net opkomen om https: te vervangen door http:…

Op zoomniveau BGT zit ik blijkbaar ergens aan de rand van een tegeltje. Als ik scroll wordt niet het ernaast liggende tegeltje ingeladen, de kaart wordt en blijft dan wit.

Succes!

Beste @mjl @jwva

Dank voor de melding, we hebben het inmiddels opgelost.
Indien je toch nog problemen ervaart met https raad ik aan je browsercache even te legen.

1 like

Mooi werk!

Ik volg het project met bewondering en het is een fantastische toevoeging op mijn GIMA masterthesis over vector tiles (nog in afronding). Goed om te zien dat het het open gedeeld wordt op GitHub. Je ziet duidelijk de voordelen van vector tiles voor zowel de klant als de ontwikkelaar, waar met name het gebruik van verschillende stijlen en een scherp beeld tussen de verschillende zoomniveau’s vermeld moeten worden.
Ik zie ook enkele uitdagingen, waarvan ik er met name één op wil noemen: de plaatsnaamlabels draaien mooi mee tijdens het roteren, maar de labels op basis van puntdata in de BGT (adresnummers) draaien nog niet mee in de leesrichting, en geven niet altijd een mooi beeld. Zie bijvoorbeeld foto hieronder:

.

Ik ben benieuwd naar alle reacties die zullen komen op dit project/vector tiles.

p.s: wat betreft de viewer, mis ik persoonlijk de fysieke scroll bar rechts.

1 like

Hoi, Mooi gedaan, Dank. Ik ben (nog) geen Vector Tiles kenner.
Maar ik dacht even de ‘Vector Tiles Reader’ plugin van Martin Boos in QGIS 2.18 te testen (http://plugins.qgis.org/plugins/vector_tiles_reader/).

Als ik daar de
https://geodata.nationaalgeoregister.nl/beta/topotiles-viewer/styles/tilejson.json
en
https://geodata.nationaalgeoregister.nl/beta/topotiles-viewer/styles/achtergrond.json
als nieuwe connectie parameters gebruik, krijg ik de foutmelding:

The field ‘vector_layers’ is required but not found. This is invalid TileJSON.

Zijn er specs voor TileJSON? Dit is een werkende url uit de plugin: https://free.tilehosting.com/data/v3.json?key=6irhAXGgsi8TrIDL0211

Of gebruik ik gewoon de verkeerde url?

En hebben vector tiles net als WMST e.d. ook een TileSchema die misschien niet opgaat voor de NL tiles?

@ingmapping bedankt voor je feedback!

@rduivenvoorde mijn collega @cora_vanoorschot buigt zich over jouw vragen :+1:

@rduivenvoorde lijkt erop, dat de QGIS-plugin tilejson versie 2 verwacht (da’s de versie op https://free.tilehosting.com/data/v3.json?key=6irhAXGgsi8TrIDL0211), terwijl de tilejson die wij hebben gemaakt nog versie 1 is. We gaan even onderzoeken wat nodig is om e.e.a. bij te werken naar versie 2. Zou natuurlijk superleuk zijn om deze vector tiles in QGIS te stylen!

1 like

@ingmapping: voor de rotatie van de huisnummerlabels wordt de positie en rotatiehoek uit de BGT gebruikt. DIe is met name geschikt voor noordgerichte 2d weergave, maar minder geschikt voor weergave in 3d.

Met een truukje zou dit eventueel aangepast kunnen worden. Je ziet dat straatnamen (op zoomniveau 14/15) wel roteren als je de kaart draait. De labels volgen de weg. A.d.h.v. het labelpunt en de hoek in de BGT zouden er een kort lijntje kunnen worden berekend en in de data opgenomen kunnen worden waarlangs het huisnummerlabel getekend wordt. Wanneer een label op de kop dreigt te raken, zou hij automatisch weer rechtop getekend moeten worden.

Een alternatief is om voor de vectortiles helemaal geen gebruik te maken van de hoek.

@fsteggink Ha Frank, bedankt voor je interessante en leerzame reactie. Ik heb inderdaad eerder gehoord dat dit mogelijk is door middel van lijnen. Het lijkt mij iets om te overwegen of in ieder geval bij stil te staan. Waar dynamic labeling aantrekkelijk kan zijn, is er wellicht ook wat finetuning nodig m.b.t. labeling en vector tiles. Zie bijvoorbeeld de vele straatnamen die herhaald worden bij de TopoRD in vector tiles (aangeboden door ESRI NL).

Goed gevonden! Ik ben op zoek gegaan:

De plugin heeft inderdaad een veld “vector_layers” nodig. Alleen is dit niet onderdeel van de tilejson spec van Mapbox https://github.com/mapbox/tilejson-spec/tree/master/2.2.0
Vandaar dat we dit nog niet hadden opgenomen.

Ik ben het aan het testen om dit toe te voegen aan de tilejson zodat het ook kan werken in Qgis. Lijkt erop dat dit wel moet lukken.

1 like

@rduivenvoorde het is opgelost! De tegels zijn nu in de QGIS plugin te gebruiken.
Ik merkte wel dat je eerst het ‘Recente Projecten’ scherm moet weghalen. Dus eerst wat data toevoegen en de viewer op Nederland centreren.

Succes!

3 likes

Heel tof! Welke tech gebruiken jullie om de tiles te genereren en serveren?

Ha @simeon. We gebruiken nu PostGIS naar ogr2ogr naar GeoJSON naar tippecanoe om de tegels te genereren. Deze worden gewoon als bestanden geserveerd door een Web server zonder een service ertussen: lekker snel :wink:

2 likes

Dank! Ik houd me aanbevolen voor een cursus vector tiles genereren. :wink:

1 like

Zodra ik de achtergrond.json laad in maputnik.github.io/editor dan worden de lagen 16-17 niet getoond (Chrome & Firefox). Maputnik foutje of…?

update: Utrecht wordt wel geladen, maar Tilburg bijvoorbeeld niet.

nog een bevinding: straatnamen worden vanaf zoomniveau 14 niet meer weergegeven

Overigens: goede ontwikkeling van deze vector tiles! Ziet er veel belovend uit!

Beste @Vledder, omdat dit nog een beta is, zijn op zoomniveau 16 en 17 (BGT) alleen Amsterdam, Utrecht, Amersfoort en Apeldoorn beschikbaar. Dit i.v.m. de omvang van de data. Het valt me nu op dat dit niet gecommuniceerd is. (@Rob, is het mogelij om het nieuwsbericht aan te passen?)

@fsteggink We hebben volgende stukje tekst toegevoegd " Deze bèta bevat op de zoomniveau’s 16 en 17 overigens uitsluitend de BGT van de steden Amersfoort, Amsterdam, Apeldoorn en Utrecht."

1 like

Afgelopen weekend heb ik geprobeerd een eigen stijl te maken voor m’n applicatie. Ik kan helaas hier de JSON niet uploaden dus hier een afbeelding:

Allereerst leuk om mee werken, maar toch een aantal bevindingen/vragen:

  • straatnamen worden vanaf zoomniveau 14 niet meer weergegeven?;
  • layer Infra roads worden niet meer weergegeven na zoomniveau 15 (jammer want voor een simpele weergave van wegen is dat meer dan genoeg i.p.v. ‘terrain’;
  • hoe kun je onderscheid maken in kleurweergave ‘open’ voor bijvoorbeeld strand en ‘open’ in stadsgebieden (beide krijgen nu dezelfde kleur)?
  • kunnen er in de glyphs ook andere fonts worden opgenomen (zoals “Open sans”) of moet ik daarvoor zelf een glyph source aanmaken?

Ik ben benieuwd naar de vervolgontwikkelingen.

Uiteraard wil ik de JSON wel delen. Stuur maar een PM.

1 like