Jag har sytt ihop en snurra som fixar postnummer via postens webtjänst
<http://www.posten.se/soktjanst/postnummersok/>.
Den kan redan nu lägga till och rätta postnummer på postadressrelaterade saker,
tycker ni jag skall släppa loss den för att göra det? Skall slänga upp koden på
github eller något sånt.
Jag hade dock tänkt mig att den skall skapa områdespolygoner vilket tyvärr inte
fungerar så bra ännu.
Först samlar den upp massa punkter den kan koppla till ett postnummer:
1. Nodes och ways med [addr:street=*] och [addr:housenumber=*].
2. Ways med [highway=*] och [name=*] där hela gatan befinner sig i samma
postnummer.
Saknas [addr:city] väljer den det på följande sätt:
1. Hämtar alla [place={hamlet, village, town, city}] med [ref:se:scb=*].
2. Väljer ut de som har [name] som existerar som postort hos Posten.
3. Sorterar till avståndet från positionen till alla postorter.
4. Söker efter den första förekommande husnummer med rätt gatunamn bland listan
av möjliga postorter. (Bör nog göras om så den väljer bara om det finns i en av
postorterna)
För att skapa polygoner har jag testkört lite över Lund (centrala) och Halmstad
(kommunen).
Mitt första försök är att hälla alla punkter per postnummer i ett Graham scan
convex hull. Då blir det så här:
<http://osm.kodapan.se/tmp/lund.osm>
<http://osm.kodapan.se/tmp/halmstad.osm>
Halmstads kommun får lite konstiga fel, ett par polygoner sträcker sig från
Falkenberg till Laholm, men generellt sett är det rätt bra inne i stan. Ett par
för mig kända brytningspunkter löser den riktigt bra. Lund kan jag egentligen
inte uttala mig så mycket om men det blir ett par postnummer som ligger inbakat
i ett annat. Det är ju fel. Men med lite manuellt pill så tror jag det blir
riktigt bra. Man ser klart och tydligt hur PTS tänkt. Man skulle även ganska
enkelt göra 2 och 3-sifferspostnummerpolygoner redan nu.
Har försökt lite med Voronoi men totalt misslyckats att få det fungera. Kanske
ger mig in på det igen om någon vecka eller så. Skulle nog även vara bra att ha
en hull-algoritm som skapar exakta polygoner mellan punkterna i stället för
konvexa.
kalle
_______________________________________________
Talk-se mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-se