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 _______________________________________________ Talk-nl mailing list [email protected] http://lists.openstreetmap.org/listinfo/talk-nl

