Fi:Talonumerot
Talonumerointitiedot kannattaa lisätä alla suomennetun Karlsruhe Scheman mukaisesti. Karlsruhe Scheman mukaisesti merkityt talonumerot näkyvät kartalla käytettäessä suurimpia zoom-tasoja.
Tässä kuvatuilla tavoilla merkittyjä osoitteita on syötetty vuoden päivät eikä merkittäviä puutteita ole havaittu. On todennäköistä, että talonumeroiden merkitsemistapa ei tästä muutu. Vaikka jotain muutettaisiin, tämän mukaan syötetyt tiedot voidaan muuttaa ohjelmallisesti.
Aiemmat ehdotukset (engl.) numerointien merkkaustavoista eivät ole johtaneet ohjelmistotukeen eikä merkittävään tietojen syöttöön, mutta keskustelu niistä paljasti niiden ongelmakohdat.
Perusteet
Koska talot sijaitsevat teiden sivuilla, tulee kunkin talonumeron olla tiestä sivussa. Talo ei ole osa tietä, vaan talo esitetään OSM:ssa solmuna tai alueena (= rakennuksena) talon todellisella sijaintikohdalla.
- Jos talolla on vain yksi osoite, annetaan taloa kuvaavalle alueelle sopivat addr=* tagit.
- Jos talolla on useampi osoite, merkataan kukin osoite omaksi pisteekseen, vaikka talo olisi piirretty alueena. Pisteet tulisi sijoittaa talon "sisälle" mutta lähelle osoitenumeroon kuuluvaa tietä lähintä seinää.
- Jos useammalla irrallisella talolla on sama numero, on usein laitettu näiden keskelle yksi solmu jolle osoitetta kuvaavat tagit. Rakennusten yhdistämiseksi ei ole vielä merkkaustapoja, mutta rappujen kirjaimia voi merkata kullekin talolle.
Koska jokaisen talon merkkaaminen ei aina ole kohtuullisen vaivan takana, voidaan talonumeroiden välejä interpoloida; esim. kahden risteyksen välillä tietyllä puolella tietä on kaikki parittomat numerot annetulla välillä. Lopullinen tavoite on kuitenkin merkata jokainen osoite erikseen.
Tavanomaisten tapausten syötön tulisi olla mutkatonta.
Käytettävät tagit
Seuraavat tagit ovat tarpeen tai mahdollisia:
Tag | Vaadittu tieto | Elementti | Arvot | Kuvaus | Esimerkki |
---|---|---|---|---|---|
addr:housenumber |
kyllä | teksti | Talon numero, Suomessa katunumero, ks. rakennusosoite | 1 | |
addr:street |
ei | teksti | kadun, johon tämä talo kuuluu, nimi | Mannerheimintie | |
addr:postcode |
ei | teksti | postinumero, jonka alueelle tämän talon osoite kuuluu | 00100 | |
addr:city |
ei | teksti | kaupunki, jota käytetään tämän talon postiosoitteessa | Helsinki | |
addr:country |
ei | teksti | Kaksikirjaiminen ISO 3166-1 alpha-2 mukainen suuraakkonen maakoodi (lisätietoa wikipediasta). Suomessa "FI" . Huomiota: ISO 3166-1 alpha-2 kaksikirjaiminen koodi Isossa-Britanniassa on "GB" eikä "UK". | FI | |
addr:full |
ei | teksti | talon täydellinen postiosoite. | ||
addr:interpolation |
ei | even/odd/all | interpolointitapa: parilliset luvut (even) / parittomat (odd) / kaikki (all) |
Katunumeron merkintätapa
Katunumero ei Suomessa usein ole yksikäsitteinen numero, vaan samalla tontilla on usein useita rakennuksia, joilla on sama numero. Katunumerossa erottavana tekijänä on tällöin kirjain tai toinen numero, esimerkiksi Siltakatu 123a, Koivutie 15-1 jne.
Kaikki Suomen katunumerot ovat saatavilla avoimena datana Digiviraston ylläpitämästä "Rakennusten osoitetiedot ja äänestysalue" -tietokannasta (https://www.avoindata.fi/data/fi/dataset/rakennusten-osoitetiedot-koko-suomi). Aineiston paha puute on, ettei se sisällä rappukirjaimia. Aineiston 2020-08-14 julkaistussa versiossa on 3678742 osoitetietoa, joissa esiintyy 23067 erilaista katunumeroa. Katunumerot jakautuvat mm. seuraavanlaisiin tyyppeihin:
Esimerkki | extended regexp | Osoitteita | Erilaisia numeroita | Huomioitavaa |
---|---|---|---|---|
ei katunumeroa | '^$' | 468851 | 1 | |
123 | '^[[:digit:]]+$' | 2888657 | 5531 | Ainoa rakennus tontilla tai tontin eri rakennuksilla on sama katunumero. |
123a | '^[[:digit:]]+[a-ö]+$' | 295243 | 10053 | Yleisin tyyppi, suositeltava muoto, kun tontin rakennukset on eroteltu kirjaintunnuksella. Tarkemmin: kun tontista 123 on lohkaistu irti pienempi tontti 123a. |
123 a | '^[[:digit:]]+ +[a-ö]+$' | 3178 | 1347 | |
123A | '^[[:digit:]]+[A-Ö]+$' | 77 | 48 | |
123 A | '^[[:digit:]]+ +[A-Ö]+$' | 65 | 37 | Kansallisissa standardeissa suositeltu muoto, kun tontin rakennukset on eroteltu katunumeron sijaan rappukirjaimilla. (Digiviraston ja kuntien rakennus- ja osoiterekistereihin ei ole kerätty tietoa rappukirjaimista.) |
123-a | '^[[:digit:]]+ *- *[a-ö]+$' | 2 | 2 | |
123-A | '^[[:digit:]]+ *- *[A-Ö]+$' | 0 | 0 | |
123-1 | '^[[:digit:]]+ *- *[0-9]+$' | 20782 (10136 sellaista joissa saattaa yhdistyä 2, 3, 4 tai 5 peräkkäistä tonttia) | 4899 (232) | |
123/a | '^[[:digit:]]+ */ *[[:alpha:]]+$' | 12 | 8 | |
123/1 | '^[[:digit:]]+ */ *[[:digit:]]+$' | 123 | 108 | Kansallisissa standardeissa suositeltu muoto, kun tontin rakennukset on eroteltu numeroin. |
123 as A | '^[[:digit:]]+ *as *[[:alpha:]]+$' | 0 | 0 | |
123 as 1 | '^[[:digit:]]+ *as *[[:digit:]]+$' | 40 | 37 | |
123 rak 1 | '^[[:digit:]]+ *rak *[[:alnum:]]+$' | 3 | 3 | |
123a1 | '^[[:digit:]]+ *[[:alpha:]] *[[:digit:]]+$' | 229 | 153 | Sisältää kolmannen komponentin, joka kuuluu mieluummin addr:unit tai addr:flats -tagiin |
muut | 1480 | 840 | ||
Yhteensä | 3678742 | 23067 |
Datan yhteensopivuuden ja tulevien importtien sujuvuuden takia on katunumerot siis syytä tagata muotoon addr:housenumber="123a", kun tontin rakennukset on eroteltu toisistaan kirjaimin, ja muotoon addr:housenumber="123-1", kun ne on eroteltu numeroin.
Käyttötapaukset
Yksi talo yksinäisenä solmuna tien sivussa
<node id="1"> <tag k="addr:housenumber" v="10" /> </node>
Talonumeron sijainti lasketaan etsimällä linnuntietä lähin piste solmua tai aluetta lähimpää kulkevalta tieltä.
Yksi talo taloksi merkattuna alueena
<way id="1"> <tag k="addr:housenumber" v="10" /> <tag k="building" v="(yes|apartments|...)" /> </way>
Aivan kuten edellisessä kohdassa, mutta talon keskipistettä tullaan käyttämään talon sijaintina laskettaessa lähintä pistettä lähimmältä tieltä.
Useita taloja tien varrella
Piirretyn tien suuntaisesti lisätään tien sivuun solmuja, jotka yhdistetään uudella way:lla. Tätä uutta way:ta käytetään vain merkkaamaan solmuissa annettujen numeroiden välistä interpolointia ja interpoloinnin laatua.
<node id="01" lat=... lon=...> <tag k="addr:housenumber" v="10" /> </node> <node id="02" lat=... lon=...> <tag k="addr:housenumber" v="20" /> </node> <node id="03" lat=... lon=...> <tag k="addr:housenumber" v="100" /> </node> <way id="??"> <node ref="01"/> <node ref="02"/> <node ref="03"/> <tag k="addr:interpolation" v="even" /> </node>
Solmuissa annetuista osoitenumeroista vain kokonaislukuarvot huomioidaan interpoloinnissa ja interpolointia tehdään vain niiden solmujen välillä, joissa kummassakin on kokonaisluku. Näin esimerkiksi talonumeron "12b" kummallekin puolelle täytyisi merkitä omana solmunaan talot 10 ja 14 (oikeille kohdilleen), jotta interpolointi voi jatkua näistä numeroista.
Jos tieltä puuttuu osoitenumeroista joku numero, tulisi numerot piirtää kahtena erillisenä way:na; toinen kuvaa numerot esimerkiksi numerot 1-11 ja toinen numerot 15-25, jos 13 puuttuu parittomien numeroiden sarjasta.
Erittäin kaukaisessa tulevaisuudessa OSMista voidaan olettaa löytyvän (maailmanlaajuisesti) kaikki talot muotoisinaan alueina, joilla jokaisella on yksilöity osoitteensa. Tällöin interpolointikäytäntö menettää merkityksensä, mutta siihen asti sitä tarvitaan. Väitetysti joissain muista lähteistä luvallisesti massatuotavissa tiedoissa on myös käytetty interpolointia osoitenumeroiden merkkaamiseen, joten näiden tuominen osaksi OSMin tietokantaa ei onnistuisi ilman interpolointi-viivoja.
Valinnainen osa: talon yhdistäminen oikeaan tiehen
Yhdistäminen nimellä
<node id="1" lat=... lon=...> <tag k="addr:housenumber" v="10" /> <tag k="addr:street" v="Astreet" /> </node>
Ihmiskäyttäjälle lienee, ainakin nykyisillä karttaeditoreilla, helpointa syöttää taloja kuvaaville solmuille tarvittaessa tagi addr:street jonka arvoksi annetaan tien name-tagissa annettu arvo. Tietä ohjelmallisesti etsittäessä tutkitaan vain way:t, joilla on tagi highway=*.
Vaikka tässä on mahdollisuus kirjoitusvirheisiin ja päivitysvirheisiin tien nimen mahdollisesti muuttuessa, oletetaan tämän olevan useimmissa tapauksissa riittävä käytäntö.
Yhdistäminen relaatiolla
Tiedon yhtenäisyyden ja koska karttakohteiden yhteyksien kuvaamisen rakenteeksi on OSMissa luotu relaatio-rakenne, on relaatioiden käyttö "oikeampi" tapa.
Relaatioiden lisääminen oletetaan onnistuvan helposti kun kartta-aineistoa esikäsitellään kullekin etsintäsovellukselle sopivampaan muotoon. Näitä relaatioita voi kuitenkin lisätä editoreilla manuaalisestikin.
Relaation tagit
Tagi | Arvo | Kommentti |
---|---|---|
type | associatedStreet | |
name | streetname | On suositeltavaa käyttää kadunnimeä tai muuta relaation selkeästi yksilöivää nimeä |
Relaation jäsenet
Tie tai solmu | Rooli | Lukumäärä | Kommentti |
---|---|---|---|
street | yksi | Tie jota pitkin interpoloidaan | |
house | yksi tai useampi | Yksi tai useampi määritelty talonumeron paikka |
<node id="1" lat=... lon=...> <tag k="addr:housenumber" v="10" /> </node> <relation id="??"> <tag k="type" v="associatedStreet" /> <member type="node" ref="11" role="house" /> <member type="way" ref="???" role="street" /> </relation>
Solmuna esitetty yksittäinen talo
<node id="11" lat=... lon=...> <tag k="addr:housenumber" v="10" /> <tag k="addr:street" v="AStreet" /> </node> ja <relation id="??"> <tag k="type" v="associatedStreet" /> <member type="node" ref="11" role="house" /> <member type="way" ref="???" role="street" /> </relation>
Interpoloitavan sarjan yhdistäminen tiehen
<node id="1" lat=...lon=...> <tag k="addr:housenumber" v="10" /> <tag k="addr:street" v="AStreet" /> </node> <node id="2" lat=... lon=...> <tag k="addr:housenumber" v="20" /> </node> <node id="3" lat=... lon=...> <tag k="addr:housenumber" v="100" /> </node> <way id="11"> <nref id="1"/> <nref id="2"/> <nref id="3"/> <tag k="addr:interpolation" v="even" /> </way> ja <relation id="??"> <tag k="type" v="associatedStreet" /> <member type="way" ref="11" role="house" /> <member type="way" ref="???" role="street" /> </relation>
Osmarender eli Tiles@Home piirtää solmut, joilla on tagi addr:housenumber=*, harmaina pallukoina, joissa valkoisella annettu numero. Vastaavasti tagilla building=* merkattujen alueiden keskipisteeseen piirretään vastaava pallukka osoitenumerolla. Lisäksi wayn, jolla on tagi addr:interpolation=*, solmut yhdistetään harmaalla katkoviivalla, ellei tuo way ole osa relaatiota jolla on tagi type=associatedStreet. Interpoloimalla saatavia osoitenumeroita ei (vielä?) piirrettäessä lasketa tai piirretä lainkaan.
Käytännössä tämä tarkoittaa, että useamman korttelin mittaiset interpolaatiot piirretään risteävät tiet ylittävänä katkoviivana (jos osoitenumerot sisältävät solmut on yhdistetty omalla way:llaan interpolaatiota varten) tai että tie addr:interpolation-tagilla ilman relaatiota saa toistaiseksi päälleen harmaan katkoviivan. Käsin syötetyn relaation kanssa interpolointi on yksiselitteinen ja kartalle ei piirretä ylimääräistä.
Valinnainen osa: aputieto täydellisestä osoitteesta
<node id="01" lat=... lon=...> <tag k="addr:housenumber" v="10" /> '''<tag k="addr:postcode" v="832989" />''' '''<tag k="addr:full" v="AStreet 10 832989 My Town France" />''' </node>
Valinnainen osa: Tarkentava tieto kulkuyhteydestä tieltä talolle
<relation id="??"> <tag k="type" v="roadAccess"> <member type="way" ref="11" role="accessto" /> (mihin taloon) <member type="node" ref="11" role="accessvia" /> (minkä solmun kautta, valinnaisesti useampia:) (Jokainen sisäänkäynti voidaan merkata, esimerkiksi ostoskeskukset tai vastaavat.) <member type="way" ref="???" role="accessfrom" /> (miltä tieltä) </relation>
Accessvia -roolissa oleva solmu ("kulku tämän kautta") voi olla solmu tiellä tai solmu taloon päästävällä portilla. Tällöin kulkuyhteyttä etsittäessä osoite löydetään tätä solmua lähimpänä olevana kohtana accessfrom roolissa olevalta tieltä.
Käyttö
- JOSM-editorin Esivalinnat-valikosta löytyy helpottava syöttöruutu addr:* -tageille
- Useita kadunvarsia sekä Suomessa että muissa maissa on täytetty osoitteilla.
- Ohjelmaan Traveling Salesman on lisäosa org.openstreetmap.osm.data.searching.HouseNumberFinderTest talonumerollisten osoitteiden etsimiseen.
- Mapnik- ja Osmarender-kartoille on tehty muutokset numeroiden piirtämiseksi kartalle. Pyöräilykartalla numeroita ei vielä näytetä.