One feature, one OSM element

From OpenStreetMap Wiki
Jump to navigation Jump to search

One feature, one OSM element is a good practice principle. It means one on-the-ground real world feature should be mapped with only one OSM element.

Map objects

General rules

An OSM element should represent a single on-the-ground feature once and only once. Examples:

  • A feature consisting of buildings on grounds (e.g. a school), should be mapped as an area object delineating the land with area objects marking the buildings. Tags should be on the whole area, and not the buildings, unless the buildings are different. Buildings within the school grounds can be assumed to be part of the school by database users.
  • A feature consisting of a building whose shape and position are known should be an area object with appropriate tags.
  • A feature whose position is known, but whose shape is either unknown or irrelevant, should appear as a point object with appropriate tags.
  • A feature that consists of several smaller features is usually best described using a relation. For example, relation:route for a hiking route or a public transport line which follows several highway=* or railway=* ways.

Examples of bad situations

  • An area object with a point object inside, both with the same tags representing the same real-world feature.
  • An area object representing grounds with a tagged single area object representing the only building on it, both tagged with the same feature tag.
  • A closed way tagged with two feature tags, one of which is usually a linear feature such as barrier=hedge and another which represents an area such as amenity=school. In this case it is ambiguous if the barrier is meant to represent an area or a line, and for all properties it is unclear to which feature they belong.

Situations where multiple elements may be needed

area Top Dog Hot Dog and Furniture Outlet, a particularly unusual example of this situation.
  • More than one of something on the same site: e.g. two schools sharing the same grounds. If the schools have separate buildings, they can be mapped as areas containing those buildings and overlapping on the shared grounds. If multiple schools are located in the same building, both can be mapped as nodes, or one mapped as an area and the other as a node.
  • Multiple-use buildings: The building should be tagged as building=*.
    • If the building has a clear primary feature that can be said to contain the other features, the primary feature can be tagged on the building itself, and other features mapped inside the building perimeter (e.g. a restaurant inside a hotel, shops within a shopping mall).
    • If the building doesn't have one primary feature that contains the others, all features should be mapped inside the building perimeter (e.g. a building that contains multiple shops with separate entrances).
    • Features mapped inside the building perimeter can be either nodes or areas. Optionally, the Simple Indoor Tagging scheme may be used to clarify the building layout.
  • Rivers are usually represented with waterway=riverbank or natural=water + water=river for the area covered by water and waterway=river on a linear way that follows the main flow of the river, with tags such as name=* on the waterway=river feature. It is necessary as entire river mapped as a single area would be so large that it would cause major performance and maintenance issues.
  • Villages are mapped with place=village on a node at the village centre, and the area of residential landuse is mapped with landuse=residential, with tags such as name=* on the place=village node.

Multiple tags

The principle one feature, one OSM element concerns nodes/relations/ways, and not tags.

Some objects may have multiple tags describing the same thing. For example both waterway=riverbank and natural=water + water=river have exactly the same meaning.

Such double tagging is not going against this specific rule. Depending on situation it may be acceptable (so both tags should be kept), clearly unwanted, or something in between. E.g., contact:phone=* + phone=* with the same info will keep supporters of both tagging versions happy, and there is no support to deprecate either one. But sometimes one tag is clearly standard and it will be OK to eliminate its duplicate. For example in amenity=police + emoji_encoded_tag=:cop: , the second tag may be safely deleted, and indeed deleting it would improve OpenStreetMap.

See also

  • Keep the history - similar to this guideline, but pertaining to the history instead of the tags
  • Relation:multipolygon - a standard way to map complex areas (for example, a school divided in 2 parts by a road, or a lake with an island)
  • Relation:site - proposed for multi-part features which cannot be expressed as a multipolygon (an example is a wind farm, a feature which includes multiple nodes)
  • building:part=* - how to tag complex buildings