![]() |
VOOZH | about |
| 👁 Logo. Feature: Addresses |
| 👁 One example for Feature: Addresses |
| Description |
| Used to provide address information for a building, facility or any other object that has an address. |
| Group |
| Tags |
Address information can be added to OpenStreetMap using a variety of methods. These include adding a simple node containing an address, adding address information to a building, site or other area, or alternatively to an entrance node for the building or site.
OpenStreetMap tagging provides support for various address schemes used across the world.
Addresses can be tagged with addr:housenumber=* and the other addr:* keys. Tags can be added to:
building=* polygonsbuilding=* polygonsentrances) or on the access to a property (e.g., on barrier=gate or barrier=entrance), used in places where addresses are assigned to entrances and accesses rather than to buildings)Historically, this approach originates from the Karlsruhe Schema.
The Rapid Address Collection page outlines methods of collecting and mapping address data rapidly.
Usually, address information doesn't need to be duplicated; i.e., there should be only one addr:housenumber=* per street and house number (which would typically be placed on the building). Software can typically link addresses to other features by geographical proximity, and duplicated addresses are often flagged as errors by quality assurance tools. However, there is still some debate on that point (see for example Address information in POI *and* building? on help.openstreetmap.org). Also, the community in some countries has established their own rules.
Tags such as addr:country=*, addr:city=* are often redundant as features inside administrative boundaries (when mapped) "inherit" their attributes as supported by software such as Nominatim or Photon.
The associatedStreet relation provides a link between houses and streets. This can be used as an alternative to the addr:street=* tag.
As of February 2022, about 5% of house numbers are mapped using relations. The future of the associatedStreet relation is questioned by some mappers.
The street relation is used to link streets to all things related to it, including building and addresses. It can also be used as an alternative to the addr:street=* as well as other addr:* tags such as addr:city=*.
👁 Image
There is currently no global consensus on this. Here are some possibilities:
entrance=* (or barrier=gate) nodes.11,13,15) or semicolon (e.g., 11;13;15).
addr:housenumber=* values that contained a "," compared with 266,000 having a ";".10-95). Note that there is a risk of ambiguity between two meanings:
10-95 is simply a label like any other. In this and other cases, house numbers officially contain a dash and are not meant to be treated as special.addr:interpolation=* (described below) to emphasise this. Some mappers will add a short "virtual" way which allows them to put addresses 10 and 95 on separate nodes as normal. Some mappers will specify the range 10-95 on a single object, where the addition of the addr:interpolation=* tag disambiguates it from the "simply a label" meaning, specifying that it is indeed to be treated as a range. Both approaches are used in practice and there is little consensus.3-5 that only looks like a housenumber range. As usual, do not convert such data blindly, without a verification.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. If the buildings cannot be contained in a single perimeter (for example, school with two buildings a block apart), use a multipolygon relation or site relation. If a group of apartment buildings all share the same housenumber but are differentiated with flat numbers, add both addr:housenumber=* and addr:flats=* to each building.
To name the buildings, use addr:housename=*.
If we don't know (or don't have time to find) every house number, we can use interpolation. This allows people and machines to guess where an address probably is, between two known points.
You need to know two house numbers, and the sequence pattern.
E.g., in a terrace of houses, perhaps you know that the first house is 15 The Road, the last is 27 The Road, and that this side of the road the house numbers are all odd.
Basic instructions
addr:street and addr:housenumber.Tag options
The basic tag for the interpolation way is addr:interpolation=*
| Value | Meaning |
|---|---|
| all | House numbers between the nodes are in strict numerical order. |
| odd | House numbers are in numerical order, odd numbers only. |
| even | House numbers are in numerical order, even numbers only. |
| Feature | Map link |
|---|---|
| Lowest-numbered address node | https://www.openstreetmap.org/node/401884984 |
| Highest-numbered address node | https://www.openstreetmap.org/node/401884983 |
| Interpolation way | https://www.openstreetmap.org/way/34609524 |
Note that the interpolation way has only one addr: tag, the addr:interpolation=* tag. It doesn't take addr:street=* , addr:city=*, or any other address information (but advanced users might set a second addr:inclusion=* tag: see Using address interpolation for partial surveys).
More unusual cases
13), two ways need to be drawn (e.g., 1-11 and 15-25).alphabetic to interpolate alphabetical characters. 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.addr:interpolation=* to indicate the value to increment between house numbers. (Here we would use addr:interpolation=4.)
addr:interpolation=oddandaddr:interpolation=evenare just special cases ofaddr:interpolation=number, where number is 2 (i.e.addr:interpolation=2), and the beginning node is odd or even, respectively).
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! i.e. For addr:interpolation=even the addr:housenumber=* tag on the end nodes must be an even number.addr:interpolation=* on a single object to indicate that its addr:housenumber=* is to be treated as a range rather than an atomic label (discussed above). There is not a consensus on whether this is appropriate.To indicate the accuracy level of an interpolation, you can use the optional tag addr:inclusion=* to represent the data missing from a house number survey.
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 geolocation 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 geolocation would only be as near as one block.Russian addresses may have complex addr:housenumber=* values with letters, ex. 48А к2 с1 (Addresses) (means house number 48А, building 2, construction 1). In some cases, official addresses have only "корпус" (building) numbers, so addr:housenumber=* will start with letter "к".
Some building addresses do not contain a street name. For example, in small villages the address may be just the village name and the name or number of the house; on a small island the address may be the name of the island and the name of the building (for example this sports centre on Yelagin Island, St. Petersburg, Russia).
In some post-Soviet states, such as Turkmenistan, building addresses consist of the house number and the name of the administrative district of the city (and sometimes a subdistrict of the district) in which the house is located, such as the Parahat and Howdan neighbourhoods of Ashgabat. In these cases the house numbers were assigned in the order the structures were built and thus bear no relation to the relative location of the buildings to each other.
In these cases no tag addr:street=* should be present. The key addr:place can be used instead of addr:street to indicate the part of the address that takes the place of the street name, such as the name of the village, subdivision, or island. In the case of buildings in a district and/or subdistrict, the tags addr:district=* and if applicable addr:subdistrict=* should be used to make the addresses searchable and routable.
In this case use the tag nohousenumber=yes and remove the tag addr:housenumber=* if exists like addr:housenumber=s/n (in this example "s/n" means "sin número" in Spanish and "sem número" in Portuguese).
Current practice is that addresses are put to the building polygon when the building only has a single address, and as nodes if a building has more than one address.
The official (federal) guidelines can be found here: https://www.belgif.be
URBIS numerical imagery is available out of the box in JOSM and iD. It shows the official outline of buildings, street names and housenumbers. It is the official reference to trace buildings and to identify addresses within the Brussels-Capital Region. The map is updated about 2 or 3 times a year.
Addresses are shown as floating numbers within the building, it is up to you to figure out the street associated with this housenumber. (Here is a way to get the official address: go to https://datastore.brussels/web/map and load the following layer: Urbis Services > Address Points, then query a housenumber, scroll down the Address Point text box and read the values under pn_name_fre and pn_name_dut.) The source data comes from urbanisme/stedenbouw departments of each of the 19 municipalities. Some are faster than others to add new buildings.
Like any government source, it might be outdated, or sometimes plainly wrong. It is a good idea to fill the "note" tag on addresses that significantly differ from what is found on the URBIS map, e.g. if the entrance door is in another building. Also, large residential buildings or office buildings often have additional housenumbers on the URBIS map that do not exist at all. Do not delete them, keep the nodes and tag them as not:addr:housenumber=* to prevent armchair mappers from adding them again.
You should stick to addr:street=* and addr:housenumber=* for addresses. Country name, city and postcodes are automatically generated through existing areas. This is especially necessary in Brussels because most people are unaware of the many discrepancies between municipalities’ borders and postal codes and would otherwise add incorrect data.
The Flemish agency for digitalization (Agentschap Digitaal Vlaanderen - previously AGIV) provided access to their address database. The database isn't used for a direct import, but its data can be compared with OSM data to find differences. See the documentation for more info.
Bulgarian addresses can be of 2 types: the usual addr:street=* + addr:housenumber=* system, and one where apartment blocks get a block number preceded by "бл." (блок=block) + the name of the neighbourhood (which goes into addr:place=*). So бл.474, ж.к. Младост 4 is tagged with addr:housenumber=бл.474 and addr:place=ж.к. Младост 4. addr:housenumber=* thus often contains the string "бл." followed by numbers (optionally separated by a space).
Some blocks have addresses according to both systems, where the block number address should go on the building outline and the street+number address on a node inside the building.
Czechia uses its own system for mapping addresses as the use of addr:housenumber=* is not sufficient. Additionally we use these tags:
The system is described on page Cs:WikiProjekt Česko/Systém adres(cs).
Czech government provides open data for house numbers. House numbers are updated approximately every month. For more information see Address import from RUIAN.
All Danish address nodes have since February 2009 been imported from authoritative sources provided by the Danish government as open data. Initial imports were done manually from KMS data dumps but when web services were established providing authoritative data bots for automated maintenance of address nodes were developed such as the former AWSBot and the current autoAWS bot (see its wiki for more historic and recent information).
Foreign cartographers mapping in Denmark should be wary that the Danish community does not approve of merging the autoAWS maintained address nodes with buildings or adding POI related tags to them, instead add POI tags to an adjacent node. Note especially that when using the JOSM-plugin buildings_tools in Denmark, please ensure that it is not configured to automatically merge address nodes with buildings. In general the autoAWS maintained address nodes, having osak:identifier tags, should be left to the autoAWS daily update cycle which will revert any changes to address data back to what is mandated by the authoritative data unless special measures are taken.
According to the Danish legislation 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 in the middle of the longest side of the building 3 meters from the wall closest to the main (named) access road.
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 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.
OSM France initiated an address centred project called "BANO" (Base d'Adresses Nationale Ouverte). This database is a composite from OSM address data, available opendata sets, cadastre data automatically extracted. The resulting composite dataset is available under ODbL and can be used to improve OSM addresses and street names. For more detail see WikiProject France/WikiProject Base Adresses Nationale Ouverte (BANO)(fr) and BANO – La Base Adresses Nationale Ouverte, par OpenStreetMap France(fr) .
Karlsruhe Schema is widely used. Interpolations are also used.
Indonesian addresses usually include the following details:
addr:neighbourhood=*)addr:subdistrict=*)addr:district=*)addr:city=*)Province name may be listed in between the city/regency name and postal code fields, but this is not mandatory.
Example address from Jakarta
Jl. Surya No. 10, RT.05/RW.02,
Kel. Cempaka Putih, Kec. Cempaka Baru,
Jakarta Pusat 10640
Example address outside Jakarta:
Jl. Raya Darmo No. 36, RW.13,
Kel. Dr. Sutomo, Kec. Tegalsari,
Kota Surabaya 60264
Jl. Bypass Ngurah Rai No. 11A,
Kel. Tuban, Kec. Kuta,
Kab. Badung 80361
Italy does not have house numbers. The numero civico identifies the entrance that directly or indirectly leads from the highway, square, ... to building units or to unbuilt and fenced areas (beach resort, ...). As a result, properties (buildings, ...) and numeri civici are not 1:1 - a property can have many numeri civici and many properties can share the numero civico.
The community-approved convention is documented here. A short summary for non-locals:
addr:housenumber=*.In practice:
entrance=yes/no, barrier=gate, ... also has addr:*. Sometimes a shop window or other former or potential entrance can also have a numero civico.In historic context it is also not unusual to have building entrances with house numbers on the first (and other upper or lower) building level(s). In these cases you can add level=1(etc.) to make the situation explicit. For places without assigned house numbers (called snc or senza numero civico in Italian) you should use nohousenumber=yes and keep addr:housenumber=* empty.
In Japan, the addr:street=* tag is generally NOT USED. Instead, addr:neighbourhood=* or addr:quarter=* should be used, usually together with addr:block_number=* and addr:housenumber=*. These addresses are usually based on the block-based system known as "banchi (番地)".
Japanese addresses are written in order from broader to more specific areas.
Specifically, the format typically starts with the postal code (〒000-0000), followed by
addr:province=*)addr:county=*)addr:city=*)addr:suburb=*)addr:neighbourhood=*)addr:block_number=*)addr:housenumber=*).If applicable, additional tags are used to indicate the location within a building. Building name(addr:housename=*), floor(The ground floor is "1F". Use addr:floor=*+level=*) or room number(addr:room=*).
| # | addr:full | insert / to sepalate each tag | locally used shorthand notation | Note |
|---|---|---|---|---|
| 1 | 東京都千代田区丸の内二丁目7番地2号 | 東京都/千代田区/丸の内二丁目/7/2 | 東京都千代田区丸の内2-7-2 | 4703123878👁 node 4703123878 |
| 2 | 大阪府大阪市浪速区日本橋西一丁目1番地3号 アニメイトビル 1階 | 大阪府/大阪市/浪速区/日本橋西一丁目/1/3/アニメイトビル/1 | 大阪府大阪市浪速区日本橋西1-1-3 アニメイトビル1F | 4957598469👁 node 4957598469 |
| 3 | 山梨県中巨摩郡昭和町押越542番地2号 | 山梨県/中巨摩郡/昭和町/押越/542/2 | 山梨県中巨摩郡昭和町押越542-2 | 1420932170👁 node 1420932170 |
| 4 | 山形県鶴岡市北京田字下鳥ノ巣6番地1号 | 山形県/鶴岡市/北京田/字下鳥ノ巣/6/1 | 山形県鶴岡市北京田字下鳥ノ巣6-1 | 695816595👁 way 695816595 |
In the other table format, each part is tagged as shown below:
| tag | #1 | #2 | #3 | #4 | Note |
|---|---|---|---|---|---|
addr:province=* |
東京都 | 大阪府 | 山梨県 | 山形県 | one of the prefecture |
addr:county=* |
(blank) | (blank) | 中巨摩郡 | (blank) | only used in the case the city type is Town or Village |
addr:city=* |
千代田区 | 大阪市 | 昭和町 | 鶴岡市 | include Tokyo's 23 wards |
addr:suburb=* |
(blank) | 浪速区 | (blank) | (blank) | |
addr:quarter=* |
(blank) | (blank) | (blank) | 北京田 | do not include "字" |
addr:neighbourhood=* |
丸の内二丁目 | 日本橋西一丁目 | 押越 | 下鳥ノ巣 | There are two cases for 丁目(Cho-me). One use chinese charactar(一二...五六), and the other is digits(12...56). Rules vary by region. |
addr:block_number=* |
7 | 1 | 542 | 6 | |
addr:housenumber=* |
2 | 3 | 2 | 1 | Sometime keep blank like large building |
addr:housename=* |
(blank) | アニメイトビル | (blank) | (blank) | |
addr:floor=* |
(blank) | 1F | (blank) | (blank) | Ground floor is "1F" |
level=* |
0 | ||||
addr:street=* |
(blank) | (blank) | (blank) | (blank) | never use |
Notes:
The term "(blank)" in the table indicates that no corresponding data exists.
If necessary, addr:postcode=* and addr:room=* can also be included.
Until 2013, addresses in the Republic of Korea (South Korea) was similar to the one used in Japan, using a block-based house numbering system. The present Korean address system is based on street names, which took effect in 2011 and replaced the block-based system in 2013.
Korean addresses are written in order from broader to more specific areas (which is reversed when written in Western order)
Specifically, the format typically starts with the postal code (000-000), followed by
addr:province=*addr:city=*)addr:district=*addr:town=*)addr:neighbourhood=*)addr:street=*).addr:housenumber=*).Since January 2022, all official addresses in the State Address Register have been released as open data and updated every working day. Since December 24 2024, fully automated updates of addresses in OSM are being performed daily by user latvia-bot using code published at GitHub. Semi-automated updates approximately every month were done before since June 2022. See bot's wiki page for detailed information.
Almost all address tags are managed by the bot and any edits of these tags by users are discouraged during update. Exceptions are keys addr:unit, addr:door, addr:flats and addr:floor. For these, user input is still welcomed as these data are not obtainable from the State Address Register. Don't use relation associatedStreet and tags indicating that there is no address (noaddress and nohousenumber).
Addresses are assigned either to building polygons (ways or relations) or address points (nodes) if there is no building polygon in OSM or it doesn't contain address point from the State Address register, or majority of the polygon don't overlap the one from the State Immovable Property Cadastre Information System containing an address point (also published as open data and used by the bot). Addresses are also assigned to all tags listed in tags_4_addresses.csv if there is a spatial match. In case tag is not included and you think it should be, create an issue on GitHub.
Street Addresses in New Zealand have been imported into OSM from government data, and the data is regularly conflated. See Import/New Zealand Street Addresses (2021) for more information.
From 👁 [W]
Rural Address Property Identification:
The Rural Addressing scheme was adopted in Australian/New Zealand Standard 4819:2003 Geographic Information – Rural and urban addressing in 2003. It is based on RAPID, an acronym for Rural Address Property IDentification, a scheme first instituted in New Zealand in 1999[2] to assist emergency services in identifying and locating rural properties.
An example address of 1536 Longley Road can easily be found by dividing by 100. This tells anyone looking for the property, that it is 15.36 km from the start of Longley Road. An emergency crew can set the vehicle trip meter at the beginning of the road and know they do not need to waste time checking for letterbox numbers until the trip meter gets close to the rapid number they are looking for.
Any rural property can have a number, and some have multiple numbers for different entrance ways off the road. This helps when a visitor needs to access stockyards or other parts of a rural property.
Example: house numbers along Mountain Road are determined based on the distance from the start of the road (310500686👁 node
310500686)
Addresses and buildings in the Netherlands have been imported into OSM from government data, see BAGimport. The choice has been made to use a separate address node for each address within the building. Although OSM allows mappers to combine multiple addresses on one node within the same building, in the Netherlands, it is strongly encouraged to use separate nodes. This ensures that the next requested update will not simply overwrite the mapper's work.
See NL:BAG for more background on the "Basic Records of Addresses and Buildings". Since the BAGimport name, as agreed to be used on addresses with the addr:street tag, can be different to the street name value on ways, the BAGimport name is recorded in the official_name tag on streets; for example Doctorandus F. Bijlweg versus Drs.F. Bijlweg,
A JOSM plugin is available to merge specific updates. BAG-importverzoeken is the forum topic to request such an update, which is usually performed within 1-3 days.
As of mid 2014, all Norwegian official addresses has been released to the public for free. The data is of very high quality, with coordinates close to the main entrance of buildings. There are daily updates in the source. We use a tool addr2osm (GitHub) to update addresses on a monthly basis. All addresses are imported as separate nodes with addr:housenumber=*, addr:street=*, addr:postcode=* and addr:city=*. We follow the Danish method and do not merge the tags to building outlines. We prefer to keep the data in the nodes alone, so type=associatedStreet relations are not needed. 100% of public addresses in Norway are currently in OSM.
Addresses in Pakistan can be quite variable in their format, and it may not be easy to find a distinct address for many features. Pakistan is a predominantly rural country, and deliveries to small villages may not necessarily require an address to a specific building if the person taking an item to its destination knows where to find the intended recipient, or who to ask if not. Locations in urban centres are more likely to have specific assigned addresses, and can include any number of specifiers to narrow down a location.
See the Universal Postal Union document on the Pakistani addressing standard as a reference point for what may be included in an address where available.
The primary postal operator in Pakistan is Pakistan Post. You can find a listing of post offices and post codes on their website here: [3]. Major hub post offices in this listing are suffixed with "GPO" (General Post Office), and smaller post offices are each assigned to a hub.
Pakistan is divided into provinces and districts. The province can be tagged with addr:province=*, but it is not necessary if the district (addr:district=*, city, and/or postcode is specified. "Distt." is a common abbreviation for district in Pakistani addresses, though if tagged in OSM it should be unabbreviated as is convention. Districts are further divided into tehsils, which are in turn divided into union councils, but these are typically not included. addr:place=* may be necessary for addresses which involve a place name rather than a street name, or addr:full=* for addresses which are challenging to describe with the existing address tagging scheme. Addresses in larger cities such as Islamabad can be quite elaborate, and may include features such as a block number, which can be tagged with addr:block=*, or a sector number, which as of the time of writing (May 2022) does not have a single/standard tagging scheme. At the moment, the most common places sectors have been included in addresses in OSM are in addr:place=*, which is technically not correct as "places" are intended to be mutually exclusive to street names and sectors are typically supplemental to them, or included at the end of the street name itself. addr:sector=* (undocumented) has been used 3 times in Pakistan, but has been used in Guatemala ~2000 times. It is likely addr:sector=* is the clearest way to tag the sector number to avoid conflation with tags intended for other purposes, but feel free to contribute to the discussion on the talk page at Talk:Addresses#Addresses_with_sector_numbers if you have thoughts on how to approach these.
For more details regarding the idiosyncrasies of adding addresses in Pakistan and some real world examples of point of interest tagging, see: Addresses in Pakistan
Modified Karlsruhe Schema with AddrN additions is widely used and supported by most software. [4]
Instead of full address set for each object the addressing scheme is divided into two (actually three) levels as "objects" and "places".
Address nodes are often imported from government databases.
addr:street and addr:housenumber is enough on most cases (as the rest is mapped as polygons in many cities); however as the subdistrict and district boundaries might not be very accurate (especially if the neighbourhood and postal code boundaries are not mapped), it'd be better to add additional information if deemed necessary.
Note that the street names with slash (e.g., 1/1. Sokak) are separate street names from their main street (1. Sokak) and should be mapped with the slash. Those streets are formed after street numbering is done and therefore inherited their parent street's name and numbered starting from there, even though they don't have a direct link to it any more.
If the house number includes a number and/or letter separated with a slash, map addr:housenumber as such.
While parsing the address, please pay attention to the formatting. According to the handbook of postal service, it's formatted as:
| Turkish address format | |
|---|---|
| Saraç İshak Mahallesi İbrahim Paşa Yokuşu No: 13/A 34130 FATİH/İSTANBUL TÜRKİYE |
addr:neighbourhood=Saraç İshak Mahallesi (optional)addr:street=İbrahim Paşa Yokuşu addr:housenumber=13/Aaddr:postcode=34130 (optional)addr:subdistrict=Fatih (optional) addr:district=İstanbul (optional) addr:country=TR (optional)
|
| Example: 6072311186👁 node 6072311186 | |
The postal service also provides a spreadsheet with the postal code of neighbourhoods (the postal codes often includes between 1-10 neighbourhoods and corresponds to their administrative boundary).
In the United States, both buildings and land parcels are generally considered to have addresses, whether or not they receive mail directly. Generally, addresses are tagged on buildings, but campuses and other large properties are often tagged with an address in addition to any feature tag. The address goes on the main building or buildings on a property; it is unnecessary to tag an outbuilding, such as a garage or toolshed, with an address unless it differs from the main building's address. Addresses are also tagged on points of interest when they're mapped separately from buildings.
On a property or in a building with multiple tenants, each unit may have its own unit number or it may have its own distinct house number. There is no consensus on how to represent secondary unit designators. As of June 2021, it is far more common to omit the designator and only include the identifier (typically a letter or number) in addr:unit=*.
Data consumers should be careful when parsing the addr:housenumber=* and addr:unit=* tags: in Queens, New York, a standard house number contains a hyphen. Similarly, there are many retail centres and office parks in which each unit number contains a hyphen.
If a property abuts multiple streets, there is no guarantee that the addr:street=* can be correctly inferred from the relative position of the building, entrance, driveway, or mailbox. For example, this house is associated with West Loveland Avenue, even though it is much closer to Osage Drive and its driveway connects to Osage Drive. This house is associated with a different street than the house across the street, even though both houses face the same street and their mailboxes and entrances are accessed from the same street.
Postal cities and ZIP codes do not necessarily correspond to administrative boundaries (and even cross state boundaries [5]), so there are many cases in which tagging addr:city=*, addr:state=*, and addr:postcode=* is not only helpful but necessary to avoid misleading geocoder behaviour. A non-trivial number of ZIP+4 codes have been tagged in OSM, so data consumers should not assume that two distinct addr:postcode=* values necessarily mean two different ZIP codes; it would be necessary to trim the four-digit extension before making that comparison.
There are several websites or tools that can help with checking the quality of address data in OpenStreetMap:
addr:street=*is_in=* as an alternative to addr:city=* and addr:country=*phone=* / contact:phone=*, fax=* / contact:fax=* and email=* / contact:email=*addr:unit=*/addr:floor=*/addr:door=*)boundary=postal_codenohousenumber=* for places which are verified to not having a housenumber assigned