
Open 112-data vertaald naar wat er in jouw straat gebeurt
iOS-app op P2000, de geocoder van de overheid en vliegdata, met pushmeldingen per locatie.
- Product
- Route
- Onderwerp
- Platform
- Jaar
Je hoort een sirene en je wilt weten wat er aan de hand is. Heel normaal. De vraag van dit experiment: kun je die vraag beantwoorden met alleen openbare bronnen? Watskeburt knoopt achttien P2000-feeds, de geocoder van de overheid en de vliegdata van negen politiehelikopters aan elkaar, en zet het resultaat als leesbare zin op een kaart bij jou in de buurt.
- SwiftUI
- iOS 17
- MapKit
- Firebase Firestore
- Cloud Functions
- PDOK Locatieserver
- ADS-B
In het kort
- 18
- 4
- 9
- 55
- 65
Wat er lag
Je hoort een sirene of er hangt een helikopter boven je wijk, en je wilt weten wat er aan de hand is. Het antwoord ligt voor een groot deel op straat: P2000 is een open netwerk, alleen leest het als een telegram uit 1994. De opgave: openbare bronnen aan elkaar knopen en pieperjargon vertalen naar een zin op een kaart van je eigen buurt. Zonder één euro aan data, en zonder er een nieuwssite met sirenes van te maken.
Drie details die het verschil maken



Hoe het is gemaakt
Je hoort een sirene, en dan?
Er rijdt iets langs met zwaailicht, of er hangt een helikopter boven je wijk die maar niet weggaat. Dan wil je weten wat er aan de hand is. Dat is geen sensatiezucht, dat is de normaalste menselijke reflex die er is: wat is er gebeurd? Zeg het snel en je hebt de naam van de app te pakken, dezelfde vraag die De Jeugd van Tegenwoordig in 2005 al stelde.
Het antwoord ligt voor een groot deel gewoon op straat. De brandweer, de ambulancedienst en de traumahelikopter worden gealarmeerd via P2000, een open netwerk dat iedereen mag ontvangen. Alleen leest het als een telegram uit 1994: PRIO 1 TS WONINGBRAND 2514AK Veenkade 12 Den Haag. Het antwoord zit erin, het staat alleen in de verkeerde taal.
Het begon in april 2023 als een webpagina met een donkere kaart, één RSS-feed uit Amsterdam-Amstelland en gele speldjes erop. Leuk om te zien dat het kon, en daarna bleef het drie jaar liggen. Tot de vraag terugkwam: hoe ver kom je als je het serieus neemt?
Vier open bronnen, aan elkaar geknoopt
Dat is de echte vraag achter dit experiment. Niet of je een kaart met puntjes kunt maken, maar hoe ver je komt met alleen openbare bronnen die slim aan elkaar geknoopt zijn. Er ging geen euro aan data in.
Achttien RSS-feeds met P2000-alarmeringen, elke vijf minuten opgehaald: vijf landelijke, acht regionale zodat Zeeland en Drenthe niet wegvallen tegen de Randstad, en vijf redactionele 112-sites die zelf al fatsoenlijke koppen schrijven. Daarnaast de PDOK Locatieserver, de gratis geocoder van de overheid, die van een straatnaam een coördinaat maakt en er de officiële BAG-schrijfwijze bij teruggeeft. En Firestore als geheugen, met een livekoppeling naar de telefoon, zodat een nieuwe melding vanzelf op de kaart verschijnt zonder dat iemand hoeft te verversen.
En toen werd het pas echt leuk. ADS-B is de open vliegdata waar elk vliegtuig ter wereld in zit, dus ook alle negen Nederlandse politiehelikopters, elk met een eigen hexcode. Elke twee minuten haalt de backend hun posities op, zoekt via PDOK de buurtnaam erbij en kijkt of er binnen vier kilometer een verse melding ligt. Dan staat er in de app: politiehelikopter boven Belgisch Park, mogelijk in verband met een melding op de Strandweg. Vier bronnen die niets van elkaar weten, en samen vertellen ze een verhaal.
Van pieperjargon naar een leesbare zin
Het mooiste werk zat in de vertaling. Een P2000-bericht is geen zin. Het is een prioriteitscode, een voertuigafkorting, een capcode, soms een postcode en daar ergens tussenin een straatnaam. Daar moet een kop van komen die je in één blik leest, zonder dat je hoeft te weten wat TS betekent.
Geen taalmodel, gewoon een stapel regels die je kunt nalezen en stap voor stap beter maakt. Dertien regels om de hulpdienst te herkennen, 55 vertalingen van incidenttypes (van WONINGBRAND tot BEKNELLING), 65 stadsafkortingen (SGRAVH is Den Haag, KPLLND is Krimpen aan den IJssel) en aparte behandeling voor snelwegen, kruisingen en hectometerpaaltjes. Straatnamen krijgen het juiste lidwoord, want "op de Grote Markt" leest en "op Grote Markt" niet. Zo'n regel voelt onbenullig tot je hem toevoegt en de hele lijst ineens klinkt alsof er een mens achter zit.
Geocoderen gaat in vijf pogingen, van precies naar grof: postcode plus straat, postcode plus stad, straat binnen de gevonden stad, en zo verder. Daarna corrigeert de officiële BAG-naam de parser terug, behalve wanneer de geocoder ineens een compleet andere stad noemt. Dan heeft een stadsnaam in de straatnaam hem misleid, want de Amsterdam Gouwstraat ligt gewoon in Terneuzen.

