Key:is_in

From OpenStreetMap Wiki
Jump to navigation Jump to search
Public-images-osm logo.svg is_in
Description
The is_in tag is used to index where a place or feature is. Show/edit corresponding data item.
Group: boundaries
Used on these elements
may be used on nodesmay be used on waysmay be used on areas (and multipolygon relations)may be used on relations
Useful combination
Status: in use

The is_in=* tag is used to index where a place or feature is located, especially when administrative boundary relations cannot provide this information. In some regions, where all administrative boundaries are fully mapped, this tag is no longer required.

Also see related keys: is_in:city=*, is_in:town=*, is_in:suburb=*, is_in:village=* etc.

When to use?

The is_in tag in OSM is one of the earliest tags in OSM, and is still in common use even though usage has been falling consistently since 2014. At it's peak, about 4 million of those tags were used, but only 500K are left as of 2024

The is_in tag pre-dates boundary polygons. When a region has a well developed set of boundary polygons the information that could be placed in the is_in tag on an object can usually be derived from the boundaries that contain it, in which case the information in the tag seems redundant. Some contributors have advocated deleting this tag because they see it as equivalent to the boundary information. Other contributors consider that view to be short-sighted at best.

The tag still can contain important information when boundaries aren't fully developed. It may also be used to associate small places, such as neighborhoods or suburbs which belong to a larger place such as a town or a city, which is not represented as an official administrative boundary.

As of March 2019 JOSM recommends to delete this tag and all its variations[1] as no longer needed.

Description

This tag lets you by specify, with words, where a place or feature is in the world. It can be used with anything, pubs, buildings, streets, parks, zoos[2] but is most likely to be used with places. It is recommended that it is ALWAYS used with place tags to help some search engines - for example there are several places called San Francisco in the world (Philippines, Spain, USA), but to return only the one in California may be done by processing boundary information. In the past following was proposed to be used as an alternative:

Although there is no requirement to write entities in a given order or to list everything, it is recommended that the reading order is from smaller to bigger entities and all full names are used up to the country level. Note these are valid, too, although not recommended:

  • name=SOMA
  • is_in=USA;CA;California;San Francisco
  • name=SOMA
  • is_in=San Francisco

For making categories

Less commonly, the tag can also be used to create a category for searching, e.g.:

  • name=Canberra
  • is_in=capital_cities;Australian Capital Territory;ACT;Australia

means that Canberra can now appear in a list of capital cities of the world.

Improving accuracy

One weakness of the tag is that it might not be clear to processing programs exactly what each value stands for. In the above examples, is CA the short form for California or Canada? Is capital_cities a place or a category?

Boundary relations is one solution, and also solves a redundancy issue, i.e. it is a waste writing is_in=Sweden,Stockholms län,Stockholm for every street in Stockholm, when we can just use 3 boundary relations for Stockholm, Stockholms län, and Sweden, without having to tag each street with lengthy tags. However many boundaries are difficult to trace exactly (notably in development countries) and for building them, they have to be estimated or these relations may be incompletely known. Tagging individual elements may be a transitory solution until a set of necessary boundaries is setup and refined with enough accuracy and completion.

Another solution is to use qualify is_in=* like this:

  • name=Canberra
  • place=city
  • is_in=capital_cities;Australian Capital Territory;ACT;Australia
  • is_in:state=Australian Capital Territory
  • is_in:state_code=ACT
  • is_in:country=Australia (use english name of the country)
  • is_in:country_code=AU (ISO 3166-1 two-letter country code, in UPPER CASE to conform with addr:country=* tag)

Any suburb, road or other feature in Canberra now needs just one tag to imply all the above:

Any of the place keys can be used as qualifiers:

In most cases these specialized tags are only there to help qualify existing data, when the boundaries:

  • are still incomplete or could be ambiguous (when they overlap), or
  • are almost impossible to draw correctly and accurately (e.g. continents, seas, mountains or mountain ranges, valleys, many forests with weak visible separations, glaciers, ice shelves, plateaux, cultural regions...) or
  • to structure exactly due to disagreements in classifications such as archipelagos.

Even country borders may be weak in some disputed areas, where some features located there may be tagged in one country, while other would be tagged in another (some disputed areas are either overlapping, or are mapped separately even if they do not match a governing country, and there exists some joint areas managed in condominiums, or with administrations alternating every few months, as well as some areas claimed by no country at all because of disputes on nearby larger areas).

Using "is_in:*" tags will not help resolve these territorial disputes, but using boundary relations permits overlaps. OSM data is not the place to decide territorial disputes, and will not be made to hide these disputes by showing different data depending on country of residence of its users. However only disputes for claims made by official governments or significant local minorities with some form of government should be in OSM, using relevant sources (e.g. international treaties or UN decisions recognized by some countries, even if they are contested or interpreted differently by others). For these cases, using overlapping boundaries is highly preferable and users should not alter the boundaries for claims made by other communities on the same area, even if this causes some ambiguities or (expected) duplicate data in searches (these duplicates or overlaps may be signaled by some "Quality Assurance" tools, but only as warnings: they are not errors if territorial disputes have not been arbitrated and agreed internationaly and should not be corrected in such cases). Instead, users of data just need to use more selective tags for filtering the results in their queries.

See also

Tag "is_in"

Examples

Rationale

Basically, this means that programs can auto-generate indexes, of the form:

You are looking at data for Bedfordshire. Go up one level to England or Home Counties. Towns in Bedfordshire are: Ampthill, Bedford, Clapham, Dunstable...

More importantly when searching by street name, e.g. for 'High Street', it can tell you which of the many results you get back is likely to be the one you want, by saying 'High Street;Fulbourn;Cambridgeshire' and 'High Street;Chapel-en-le-Frith;Derbyshire'. David.earl October 14, 2006

This is already accomplished automatically without the use of is_in tag in Nominatim, the latest search engine.

Deprecation of "is_in"

The following countries no longer use is_in=* and related keys. Please don't add them in the following countries:

References