Hej alla, jag har på senaste tiden labbat med att skriva en svensk geocoder på OSM-data.
Tyvärr har jag fastnat på vägar som består av mer än en (1) linje, exempelvis de som är uppdelade i flera filer med olika färdriktningar, de med små blindtarmar som sticker iväg åt sidan, är delar av rondeller, korsar sig själva, etc. En (1) enda linje behöver jag för att interpolera och extrapolera fram husnummer längst en väg. Är det någon som vet hur jag får fram en sådan? Själv tänkte jag att man interpolerar fram en punk längst varje meter av alla kända vägsegment på en gata och häller detta på en spline för att generalisera fram en linje. Dessvärre verkar alla splines jag hittat kräva att noderna har en inbördes ordning och då problemet jag har uppstår så finns det helt enkelt ingen sådan i denna datamängd. Alltså, finns det någon spline eller liknande som klarar av att rita ett streck mellan punkter som är utplacerade i slumpmässig ordning? Låt mig redan nu försvara de problem ni vill poängtera med min infallsvinkel :) Planen är att returnera svenska postadresser och få till träff på husnummer som inte är karterade. Hypotesen jag jobbar efter är att fel är helt OK så länge man i resultatet även får reda på hur stor felmarginalen troligen är och maximalt kan vara. I slutändan hoppas jag att det går att generalisera sig fram till husnummer längst alla gator baserat på statistik från närområdet, kommunen och landet, hur husnummer löper längst gator, avstånd mellan dem och så vidare. Även om det är en mycket grov generalisering av hur vägar ser ut så misstänker jag att det skapar nya problem (exempelvis i miljonprogramsområden) en fraktion av tiden jämfört med hur många det kommer lösa, vilket är en helt OK avvägning för en första version. Dessutom är just miljonprogramsområden överrepresentarat väl karterade när det kommer till husnummer. För den intresserade ser mina placeringar av husnummer i Malmö ut så här just nu: <http://kalle.users.openstreetmap.se/geocoder/0.0.0-b/malmo/output.osm> (Kan jämföras mot addr-*.osm som ligger i samma katalog.) Tydliga exempel på problemet jag vill lösa är Kungsgatan som är karterat till ett stort U och därmed får husnummer som en gata i Berlin där lägsta och högsta husnumret är mitt emot varandra. Förstadsgatorna är också problematiska och har interpolerats fågelvägen i stället för längst gatan. En spline hade löst bägge dessa problem. Ännu skapar jag inte husnummer där det inte finns ett enda karterat. Det kommer senare. Just nu krävs det att det finns minst ett husnummer och att det inte ligger allt för nära mitten av gatans hela längd. Allt som är så eller bättre får husnummer längst hela vägen och jag är ganska över hur väl det faktiskt fungerar där vägen är en (1) enda linje utan krusiduller. kalle _______________________________________________ Talk-se mailing list [email protected] https://lists.openstreetmap.org/listinfo/talk-se
