|Used to provide address information for the building or facility.|
Address information can be added to OpenStreetMap using a variety of methods, such as adding a simple node containing an address, adding address information to a building or site outline, or alternatively to an entrance node for the building.
How to map addresses
- isolated nodes
- nodes that are parts of building polygons ( = entrance=*s )
- building=* polygons
- on polygons representing the perimeter of the site.
Buildings with multiple house numbers
- Create an address node for each housenumber and place each node somewhere on the building outline (or inside the building).
- If house numbers are associated with individual entrances, tag those numbers to entrance=* (old version - building=entrance) nodes.
- Separate the numbers by commas (e.g., "11,13,15").
- Specify the range (e.g., "10-95"). This is the preferred method when such a range is officially used for the entire house.
You may also use addr:interpolation=* to describe whether that includes odd, even or all numbers.Since interpolateable numbers like 12,14 etc exist, you may specify them on the entrance nodes instead of using a range on the building-way.
- Create separate connected polygons for buildings with different addresses. You may do this even if they share walls, but splitting a corner house diagonally is not widely accepted.
Multiple buildings for one housenumber
This often happens in farms, factories or schools. In that case, it's possible to add a perimeter to the site which contains the addr tags and other general tags such as the name. This makes sure you have less redundancy in your data. To name the buildings, use addr:housename=*.
As long as we don't have a node or building outline for each house(number) along a way, it's also possible to use automatic number interpolation. For that, draw a way connecting the existing house numbers and mark it with the type of interpolation as shown in the picture above. Additional tags such as addr:street=* are still added to the objects with the addr:housenumber=* tag, the interpolation way only gets the addr:interpolation=* tag.
For irregular missing house numbers (e.g., missing "13") two ways need to be drawn (e.g., "1-11" and "15-25"). If there is a regular structure to the missing house numbers, for example, every other number is missing from a sequence (example for an odd way: 3401, 3405, 3409, etc.), use a numeric value with addr:interpolation=* to indicate the value to increment between house numbers. (Note: addr:interpolation=odd and addr:interpolation=even are just special cases of addr:interpolation=number, where number is 2, and the beginning node is odd or even, respectively.)
If there is a house number on a single node or single building polygon and that house number also appears as the result of an interpolation, software should handle this case gracefully and favour the individually tagged house number as the real position.
As seen in the example picture above, it's allowed to add nodes that do not have an integer value for their addr:housenumber tag somewhere in an odd/even/all interpolation (e.g., "12b"). Those will be ignored for the interpolation. However, endpoints of the interpolation way always have to follow the given interpolation rule!
You can use the interpolation method "alphabetic" to interpolate the alphabetical characters in the house number. So if you have all the houses from 7a to 7f in a row, you can connect them by a way tagged with addr:interpolation=alphabetic. You can not mix alphabetic interpolation with other interpolation methods. There is a special case for the Latin character set in which the first entry in the sequence is a number, followed by the number plus the letter A. For example, the range 25-25F means that the houses are numbered 25, 25A, 25B … 25F.
Using Address Interpolation for partial surveys
To indicate the accuracy level of a and interpolation you can use the optional tag addr:inclusion=*, to represent what data is missing from a house number survey.
- Not all houses are yet present, but the endpoints of the street are surveyed.
- The endpoints of the street are not known, but a possible range can be estimated.
- house numbers are missing or damaged beyond recognition, so the interval can not be correct.
- Use of US TIGER data to indicate all possible addresses on a block; useful for routing to the nearest block where no survey has been done.
The optional tag addr:inclusion identifies the accuracy of the data.
- addr:inclusion=actual - Represents an accurate survey where calculating every house number from the address interpolation way results in an exact match with physical houses. This is the same meaning as omitting the addr:inclusion tag.
- addr:inclusion=estimate - The address interpolation way may contain numbers that don't actually physically exist for typical reasons of cases 1-3 above. A survey has been performed, and Geo-location calculations will be within several physical house spaces from the actual house.
- addr:inclusion=potential - The complete range of all possible address numbers on a block, although there may not physically be enough room on the block for that range of house numbers. Interpolation data from US TIGER is an example where Geo-location would only be as near as one block.
Letters in house numbers (for example in Russia)
Russian addresses may have complex addr:housenumber=* value with letters, ex. "48А к2 с1"  (means house number 48А, building 2, construction 1). In some cases official address have only "корпус" (building) number, and so addr:housenumber=* will start with letter "к".
According to the Danish Bekendtgørelse om vejnavne og adresser (English: Ordinance regarding street names and addresses) all BBR units (lots) will be appointed an address node. If a building exists on the BBR unit the address node should be placed at in the middle of the longest side of the building 3 meters from the wall closest to the main (named) access road.
All Danish addresses are continuously checked by a bot and corrected against a service offered by the Danish government. Foreign cartographers mapping in Denmark should be wary that the Danish community does not approve merging of address nodes with buildings. Please be aware that the JOSM-plugin buildings_tools automatically merges address nodes with buildings unless it is reconfigured not to.
Even though bulk imports from public data in general has earlier led to bad results, the quality of the addresses from the Danish government is very high. The value of having millions of address nodes (with correct tags following the accepted addr scheme, even including several housenames - yup, this is also centralized information in Denmark) has led to a huge rise in the quality of the Danish data set, serving as a base for several QA tools (for finding "blank spots" on the map where addresses actually exist but no mapper has visited yet), e.g. matching addr:street up against name for nearby highways.
There are visualisations of address and building information available as an ITO Map layer and as a view within Geofabrik's OSM Inspector. These visualisations track building tags, and shows if any address/name data is present. OSM Inspector also provides checks on address interpolation ways. OSM Inspector is restricted to Europe.
OpenLinkMap is a slippy map, making this tag's data available as clickable POIs.
At http://qa.poole.ch there is a layer that displays buildings with missing addr-tags and a layer that displays objects with adresses. The page "Noname and noaddress" has a longer description of these layers.
- For some background information about the initial proposal, please refer to Karlsruhe Schema
- The relations "street" and "associatedStreet" as alternative to addr:street
- is_in as an alternative to addr:city and addr:country
- phone=* / contact:phone=*, fax=* / contact:fax=* and email=* / contact:email=*
- Proposal for additional addr subkeys (unit/floor/door)
- FrontDoor app Co-project with Bing (Microsoft Corporation) to locate houses on aerial photos and feed address data back to OSM.
- a polygon (closed way or relation) defining a postal code area, tagged with boundary=postal_code