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

Till