Osoitekartat
Ihmisen tärkein tehtävä on oman itsensä löytäminen. Olen välillä kaipaillut kunnollista tapaa selvittää oma sijaintini paitsi risteysten myös osoitteen avulla. Valtaosa tähän tarkoiteuista sovelluksita kertoo kyllä osoitteen vaikka olisit sitten keskellä korpea.
Tämähän ei minullle, riittiselle kuluttajalle, tietenkään riitä.
Vaan mistäpä osoitteiden sijainnit. itellan sivuilta niitä ei ainakaan löydä eikä Openstreetmapin tarjonta ole kovin kattavaa. Maanmittauslaitoksen tiesto_osoitteilla-aineistossa on kyllä osoitealueet mutta ei siinäkään ole tarkkoja osoitepisteitä.
otin lähtökohdaksi kuitenkin tiesto_osoitteilla-aineiston.
Homma ei ollut ihan triviaali: meillä on tie jossa on N kappaletta pisteitä. Pisteet eivät tietenkään osu osoitteiden kohdalle.
Ratkaisin asian jakamalla tien tasakokoisiin osoitekaistaleisiin joiden keskellä itse osoite on. Jako piti tehdä erikseen oikealle ja vasemmalle puolelle. Tunnettuihin pisteisiin laskin sitten desimaalisen osoitteen ja interpoloimalla arvioin sitten tasalukuosoitteet jotka osuivat kahden pisteen välille. Lisäksi siirsin eri puolilla olevat osoitteet 2.5 metriä asianomaiseen suuntaan tien keskilinjalta. MML:n kartat ja gps ovat jo niin tarkkoja että ainakin muutamilla testipätkillä tämä toimi ja osoitepisteet ilmestyivät juuri oikealle puolelle tietä.
Tein testikartat MML:n ruutujaon pohjalta eli 48 * 96 km karttaruutuina, suunnilleen siis asteen kanttiinsa. Loadstonen kannalta osa kartoista oli suuria, osa helvetin suuria. Karttta-aineisto pitäisi jakaa pienempiin palasiin, mutta miten, se on vielä harkinnassa. Postinumeroalueet olisi yksi mielenkiintoinen vaihtoehto jota on kokeiltu jo yleis- ja vaelluskartoissa.
Osoitekartoissa pitää tietysti olla sijaintikunta. Tieto löytyy kivasti kuntakoodina MML:n aineistosta mutta tekstuaalinen nimi pitää hakea muualta. Pikkuvikoja.
Postitoimipaikkakin piti saada mukaan. Tämäkään ei ollut ihan triviaalia: Itellan sivuilta saa kyllä postinumeroluettelon koneellisesti luettavassa muodossa mutta tietojen yhdisteleminen on oma jobinsa. Itellalta saa postinumerot, kuntakoodit, kadunnimet ja talonnumeroalueet, MML:ltä taas kuntakoodit, kadunnimet ja talonnumerot. Enää ei tarvitse kuin yhdistellä about 350000 riviä sisältävä postinumerokanta ja bauttiarallaa kymmenmiljoonainen osoitekanta. Punainen hehku olkkarin nurkassa ei ole takan hiillos vaan neliytiminen, 8 gigan muistilla varustettu multimediakone joka ei tällä hetkellä paljon multimeditoimaan kerkeä.
Paljon on prosessosrissa sähköä virrannut sisään ja lämpöä ulos. Osoitekarttojen kehittely on hidasta konsa jokainen muutos ja sen testaaminen vaatii vähintään tunteja tai ruuhka-Suomessa vuorokauden.
Lisäsin osoitteisiin postitoimialueen jos sellainen oli saatavilla ja kunnan nimen. Lisäsin kunnan nimen myös risteyksiin.
Muutin indeksointia siten että risteykset tuodaan ensin joten kartalle pääsee karkeasti jo ennenkuin koko karttatiedosto on tuotu.
Jos tie on perusnumeroitu eli silläei ole tonttijakoa niin osoitepisteet asetellaan tien lasketulle keskiviivalle sadan metrin välein.
Karttajako tehdään nyt sekä todellisen kuntatiedon mukaan että bounding boxina postinumeroiden mukaan. Nyt ei pitäisi jäädä enää kuolleita kohtia kartalle.
Kävi ajatus että jos päivittäisi tiesto_osoitteilla-materiaalin mutta Maanmittaushallituksen lataussivusto on sellainen javahässäkkä että vaivaiset pois. Homma hyytyi siihen että jumituin johonkin prosenttisäätimeen josta en päässyt millään näppäinkomennolla pois.
Näköapua siis tarvittiin ja samalla selvisi syy javahässäkkäänkin: sivulla on kaunis kartta josta karttatasoja ja -lehtiä voi napsutella päälle ja pois. Onneksi meillä on tämä henkilökohtainen avustaja -järjestelmä:-)
Oletin että parilliset osoitteet ovat aina numerointisuunnassa oikealla. Eivät ole. Siis lisää korjauksia koodiin.
Lisäsin jokaisen segmentin päihin ensimmäisen ja viimeisen osoitteen helpottamaan orientoitumista.
Lisäsin myös osoitenumeroiden yhteyteen kirjaimen osoittamaan kummalla puolella tietä kyseinen osoite on. Merkitsin sen pääilmansuuntana koska mistän tietäisin mihin suuntaan kukin katua kulkee. Palautin myös risteyksissä olleet merkinnät mihin suuntaan kukin tie lähtee. Tämä tieto on vähän redundanttia koska lähellä on joka tapauksessa osoitepiste. Ehkä lisään tämän tiedon vain risteyskarttoihin.
Samalla kirjoitin koko interpolointialgoritmin uusiksi muutaman kerran. Ei muuten yhtään helppoa ilman kynää ja paperia.
Tiesto_osoitteilla on viimeksi päivitetty maaliskuun alkupuolella, odottelen uutta päivitystä.
Pitkän joskaan ei perusteellisen säätämisen jälkeen osoitteiden interpolointi näyttäisi toimivan haluamallani tavalla.
Muutamia osoitteita tulee pyöristysvirheiden vuoksi vielä tuplina mutta tulkiin, parempi osoite liikaa kuin osoite liian vähän.
Turvallisuuden tunteeeseen tuudittautuminen loppui juuri äsken. Elmä olisikin ollut liian hgelppoa jos osoitteet olisivat aina juosseet pienemmästä isompaan mutta ei. Muutama rivi taas lisää koodia ja katsotaan miten juna lähtee taas kulkemaan.
No niin, osoitekartat on laitettu julkiseen jakoon. Pientä viilausta ja testausta on vielä jäljellä mutta eiköhän noilla jo itsensä löydä.
Oli muuten helkutinmoinen vääntö.
Ja vääntö senkun jatkuu...
Osoitekarttoihin oli merkitty myös kohdat joissa tien nimi pysyy samana mutta segmentti vaihtuu lähinnä siksi että kyseisessä kohdassa voi olla muutakin mielenkiintoista.
Nämä perhanan segmenttimerkinnät tulivat sitten myös maakunnallisesti rajattuihin risteyskarttoihin jotka sitten paisuivat megalomaanisiin mittoihin.
Joten eikun vielä kerran pojat...