From OpenStreetMap Wiki
Jump to: navigation, search
Available languages — Names
Logo. Feature : Names
One example for Feature : Names
The name tag is the primary tag used for naming a Element.

We use name=* to tag the name of things. We tag names of roads, pubs, railway stations, parks, buildings and anything which has a name. See more at Map Features#Name

ITO Map has a layer to highlight named and unnamed and/or addressed buildings.

Key Variations

Descriptions and examples.

  • name=* – Default name
    name=Channel Tunnel
  • int_name=* – Internationally known as
  • nat_name=* – Nationally known as
    nat_name=That debt-ridden hole in the ground (obviously a joke, not an actual valid tag usage)
  • reg_name=* – Regionally known as
    reg_name=Gateway to France
  • loc_name=* – Locally known as
    loc_name=The way to Carrefour
  • old_name=* – Historically or previously known as
    old_name=A long swim (obviously a joke, not an actual valid tag usage)
  • alt_name=* – when alternative name exists (which doesn't fit in one of the tags name above) (recognized by Nominatim)
  • short_name=* – for a common abbreviation, useful for searching (recognized by Nominatim)
  • official_name=* – The fully qualified official name. It has been created for country names, but we need a clarification for other cases between name, int_name, loc_name and official_name.
    official_name=Principat d'Andorra [where name=Andorra]
  • sorting_name=* - name, used for correct sorting of names.
    sorting_name=Communication street (where name=street of Communication)


Abbreviation (don't do it)

An extreme example of abbreviation: Lake Washington Boulevard Northeast and Main Street

If the name can be spelled without an abbreviation, then don't abbreviate it. Computers can easily shorten words, but not the other way (St. could be Street or Saint). If the signs have abbreviated words and you don't know what the full word is, then use it temporarily until someone else completes it. Using short forms is a decision of software, i.e., the underlying data should have the full street name. This will allow a renderer, a router or a location finder to introduce abbreviations as necessary. See, for instance, the list of abbreviations used by Name Finder and Nominatim.

Use mixed case with the first letter of each word capitalised, e.g., Church Street, not Church street. Note: Regional rules have preference over general rules. For example, in Flemish, capitalisation of last names gives a hint about the nobility status of the person. Street or company names derived from those last names should copy the same capitalisation. In non-Latin based languages, it's often not even possible to capitalise a name.

If the name is incorrect when spelled in full, however, do not falsely expand it. (For example: Wilts & Berks Canal, British placenames beginning with "St".)

Apart from following the above rules, you should always enter the full name as it appears on the street name signs.

Be aware that street signs may contain errors.

Watch out for apostrophes. The same rule applies. If the street sign has an apostrophe, the OSM data should have an apostrophe. There is no obvious consistency; the London Underground station Barons Court is adjacent to Earl's Court, one with an apostrophe, one without.

Name is the name only

The names should be restricted to the name of the item in question only and should not include additional information not contained in the official name such as categories, types, descriptions, addresses or notes. However - if something has the official name "East 110th Street" this full name should be in the name nonwithstanding the fact that the "street", the "110" and "east" might be deducible from some other information. If something really doesn't have a name, don't add a name to OpenStreetMap. Any additional information should be included in separate tags (see, e.g., aforementioned links) to identify its meaning.

Some examples of incorrect usage:

  • Multipolygon Baldo Forest: do not include the object type or other OSM terminology, if it does not apply outside of OSM
  • The Royal Albert Hall, London: do not otherwise include the location London as part of the name, even if there are multiple objects of the same name
  • closed pub (due for demolition): do not describe the object in lieu of a name. Consider the description tag and also adding an old_name tag
  • no name (see #No name, below)
  • Interstate 5 southbound lanes: do not separately name parts of the same object where they are separate in OSM, but not outside of OSM.
  • Manchester City (for a city named Manchester, do not add a descriptive City; however note that New York City may be correct as the common name for The City of New York)

No name

Streets which have no name could be tagged noname=yes, but there are several tagging proposals under discussion: Proposed features/Noname. The idea is to clearly indicate that the street genuinely doesn't have a name, because the absence of a name tag is increasingly used to indicate areas which need to be surveyed still.

Left and right names

For way objects, names can differ by side of the object.

For example, a street may be on the boundary between Belgium and the Netherlands, Belgium gives it the name "Amsterdamsestraat" and the Netherlands gives it the name "Brusselsestraat".

This is solved by using the name:left=* and name:right=* tags to name both sides separately (using the direction of the way to determine left and right) . The name=* tag can still include both names in order to support different tools.


  • name=Amsterdamsestraat
  • name=Brusselsestraat
  • name=Amsterdamsestraat - Brusselsestraat

note: different left-and-right names doesn't exclude the existence of multilingual names (which also happens more often on country borders). So tags like name:left:fr=* are possible.


By now the majority of rendering systems can deal with unicode characters, so you can use the local script for the default name tag. There is no need to use the Latin script.

See also Multilingual names

For adding localized names in different languages, add additional name tags with a two letter suffix on the name key. For example, name:fr, for the name in French and name:en for the name in English. The default name (occupying the 'name' tag without suffix) should be the name in whatever language is used locally.

Here is an example of the usage. All these tags might appear on the same element :

name=Irgendwas        (the default name, used locally)
name:en=Something     (the name in English)
name:el=Κάτι          (the name in Greek)
name:de=Irgendwas     (the name in German)
name:pl=Coś           (the name in Polish)
name:fr=Quelque chose (the name in French)
name:es=Algo          (the name in Spanish)
name:it=Qualcosa      (the name in Italian)
name:ja=何か          (the name in Japanese)
name:ko=뭔가           (the name in Korean)
name:ko_rm=Mweonga    (the name in Romanised Korean)

This leads to a more precise definition of alternative names.

Example of language codes according to the alpha-2 code of ISO 639-1 :

de  German
pl  Polish
el  Greek
en  English
es  Spanish
fa  Persian
fr  French
it  Italian
ja  Japanese
ko  Korean
ru  Russian
zh  Chinese
ko_rm Romanised Korean (NOT conforming to BCP 47 standard, should be: ko-Latn)

A short discussion on this language suffixes can be found on the discussion page.

Renderer support: There are a few experimental rendering systems displaying these localised names. See Map Internationalization

Import: using osm2pgsql allows users to define new .style files which can include other language's name columns and bring them into the database. In order to render from these columns it is necessary to set up PostGIS views which present these columns as 'name' instead of 'name:languagecode'. An easier alternative might be to use a lua style file to move "name:XX" if it exists to "name".

Editor support: JOSM builds 1044 and newer support the display of local names. It detects the current system locale and tries to display names in this language first. You can change the order JOSM looks for names in the JOSM expert settings. Example: To display names written in Thai first, even if the current locale is 'en' set the following property:


Avoid transliteration

Transliteration is the process of taking a name in one language, and simply changing letters from one script to another. In general we should avoid doing this with tags in the OpenStreetMap database. Everything with a name could have auto-generated transliterations, so not just city names, but every road, and every cafe! This kind of automatic augmenting with data is best left for data users. For example, Sven Geggus has demonstrated the principle of rendering with auto-generated transliterations. We want to avoid adding in tags into our database for every named object via automated or semi-automated Import.

Instead we only put commonly used names in other languages into the database. While we typically think of these as translations, in most cases names that fit this criteria are not literal translations, example: the lake that the city of Geneva lies on is in French (Geneva is a French speaking city) Lac Léman, in German Genfersee. These are names which have been used by people on the ground, speaking in different languages (In general we're following Good practice#Map what's on the ground)

For example, small towns in England probably don't have a special Russian name, unless there is a local Russian community or something. Their names can all be transliterated into Russian script, but it's not a good idea to add lots and lots of tags to all the towns in England containing these transliterated names.


loc_name is for the name of a feature as it is known locally, but only where this is deemed to be too much of a slang name or otherwise unofficial-sounding. Ordinarily though, the name which local people use is the name we set in the name tag! Examples where we have used loc_name:

  • There is a bridge in Glasgow known as the Squinty Bridge, but its official name is the Clyde Arc. I have never heard anyone calling it that, so the bridge is tagged loc_name=Squinty Bridge name=Clyde Arc.
  • In Reading there's Union Street, but it's been known for decades as Smelly Alley on account of the fishmongers that lined it. The loc_name is ideal.


Apply when an alternative name exists, e.g., a street name has different syntax, sometimes even on street signs, although it is not only for street names.

Don't use it for abbreviations and only when one of the other name types don't apply, e.g., reg_name or name:lg_code for regional translations.

These alternative names are usually not rendered, but can be used by applications like Nominatim.


sorting_name=* is a proposed approach to supply an alternate name which systems can use for the purpose of sorting alphabetically. This would be useful for street names in some languages/countries, particularly Russian, where words like "Street" are frequently used as a prefix. This is problematic if you simply sort on the main "name" tag.

Date namespace suffix for historical names

The date namespace suffix can be used for historical names, e.g., "name:1953-1990 = Ernst-Thälmann-Straße".

Further reading