Postgresql – Nederlandse grensgebieden in kaart gebracht

Wie kaarten maakt voor wandelaars en fietsers in onze grensstreken, loopt vroeg of laat tegen de beperkingen van de bronnen aan die in Nederland via de PDOK en het nationaalgeoregister te verkrijgen zijn. De top25raster, top50nl raster, en top250raster, maar ook de vectorverzameling Top10nl zijn erg beperkt tot het Nederlandse grondgebied. En wij willen de grens over! Het buitenland in!
De openstreetmap (OSM) levert een welkome aanvulling op. Uitdaging is om de Top10nl en de OSM te combineren tot 1 éénduidig kaartbeeld.

Met wat tips en trucs komen we een heel eind.
Voorwaarden voor mijn aanpak:
– Download van openstreetmap een flink stuk extra buiten de Nederlandse grenzen. Hoe? Zie: artikel http://www.travelingo.nl/index.php/207-osm-selectie-nederland-verruimen
– Gebruik Postgresql als database en Postgis als extensie voor zowel de top10nl als OSM. Een actuele Postgresql backup van de top10nl data is te vinden op de site van NLExtract. Zij zijn het die voor de omzetting van de top10nl (en de BAG) van het door het Kadaster aangeleverde format naar een Postgresql database format een script hebben ontwikkeld. Sinds kort hoef je zelfs dat niet meer zelf te doen, maar kan je een kant en klare backup downloaden van http://data.nlextract.nl/. Jan Willem van Aalst (Imergis) is degene die als eerste de kaartbeelden van Top10nl en OSM, wist te combineren, daarbij gebruikmakend van beider pluspunten. Voor de Top10nl is dat de vlakvulling (bv. bos, akkerland, grasland, bebouwing, etc…), voor de OSM zijn dat de wegen en straten. Vervolgens loop je toch tegen enkele problemen aan.
Vlakvulling
De vlakvullingen van de top10nl houden op net over de Nederlandse grens.
Om het Belgische wit te vullen moeten we OSM-data gebruiken. Nadeel is dat waar de OSM-data van Nederland redelijk betrouwbaar is, die in het buitenland nog wat witte vlekken kent. Je zal ermee moeten leven. Wat je wel kan doen is het zoveel mogelijk gelijktrekken van vlakvullingen van de Top10nl en OSM, m.a.w. dat akkerland, grasland, e.d. in beide gevallen dezelfde kleur hebben.
De Top10nl kent een duidelijke omschrijving van de vlakindelingen, de OSM bestaat wat dat betreft uit niet-verplichtende en niet-afdwingbare afspraken, waardoor de inhoud van het veld landuse (want dat is het veld waarin de vlakvulling wordt vastgelegd) veel variatie kent.
Om inzicht te krijgen heb ik in QGIS de tabel planet_osm_polygoon geladen en daarbij de styling volgens Categorieën opgezet. Vervolgens heb ik het veld Landuse als uitgangspunt gekozen en de optie \’Aantal objecten tonen\’ aangezet. Zo kon ik zien welke termen het meest gebruikt worden.

Omdat de (her)laadtijd van de tabel erg lang duurt, maakte ik schermafdrukken om daarna de tabel opnieuw te laden (zonder de aantallen) en vervolgens regelgebaseerde filters te maken van de meest gebruikte termen, waarbij de toegekende kleuren zoveel mogelijk overeenkomen met die van het Top10NL-, lees Nederlandse, gebied.

Benaming
Tweede probleem is de benaming van Nederlandse gehuchten, dorpen en steden. In Nederland zal de Top10nl zeer betrouwbaar zijn, maar die houdt weer net over de grens op. Gebruik ook in dat geval de OSM-bronnen. Helaas levert dat voor Nederland dubbele benamingen op: de naam van de top10nl bron én van de OSM-bron. Eigenlijk willen we alleen de namen van de locaties buiten Nederland… Dat bleek een leuke spatial query in Postgresql.
Met onderstaand SQL statement maak ik een view aan met alleen die namen die buiten Nederland vallen.
CREATE OR REPLACE VIEW osm_foreign_places_point AS
 SELECT planet_osm_point.osm_id, planet_osm_point.name, planet_osm_point.place, planet_osm_point.way
 FROM planet_osm_point, grenzen
 WHERE planet_osm_point.place IS NOT NULL AND planet_osm_point.name IS NOT NULL AND NOT st_within(planet_osm_point.way, grenzen.geom);
Feitelijk zeg je: maak een view met daarin alle planet_osm_point records die
  • een plaats zijn en niet iets anders
  • die ook nog een naam hebben (anders heeft het geen zin, wij willen de plaatsnaam laten zien)
  • en die qua locatie niet vallen binnen de Nederlandse grenzen polygoon.
Zo ontstaat een mooi kaartbeeld dat aan te passen is aan wandelaars of fietsers, aangepast kan worden aan de gewenste schaal, voorzien van extra lokale informatie als medische voorzieningen, winkels, toeristisch aandachtspunten, bestaande wandel- en fietspaden, etc… Wat de klant maar wenst. Op maat en tegen een goede prijs! Ook voor de favoriete grensgebieden!