What makes houses and streets belong to towns in Finland?

Hi All,
Could you please help me?

I am converting OSM data to the format of CityGuide, popular navigation software in Russia.

OSM map of Finland is quite popular among CityGuide users, especialy in Saint Petersburg as people from Saint Petersburg frequently visit Finland.

But there is a problem - address search does not work, because I do not understand ** what makes houses and streets belong to towns in Finland? **.

In Russia we use the following scheme - city is marked in OSM simultaneously in two ways - as a node, with tags place=city|town+name=*, and as a polygon with the same tags. Thus, if a house or a street is within this polygon, I can determine that they belong to the city and compose a full address (for example: Moscow (from the city polygon), Tverskay street, 13 (from addr:street and addr housenumber on the house).

As I see, full Karlsruhe scheme is not used in Finland as well. E.g. on this house only addr:street and addr:housenumber are present, no addr:city.

Also, what is general structure of address in Finland? In Russia it’s .

Sorry that I use English, I do not know Finnish at all.

some quick notes…
The Karlsruhe schema is used in full by some editors. For example: http://www.openstreetmap.org/browse/way/122119223 (added by me)

I think there is supposed be only uniquely-named roads in a single municipality in Finland. So there should be only one Yliopistonkatu in Jyväskylä but in other municipalities there there are streets with a similar name (for example in Helsinki). Municipalities are supposed to be marked by closed polygons. Unfortunately, not all municicpalities are yet included in OSM. (And it might be computitionally expensive to place roads in their respective municipalities.)

If you’re going to find the actual address for a road it’s more complicated because, for example, inside the municipality of Jyväskylä there are several “places” like Korpilahti, Vaajakoski and Jyskä which are used in addresses. These can be found reliably via OSM only when someone has added the post code to every house (I think the actual “post area” database costs money and is proprietary).

So if your user searches for Väinöläntie, there should be only one result which is in Jyväskylä, and it’s more exactly in Jyskä (with post code 40420 Jyskä)

The address system is like this:
Street name House number (Entrance number Flat number)
Post code Post code area

Kauppakatu 2 A 19
40100 Jyväskylä


There is another free address database available at http://latuviitta.org/documents/mtk_osoitteet_2012.zip (Spatialite database) and http://latuviitta.org/documents/mtk_osoitteet_2012_shapefile.zip (shapefile)
Data are from the National Land Survey of Finland and they are under attribution license. Link to license should be included in the zip files. Report about how the dataset was processed is at http://latuviitta.org/documents/Maastotietokannan_osoitteiden_haltuunotto.pdf
Document is in Finnish but it has lots of screenshots and SQL so perhaps you will understand the essentials. Feel free to ask for translation.

The Spatialite database comes with Finnish municipality polygons. If you do not want to use the address points from NLS you can still use the municipality polygons together with OSM address points and join the municipality names with address points by adapting the spatial join SQL that is presented in the document (ST_Contains).

Zer, JRA

Thanks for you replies.

With what tags exaсtly? boundary=administrative+admin_level=??

Do these places have official borders, or they are just historic names?

Other questions may follow :slight_smile:

admin_level=8. Here is an example: Руоколахти (fi: Ruokolahti and sv: Ruokolax). There is still some work to do, since that multipolygon is not yet closed.

Korpilahti is a former municipality. Vaajakoski and Jyskä were “villages” in the former municipality “Rural municipality of Jyväskylä” (fi: Jyväskylän maalaiskunta). Those former municipalities merged with city of Jyväskylä into the “new” city of Jyväskylä on 2009-01-01. So Korpilahti, Vaajakoski and Jyskä are now villages of the “new” Jyväskylä. Or to be exact, “kaupunginosa” (city area) of Jyväskylä. And they have got borders (admin_level= 10). There are 86 city areas in Jyväskylä, #01-38 covering the “old” Jyväskyä, #41-58 & 60-79 covering the former Rural muni of Jyväskylä and #80-89 the former muni of Korpilahti.

As I understand, the former administrative village of Korpilahti has been split into city areas #80-85. Jyskä is #66 and Vaajakoski #69

Looking even closer, there are sub areas (fi: pienalue) within those city areas. Jyskä is divided into the sub areas Tammirinne and Jyskä. The latter covers also a part of the neighbouring city area Vaajakoski. So the borders (admin_level=11?) of the sub areas are not always totally within the borders of the concerning city area.

Here is an incomplete list of municipalities (Finland:Kunnanrajat), that has got a multipolygon border relation (admin_level=8). Names in bold = the multipolygon is closed.

The most active mappers feel that street and housenumber (and postal code, if somebody local knows it) should be enough on a building, once somebody draws the municipality borders as ways and relations. Hopefully, we’ll have them soon (soon = the licence was believed to be clear on 1st May 2012, but…) from the national mapping agency. Most mappers haven’t bothered with the house numbers at all. It’s just missing data and missing mappers.

Generally, we write addresses as
( where available) (newline)

( not really used, but last, if written)

(And, in fact, above can be “postal area name”, often a former municipality or just a smaller part of one. But even the current municipality is used in real life.)

// It’s just missing data and missing mappers.
Collect house numbers is very hard work. :slight_smile:

Well, another question, not related directly to postal addresses. How should I assign speedlimit for roads in Finland?

In Russia we distinguish between streets (inside cities/villages) and roads (outside cities/villages), from the point of view of the traffic regulation.

For the streets speed limit is 60 kmph, and for roads speed limit is 90 kmph. For conversion purposes, I check if a highway is inside place polygon.

In some cases an address might carry an “extra” letter, such as Mannerheimintie 4a B 10 vs .Mannerheimintie 4b B 10. The house number 4a resp. 4b distinguishes two separate neighbouring houses.

Sometimes, when a house of flats does have just one entrance, the adress might look like Mannerheimintie 5 as. 10. In this case as. is short for asunto (flat) and means house number 5, flat 10.

The addresses of terraced houses or dual family houses might look like Mannerheimintie 6A, Mannerheimintie 6B, Mannerheimintie 6C - where A, B resp. C stands for an appartment entrance.

In Finland the concerning limits are usually 50 km/h resp. 80 km/h. Trunk/primary and sometimes even secondary roads 100 km/h and motorways 120 km/h. But in populated areas the speed limit might drop down to 30 or 40 km/h (on residential streets). And roads with an 80-limit might in wintertime get a speed limit of 70 km/h, as well as motorways down from 120 to 100 km/h.

How should I define which areas are populated from osm data? :slight_smile:

You can hope that all the buildings from the national mapping agency data get imported, and then you calculate buffer zones for every building, and turn those into suitable polygons where the buffers overlap enough :slight_smile: I don’t remember the exact distances for that. That’s the only definitive way I’ve read, on how to define them not-from-street-signs. Even that would give holes, which are not “outside” in reality. Other than that, it’s hard to get it right.

Only recently there has been some coordinated effort to collect these highway=city_limit signs. The only other way to be sure is maxspeed=50 + source:maxspeed=FI:urban, if somebody has bothered to tag it. Maxspeed=50 without the condition “inside populated place” is very rare on major highways. Small rural roads (tertiary and below) can have a 50 limit because of the curves and such, even outside populated places. I’d hope that most, if not all, primary highways have the lower speed limit sections tagged appropriately by now.

It would be hard to draw the populated areas as separate polygons, mostly because often the major highways penetrate deep into the populated area, but are not “inside populated area” themselves.

Other than that, you might get a good guess from “a place=city/town node is near and road is secondary or lower”. My wild guess is that most place=village 's are not “inside a populated area” with regards to the traffic rules - but at least some are (for example “Veikkola”). In the first sentence, “near” being roughly a radius of 2 km.

Let us know if you have a nice overlay with your guesses :slight_smile:

The speed limits are in Finland defined with “maxspeed” ( http://wiki.openstreetmap.org/wiki/Key:maxspeed). The special thing in Finland is that we have different speed limit in summer (~from April to October) and winter. Those are usually defined with “maxspeed:seasonal:summer” and “maxspeed:seasonal:winter” tags. Sample: http://www.openstreetmap.org/browse/way/61840557/history. There is also few with maxspeed:summer / maxspeed:winter.

I did spend some time and create (bad) map about speed limits in Finland (situation 11.07.2012 / will not update): http://www.latukartta.fi/maxspeed/highway.html. The actual motivation was to make visual speed limits in my area - it’s easier to update stuff when you know what has being done. There is
for : maxspeed=120 define line-color : blue
elsefor : maxspeed=100 define line-color : red
elsefor : maxspeed=80 define line-color : yellow
elsefor : maxspeed=70 define line-color : black
elsefor : maxspeed=60 define line-color : green
elsefor : maxspeed=50 define line-color : purple
elsefor : maxspeed=40 define line-color : black
elsefor : maxspeed=30 define line-color : brown

Please also note that buildings can have multiple addresses in Finland (one for each adjacent street). These are mapped as nodes within building outline, each having one address.

Entrances (A, B, C, …) should be slowly removed from addr:housenumber and replaced with ref+entrance=staircase / entrance=home / entrance=x node that indicates the actual door position but whether that’s easy / possible to do with a reasonable accuracy on a particular area depends on quality of imagery. Sadly, in some recently built houses also entrances have started to use small letter for entrances in Helsinki (I think this is against some guidelines tough which tell you how they should be marked).


Hi There!
I read this topic carefully, but still has question. Does the new municipalities (admin_level=8) means the city? I was last week in Kouvola and found that it covers a very large area (http://www.visitkouvola.fi/en/index/kouvolatanaan.html), and everything inside this area is in “City of Kouvola”, even the National Park Repovesi (40 km from the centre of Kouvola).

Could you please inform me, is the licence is cleared already or not yet?
If it is cleared - where can i get it?
Thank you in advance.

Officially, there are no cities in Finland, only municipalities. Cities were often founded by the crown and later, when Finland got independent, the state now and then granted the status of being a city. In 1995 cities were “abolished”. After that a municipality could declare itself a city, so nowadays one third of all municipalites are cities.

Kouvola was until 2008 a small city. In 2009 it ceased to exist together with five other cities/municipalities (Anjalankoski, Elimäki, Jaala, Kuusankoski & Valkeala) and these merged into the new city (municipality) of Kouvola. The area of “new” Kouvola is now 64 times larger than the area of the old one. The boundary of “new” Kouvola should be tagged with admin_level=8 and the boundaries of those former municipalites with admin_level=9. Borders of villages/suburbs within a municipality are tagged with admin_level=10. Admin_level=9 or 10 borders are hard to get, since they are not shown on the map of National Land Survey of Finland.

Thank you for quick reply.
Can I add place=town to the relation of “new” Kuovola to fix the problem with address search in our navigation software?
The problem is described in first message.
Now everything is clear, thanks.

There is also lots of other merging recently and in the future too, so expect “cities” to enlarge in Finland (on national politics level current rulers would want to significantly reduce the number of municipalities while municipality level politics tend to mostly oppose such plans so it’s hard to tell how things end up and on what schedule).


Do this list is updated automatically or you update it manually? from time to time?

Another question:
Here http://www.maanmittauslaitos.fi/aineistot-palvelut/rajapintapalvelut/rasteriaineistojen-palvelurajapinta-wms I found some data with municipalities borders.
Can smbd help me with translation (google translater couldn’t :slight_smile: ) - is this data is free? Can I use it in OSM? How can I connect this WMS in JOSM?

Thanks in advance

Updated mostly by me, since the OSM wikipages aren’t automatically updating themselves.

Yesterday I noticed that Potlach 1 is no longer in use. I used it to search for a specific relation (using a relevant name), since the search function (of relations) in Potlach 2 is still hardly usable. In P2 you have to know the correct id of a relation. Using google search “name + site:openstreetmap.org” isn’t that a handy replacement for the searching function of P1. Maybe there’s a better relation searching tool that I have missed?

Edit: Yesterday I also noticed that a couple of users have entered the border of the former municipality of Anjalankoski. They didn’t use a relation, but only ways to mark this level 9 border. I think the southern and eastern sections of that border are not correct.

I am not sure if it is better, but it could be more flexible. Download finland.osm.pbf from http://download.geofabrik.de/openstreetmap/europe/ and use Osmosis or some other tool to extract what you need, and then load the result into JOSM and use its search. I would try something like this:

osmosis --rb finland.osm.pbf --tf accept-relations boundary=administrative --used-way --used-node --wx finland-boundary-relations.osm
osmosis --rb finland.osm.pbf --tf reject-relations --tf accept-ways boundary=administrative --used-node --wx finland-boundary-ways.osm
josm finland-boundary-relations.osm finland-boundary-ways.osm

This should be shown in the above file finland-boundary-ways.osm.

I can still access Potlatch 1 by clicking “Edit”. I have set it as default editor in my preferences, but I’m not sure if this trick works for a long time, though.