6PP (6 Positie Postcode) is een webservice voor conversie van postcode naar straat + woonplaats + geo coördinaten.
Je ziet ze steeds vaker: online registratieformulieren waar na het invullen van je postcode en huisnummer, automatisch de straat en woonplaats verschijnt. Handig, tijdbesparend en geen typefoutjes meer.
Zoiets simpels en openbaar als een postcode blijkt nog steeds een groot geheim.
Een complete database is te koop voor een flink bedrag.
Een vrije postcode database moet toch op te bouwen zijn, net zoals een vrije
encyclopedie, wegenkaart of film?
Vul een postcode (met huisnummer) in. De straatnaam en woonplaats worden automatisch ingevuld. De geo-coordinaten worden getoond in een landkaartje.
Op je eigen website? Gebruik dan deze HTML: lookup.html, dit javascript: lookup.js en de 6pp proxy: proxy.php. Meer informatie over het hoe en waarom van een proxy.
In het volgende voorbeeld wordt het adres achter postcode 5616 JR opgevraagd. Indien bekend worden ook de geografische coördinaten getoond.
XML: http://6pp.kvdb.net/lookup?postcode=5616JR
<result> <item> <street>Jacobus Deckersstraat</street> <postcode>5616JR</postcode> <city>Eindhoven</city> <geo_lat>51.438081</geo_lat> <geo_long>5.463004</geo_long> <geo_precision>street</geo_precision> </item> </result>
Meestal omvat één postcode één straat. Bij de uitzonderingen worden meerdere straten getoond, zoals bij 2987 XS.
Zonder opgaaf van de resultaat formatering wordt XML geretourneerd. JSON is een alternatief.
JSON: http://6pp.kvdb.net/lookup?postcode=1212AB&tg_format=json
{"result": [{"city": "Hilversum", "street": "Oude Amersfoortseweg", "postcode": "1212AB"}]}
Een derde manier is het gebruik van SOAP. WSDL: http://6pp.kvdb.net/soap/api.wsdl
Dit PHP voorbeeld geeft het volgende resultaat:
stdClass Object
(
[result] => stdClass Object
(
[item] => stdClass Object
(
[city] => Hilversum
[postcode] => 1212AB
[street] => Oude Amersfoortseweg
)
)
)
Andersom zoeken kan ook. Het volgende voorbeeld geeft een lijst van mogelijke postcodes bij een straat en/of woonplaats. Geldige zoekparameters: street, street_like, city, city_like.
XML: http://6pp.kvdb.net/search?street_like=eestraat&city=volkel
Om de afstand (in kilometers) tussen 2 postcodes te bepalen is het niet noodzakelijk de 2 letters op te geven. De nauwkeurigheid neemt hiermee echter wel toe. [21 nov: tijdelijk probleem in nauwkeurigheid op korte afstanden]
XML: http://6pp.kvdb.net/distance?postcode=5408&postcode2=5405
<result>2.9</result>
Je woont in een nieuwe wijk, en deze postcode staat nog niet in de database? Voeg deze dan zelf toe middels dit bewerkingsformulier.
Tevens te gebruiken om foutieve gegevens te corrigeren (alvast bedankt namens alle gebruikers).
Heb je een grotere hoeveelheid postcodes, voeg deze dan toe met bronvermelding. Mocht later blijken dat de data onjuist was of niet legaal verkregen, dan kunnen de postcodes eenvoudiger aangepast of verwijderd worden.
XML: http://6pp.kvdb.net/edit?city=Suwald&street=Ds+Oosterhuisstraat&postcode=9265LV&source=mijnadresboek.nl
Zelf een scraper gebouwd? Gebruik dan dit code voorbeeld om het exporteren te vergemakkelijken.
Zelf aan de slag gaan? Download de postcode database in SQL (dagelijks bijgewerkt). Om te importeren in SQLite of MySQL, MSSQL.
(gebruikte conversie tools: sqlite2mysql en sqlite2mssql)
Download de 6pp webservice broncode. Gebaseerd op python, turbogears en elixir. Met deze patches.
Meer postcode experimenten in de speeltuin.
Aantal aanvragen in de laatste 24 uur:
669
(300 sec. oud)
Laatste 5 opgevraagde postcodes:
6662 DR, 6662 DR, 3436 GR, 3436 GR, 3436 GR
(30 sec. oud)
Dank aan ICT-jurist Arnoud Engelfriet voor het beantwoorden van juridische vragen omtrent het Databankrecht.
Samenvattend: "Postcodes zijn feitelijke gegevens, en die mag je dus verzamelen en publiceren
zoals je zelf wilt. Ik betwijfel of er een databankrecht zit op de lijst zoals
TPG die beheert. Maar er is niets mis met internet afstruinen en alle postcodes
in een eigen databank stoppen die je ziet."
Succes gewenst aan de mannen bij OpenStreetMap Nederland om de volgende stappen te zetten richting huisnummers en bijbehorende geografische coördinaten.
Dank aan de forum leden van PHPhulp voor de suggesties en verbeteringen.
Dank aan Tonie van Ringelestijn voor een artikel op webwereld.nl.