Heatmaps - van postcode naar GPS coördinaten

De overheidsorganisatie PDOK - Publieke Dienstverlening Op de Kaart - houdt een registratie bij van alle objecten in Nederland. Dit is het zogeheten 'BAG'-register, Basisregistratie Adressen Gebouwen. Hierin staan de adressen, soort objecten en coordinaten van alle gebouwen in Nederland.

Dit BAG-register is te downloaden in de vorm van een SQLite-database van ~7gb. Voor de coördinaten worden extensies gebruikt, daarom is het handiger spatialite te gebruiken om het bestand te openen. Zo kan je direct bepaalde BLOB-velden inspecteren.

De locaties zijn genoteerd in zogeheten rijksdriehoek-coördinaten die kunnen worden opgezet naar GPS-coördinaten. Gelukkig is al iemand me voor geweest hier een library voor te maken, te vinden op github: https://github.com/djvanderlaan/rijksdriehoek/blob/master/Python/rijksdriehoek.py

Het gave is dat je vervolgens mee heatmaps kan maken van alle postcode/huisnummer bestanden!



#!/usr/bin/python3


# BAG (EPSG:28992) Geopackage @ https://service.pdok.nl/lv/bag/atom/bag.xml

# spatialite gui & @ https://www.gaia-gis.it/gaia-sins/ / https://www.gaia-gis.it/gaia-sins/windows-bin-amd64-latest/

# rijksdriehoek.py @ https://github.com/djvanderlaan/rijksdriehoek/blob/master/Python/rijksdriehoek.py


import sqlite3
from rijksdriehoek import rd_to_wgs


def dict_factory(cursor, row):
    fields = [column[0] for column in cursor.description]
    return {key: value for key, value in zip(fields, row)}


# connect to db
con = sqlite3.connect("C:/tmp/postcodes/bag-light.gpkg")
con.enable_load_extension(True)

con.execute('SELECT load_extension("mod_spatialite")')   
con.execute('SELECT InitSpatialMetaData(1);')  
con.row_factory = dict_factory



cur = con.cursor()

cur.execute("select (ST_MaxX(vo.geom)+ST_MinX(vo.geom))/2 rdx, (ST_MaxY(vo.geom)+ST_MinY(vo.geom))/2 rdy, vo.* from verblijfsobject vo")

for row in cur :
    #print( row )
    straat = row['openbare_ruimte_naam']
    huisnr = row['huisnummer']
    huisletter = row['huisletter']
    huistoevoeging = row['toevoeging']
    postcode = row['postcode']
    plaats = row['woonplaats_naam']
    
    latlon = rd_to_wgs(row['rdx'], row['rdy'])
    print( latlon, straat, huisnr, huisletter, huistoevoeging, postcode, plaats )

Download script


- Bent u opzoek naar een Php of Java programmeur voor uw website of applicatie? (freelance / detachering)
- Losse tickets, opdrachten, of gehele projecten in de planning?
- Systeembeheer van Linux of Windows Server ?

Dan kom ik graag met u in contact! Meer informatie over mij vindt u hier.
Sitemap | Op alle producten & diensten zijn de algemene voorwaarden van toepassing
Php programmeur | Maatwerk software Alkmaar | Maatwerk software Heerhugowaard | Maatwerk software Purmerend | Maatwerk software Zaandam | Software laten maken | Freelance php programmeur Afbouw maatwerk software Blogs