Meldingen die elkaar aanvullen
Eén alarmering is één voertuig, en dat is bijna nooit het hele verhaal. Elke vijf minuten kijkt een tweede proces welke meldingen bij elkaar horen: binnen 400 meter en binnen een half uur. Drie brandweereenheden op één adres zijn geen drie meldingen maar één grote brand. Ze vullen elkaar ook aan: weet de ene melding "aanrijding met letsel" en de andere alleen "hulpverlening", dan wint de meest specifieke omschrijving voor allebei.
Negen regels bepalen wat er dan boven komt te staan, van MEERDERE EENHEDEN tot ERNSTIG, en drie contextregels kijken naar het moment, want politie-inzet op zaterdagnacht leest anders dan op dinsdagochtend. De oorspronkelijke melding blijft er altijd onaangeroerd onder staan, met de ruwe pagertekst erbij, zodat je zelf kunt zien waar de conclusie vandaan komt. Dat leek ons het minste wat je kunt doen als je een computer laat samenvatten wat er in iemands straat gebeurt.

Wel nieuwsgierig, geen ramptoerist
In de Verenigde Staten bestaat Citizen, dat hetzelfde doet met 911-meldingen: een melding bij elk incident in de buurt, livevideo vanaf de stoep. Het bewijst dat er publiek voor is, en het laat ook zien welke kant je op kunt glijden. Wij wilden de nieuwsgierigheid bedienen en niet de spanning verkopen, en dat is uiteindelijk het meeste ontwerpwerk geweest.
Meldingen komen alleen binnen voor plekken die je zelf hebt opgeslagen: thuis, werk, het adres van je ouders, elk met een eigen straal en eigen vinkjes per hulpdienst. Geen landelijke stroom incidenten, want dan ben je een nieuwssite met sirenes. Koppen zijn beschrijvend en niet alarmerend, en na drie kwartier zet de app er zelf "waarschijnlijk afgelopen" onder. Foto's en video's van omstanders zaten in de eerste versie en zijn er weer uit gehaald: dat vraagt moderatie, en moderatie regel je niet even in een experiment.
De kaart is bewust rustig. Geen rode vlekken, geen teller die oploopt, geen "let op, in jouw wijk". Een puntje met een letter, en als je erop tikt lees je in gewone zinnen wat er is gebeurd, met de veiligheidsregio erbij en hoe druk het die dag in je stad was.

