[OSM-talk-nl] Huisnummers - het vervolg

Freek freek_osm at vanwal.nl
Sun Aug 17 22:06:54 UTC 2008


Hoi allemaal,
Ik heb zojuist een eerste versie gemaakt van een huisnummer-opzoek-service, 
gebaseerd op de geconverteerde AND data. Deze is hier te bewonderen:

http://www.vanwal.nl/cgi-bin/hnsearch

Voor elke overeenkomende huisnummer-serie (meestal van straathoek tot 
straathoek) berekent hij de meest waarschijnlijke ligging van het betreffende 
huis. De getoonde positie is een link naar openstreetmap.org met een marker 
op die positie.

Met een kleine steekproef heb ik vastgesteld dat ongeveer 75% van de 
huisnummers correct zijn. De overige 25% bestaat voornamelijk uit huisnummers 
die aan de verkeerde kant van de weg liggen of missen.

Ik hoop dat we deze service kunnen integreren met Lambertus' route planner 
(wat vind je ervan?). Ik denk dan bijvoorbeeld aan twee extra huisnummer 
vakjes die, als ze ingevuld zijn, een request doen naar de huisnummer 
zoekmachine in plaats van de namefinder. Hiervoor zal ik natuurlijk een 
computer-vriendelijker interface maken.

Ten tweede dacht ik dat Stefan nog een mooi bestandje had liggen met 
postcodes, zouden we die kunnen gaan correleren?

  DETAILS
Er wordt gebruik gemaakt van een PostgreSQL database (zonder PostGIS: dom, 
dom, dom, zie verderop...). De data is direct geconverteerd van AND formaat 
naar PostgreSQL, dus het is geen live OSM data. In de database zitten ook 
alle AND plaatsnamen, bijbehorende IDs en coördinaten. AND is zo vriendelijk 
geweest om bij ongeveer 60% van de straten ook het ID van de bijbehorende 
plaats mee te nemen waardoor het zoeken behoorlijk snel gaat. Dit betekend 
helaas ook dat ik voor 40% van de straten geen idee heb bij welke plaats ze 
horen. Daarom wordt een tweede zoekactie ondernomen wanneer er geen 
resultaten zijn. Hierbij wordt gekeken naar de afstand van de straat tot de 
plaats. Door middel van een (beetje gare...) index werkt ook deze tweede 
zoekactie nog redelijk snel.

Doordat de AND plaatsnamen gebruikt worden kan het zijn dat bepaalde namen 
niet gevonden worden (bijvoorbeeld 's-Gravenhage, Den Haag werkt wel), mocht 
je nog echt wat missen dan hoor ik het wel.

Het zoekinterface heeft nu nog één vervelend probleem dat ik niet zomaar 
opgelost kreeg: huisnummers die alleen staan en waarvan de plaats niet bekend 
is kunnen niet gevonden worden.
De oorzaak hiervan is dat ik PostgreSQL "path" objecten [1] gebruik om de 
wegdelen in op te slaan, maar PostgreSQL kan de afstand niet berekenen tussen 
een punt (de plaats) en een pad dat uit maar één punt bestaat (het ene 
huisnummer). Als er nog een mogelijkheid zou zijn om het eerste punt uit een 
pad te selecteren zou ik er wel uit komen, maar ook zo'n functie kan ik 
nergens vinden. Tips zijn zeer welkom (ik ben bang dat ik beter PostGIS had 
kunnen gebruiken...).

[1] http://www.postgresql.org/docs/8.3/interactive/datatype-geometric.html

-- 
Freek




More information about the Talk-nl mailing list