Opened 7 years ago

Last modified 6 years ago

#4244 new enhancement

nomination should for addres in CZ, SK should be improved (addr:conscriptionnumber, addr:streetnumber)

Reported by: gorn Owned by: geocoding@…
Priority: major Milestone:
Component: nominatim Version:
Keywords: addresses, searching, tags, czech, slovak, patch Cc: Andrew Shadura


In Czech republic, Slovak republic, Germany and possibly other countires the house numbering is more complex than just one number. Currently OSM nominatim is not as useful as other map search engines (googlemaps to name one) because this does not seach for certain information. It is a pity, because the information is already in database.

The tags containing other numbers are: addr:streetnumber, addr:conscriptionnumber and sometimes addr:alternatenumber or addr:provisionalnumber (for special buildings). Please add these to the search - there is lot of information available in these fields do it just matter of including them to search so they can become really usefull for users.

Attachments (1)

add-czech-and-slovak-addresses.patch (4.0 KB) - added by Andrew Shadura 6 years ago.

Download all attachments as: .zip

Change History (19)

comment:1 Changed 7 years ago by Sarah Hoffmann

The description on the OSM Wiki about the Czech addressing system is in Czech only. Please, provide more information about these tags and how they are used in addresses and when searching.

comment:2 Changed 7 years ago by Sarah Hoffmann

Understanding the system now and why it causes problems.

Basically, addr:streetnumber are the same as addr:housenumber in other countries and need to be handled in the same way. addr:conscriptionnumber and addr:provisionalnumber are slightly different because they are not really attached to a street but belong to a suburb or town.

Not sure about addr:alternatenumber, it seems rarely used.

comment:3 Changed 7 years ago by Kozuch

Keywords: czech slovak added

comment:4 Changed 7 years ago by MichalP

addr:conscriptionnumber is basically number of house in given city, addr:provisionalnumber is number on given street, housenumber is a combination of both.

rationalle is that in many villages, there are no street names, thus addr:conscriptionnumber only is used.

currently it seems that if there is no street_name, the address cannot be found, searching for "chrenovec-brusno 350" should zoom to but it does not find anything...

comment:5 Changed 7 years ago by kayle

small note to Slovakia

addr:conscriptionnumber - is unique number of house in town(suburb)/village. This number is rarely used when somebody search address in towns and villages with street names, but it is ONLY number in villages WITHOUT street names! When used in search string with street name usually in combination "addr:conscriptionnumber/addr:streetnumber" (again rarely)

addr:streetnumber - only used when street names exists. This numbers people search in town/villages with street names. note: One building (usally block of flats) with one addr:conscriptionnumber can have multiple addr:streetnumbers, each entrance own addr:streetnumber.

sample addr:conscriptionnumber and addr:streetnumber
addr:housenumber = addr:conscriptionnumber/addr:streetnumber

sample with addr:conscriptionnumber ONLY

addr:provisionalnumber - in Slovakia not used after 31.12.1998

comment:6 Changed 7 years ago by datendelphin

Type: defectenhancement

Changed 6 years ago by Andrew Shadura

comment:7 Changed 6 years ago by Andrew Shadura

Keywords: patch added

In CZ and SK, a house number is composed of two numbers: a conscription number and a street number. The conscription number is unique within the place (city, town, village), and the street number is local to the street the house is located at. Usually this is written as 1135/45, where 1135 is the conscription number, and 45 is the street number. In small villages houses don't usually have individual street numbers.

The patch enables osm2pgsql to read addr:conscriptionnumber and addr:streetnumber tags used in CZ and SK, in Gazetteer mode. If any of those two is found alone, it supersedes addr:housenumber, if both exist, they are joined with a slash, and used instead addr:housenumber as well. This is done because addr:housenumber is often used to specify what Mapnik would render (as it doesn't currently recognise additional tags), so quite often it contains incomplete information.

comment:8 Changed 6 years ago by Andrew Shadura

Keywords: addresses added; adresses removed

comment:9 Changed 6 years ago by Sarah Hoffmann

I've set up a test instance with this patch at (CZ, SK only and no Wikipedia importance, so search results may be ordered differently)

It looks good as far as I can see, maybe a few locals could look over it and confirm that it does not result in regressions or weird behaviour with search. Please keep in mind that this patch does not resolve the issue with addresses without a street name. They still won't be found.

I have a mild reservation against overwriting addr:housenumber but according to taginfo addr:conscriptionnumber is used in CZ/SK only and the few addr:streetnumber tags outside of these countries seem to be mostly tagging errors. So, if it goes with local conventions, then so be it. twain, any thoughts?

One final thing you should be aware of: this patch has not only an influence on search but also on address lookup. When looking up coordinates, the addresses will also always be returned with house numbers in conscriptionnumber/streetnumber format.

comment:10 Changed 6 years ago by twain

I'm likewise not a great fan of reuse of the same field for a different meaning since I think it probably blocks implementation of non-street house numbers. The fact that there is a addr:conscriptionnumber is needed in order to select that behaviour and we can't use the existence of a '/' in number since I think some people have done things like '12 1/2' for 12 and a half.

However I can see the expediency of doing it this way for the time being.

Could the patch maybe be changed to also add addr:conscriptionnumber to the 'extratags' field as well? This would leave us a way forward although it does cause some bloat.


comment:11 Changed 6 years ago by Sarah Hoffmann

I'd certainly consider the patch only a temporary solution that needs to be reevaluated when non-street house numbers get implemented. (Although the implication of this patch, namely that people do search by a combination of conscription number and street, is going to make that implementation a little bit more interesting.) In the end, I wouldn't be too worried about compatibility with a non-street house number implementation as I don't see this being done without a DB reimport.

However, good idea about the extra tags, also for debugging. Maybe add addr:streetnumber as well.

comment:12 Changed 6 years ago by Kozuch

How can I stop receiving notifications for this bug???

comment:13 Changed 6 years ago by Andrew Shadura

Cc: Andrew Shadura added

comment:14 Changed 6 years ago by Andrew Shadura

One final thing you should be aware of: this patch has not only an influence on search but also on address lookup. When looking up coordinates, the addresses will also always be returned with house numbers in conscriptionnumber/streetnumber format.

I'm sure this is not only not bad, but also useful: it makes it possible to find out the correct full address by double-resolving it.

comment:15 Changed 6 years ago by Kozuch

Cc: koltie@… added

comment:16 Changed 6 years ago by Kozuch

Cc: koltie@… removed

comment:17 Changed 6 years ago by Sarah Hoffmann

Looking through a few Czech examples, I can't quite figure out how to find the correct place to attach the conscription numbers to. Sometimes, an addr:city is added but I'm not sure that this is always the right thing to attach to. Do you expect some special admin boundaries to be used?

comment:18 Changed 6 years ago by Sarah Hoffmann

Support for the addr:place tag for street-less addresses has just been added to Nominatim. This also adds limited support for conscription numbers.

Addresses without street numbers can be made searchable by adding an appropriate addr:place tag. However, there is still no support for dual addresses. So, if there is a street number tagged (or to be more precise: if there is a addr:street tag and no addr:place tag), then this will take precedence and the place will get the street address only.

Note: See TracTickets for help on using tickets.