Wat we eruit hebben geleerd
- 01
De grootste vondst zat waar we hem niet zochten. P2000 alarmeert vooral de brandweer, de ambulancedienst en de traumahelikopter. De politie werkt over C2000, en dat netwerk is versleuteld. Dus precies de melding waar je op dat moment het meest naar op zoek bent, de blauwe zwaailichten in je eigen straat, zit er niet in. Dat is geen gat dat je met betere code dicht, het is een ontwerpkeuze van het netwerk. En als je erover nadenkt een goede.
- 02
Dat verklaart ook waarom de helikoptertruc zo bevredigend voelde. Het is zo'n beetje de enige manier waarop de politie zichzelf publiek uitzendt, en zelfs dan weet je alleen dát er iets is en niet wat.
- 03
De tweede vondst: er komt nooit een afloop. Een alarmering is een begin. Of het een pan op het vuur was of een uitgebrand pand, of iemand het gehaald heeft, staat nergens in de data. En dat is nu net waar de vraag "wat is er gebeurd" over gaat. Voor een volgende versie ligt daar de interessantste opgave: niet nog meer bronnen aan de voorkant, maar één bron aan de achterkant die de zin afmaakt.
- 04
Daarom staat Watskeburt hier als experiment en niet in de App Store. Het antwoord op "kan het" is ja: de bronnen zijn er, de parser werkt, de pushmeldingen komen aan. Het antwoord op "is het af" is nee, en dat mag een experiment zijn.
Letters en kleuren
- Alles
- SF Pro
- #ffcc00het accent van de app: de speldjes en de knop, het systeemgeel van iOS
- #000000de kaart en de nachtstand
- #fffffftekst en kaarten
- #8e8e93tweede tekst, uit het systeem
- Systeemkleuren en systeemletter: licht en donker volgen de telefoon, en een melding op het vergrendelscherm is een gewone melding.
- De kaart is bewust rustig: een puntje met een letter, geen rode vlekken en geen teller.
- De waarden komen uit de SwiftUI-code en de reconstructies van de schermen, 7 september 2026.
Waar het van gemaakt is
- App
- SwiftUI
- iOS 17
- MapKit
- 19 bestanden
- 3.700 regels
- Backend
- Firebase Firestore
- 6 Cloud Functions
- europe-west1
- 2.300 regels JavaScript
- Bronnen
- 18 P2000-feeds
- PDOK Locatieserver
- ADS-B
- Nul euro aan data
- Vertaling
- 13 regels hulpdienst
- 55 incidenttypes
- 65 stadsafkortingen
- Geen taalmodel
Voor wie verder wil lezen
Onder de motorkap
iOS 17 en SwiftUI, MapKit voor de kaart, negentien bestanden en zo'n 3.700 regels.
iOS 17 en SwiftUI, MapKit voor de kaart, negentien bestanden en zo'n 3.700 regels. De backend draait op Firebase in europe-west1: zes Cloud Functions en 2.300 regels JavaScript. Elke vijf minuten de feeds en de verrijking, elke twee minuten de helikopters, elke zes uur verdwijnt alles ouder dan 48 uur. De telefoon luistert live mee op de laatste 25 uur aan meldingen, dus wat er binnenkomt staat er ook meteen op.
De hele stapel is gebouwd in ruim twee weken in maart 2026, boven op dat webprototype uit 2023. Wil je zelf iets in deze hoek proberen: alle bronnen liggen open en gratis voor je klaar, en dat is misschien wel het leukste nieuws van dit hele experiment.
Waarom staat de app niet in de App Store?
Omdat de politie niet in de data zit en een afloop nooit komt. Het antwoord op kan het is ja; het antwoord op is het af is nee, en dat mag een experiment zijn.
Welke meldingen zie je?
Brandweer, ambulance en traumahelikopter, via P2000. De politie werkt over C2000 en dat netwerk is versleuteld.
Hoe komt de helikopter erin?
Via ADS-B, de open vliegdata: elke twee minuten de positie van negen politiehelikopters, gekoppeld aan een verse melding binnen vier kilometer.
Krijg ik meldingen van het hele land?
Nee. Alleen voor plekken die je zelf opslaat, elk met een eigen straal en eigen vinkjes per hulpdienst. Anders ben je een nieuwssite met sirenes.
Wat kostte de data?
Nul euro. Alle vier de bronnen zijn open, en dat is misschien het leukste nieuws van dit experiment.


