|For grouping boundaries and marking enclaves/exclaves.|
|Status: de facto|
|Tools for this tag|
boundary=* relations are used to define political, administrative, nature protection and similar boundaries. They are defined in a similar manner as multipolygons: they must contain at least one outer way, and additional ways can be used to define enclaves or exclaves.
Boundary relations can be topologically and logically nested within one another, and thus share some ways. For example, provinces of a country share some of their borders with the country, and other boundaries mutually. Such approach make it easier to stitch all the parts of a border and avoid multiple duplicated ways above each other.
While some boundaries are visible, being clearly marked or placed over physical features such as rivers, many are not verifiable on the ground and sometimes must be imported from external sources. However, avoid connecting boundaries to physical features like woods or rivers or reusing their ways as boundaries (one feature, one OSM element). Sooner or later these features change in reality and get updated in OSM – but usually the shape of the boundary remains. An exception may be done if the boundary is legally defined to be the physical feature.
Boundary areas can be rendered both from relations and from individual closed ways. Relations also allow treating it as entire object in all cases allowing, for example, better labeling.
Boundary ways should have boundary=administrative and the admin_level=* of the highest border (when a country, state, county are on the same way the admin_level would be 2). source=* is always recommended. However, this tagging is optional, since data consumers can infer this information from the relations the way participates in; thus, boundary ways may be left completely untagged, as with multipolygons.
Historically, name:left=*, name:right=*, nation:right=*, and region:right=* have been added to boundary ways to define administrative divisions on their left and right side. Being cumbersome and error-prone, this method was has been replaced by one relation per country, province, city, etc. Old tags on ways like name:left=*/name:right=* can be safely removed.
|type||boundary||type=multipolygon is also used, but deprecated for boundary relations (see software implementation notes).|
|boundary||administrative||For a real boundary (sometimes in the middle of a river or 12 Miles away from coastline).|
|admin_level||Administrative level: an integer with value between 2 and 10, and country-specific meaning.|
|role:outer||1+||The multiple ways that form the closed border|
|role:inner||0+||Enclaves of this border – the multiple ways that form the closed inner borders|
|0||Deprecated, don't use. Use role:outer or role:inner instead. Some tools may treat it only as role:outer, others will attempt to guess it using complex geometry inference.|
|role:admin_centre||0–1||Node representing the administrative centre (a capital, county seat etc.), usually a town, city or village (depending of the boundary level, see place=*). This role is for capitals (as in capital cities), not capitols (as in legislative buildings).|
|role:label||0–1||Node representing the place, located at the coordinate where the place is typically labeled. For example, a city's commonly accepted "center" may be at the city hall, a public square, or the origin of the city's street grid, rather than the geographic centroid of the boundary. This role may also be useful when there's an enclave or the boundary has a large concavity, and the default placement of the label in the centre of the bounding box would fall completely outside the boundary area. Note that different map styles require a different label placement (as different map styles display different objects, may use labels in different languages, labels may use a different style and it may be desirable to avoid blocking some objects with the label – for example, a standard map may prefer the label of a coastal town to be placed on the sea, a map displaying sea routes would prefer to place the town label inland). As a result, the placement of these nodes is optimized for specific map styles, making them a form of tagging for the renderer. The role:label-node could contain a place=* tag and using a key from the table Administratively declared places (like place=country; place=state; place=county etc.) if applicable. For example see France.|
|role:subarea||0+||Refer to relations of sublevel boundaries inside this administrative level.
Note: Optional, disputed and redundant (references to sublevels may also be found with spatial queries, provided that there's no overlap between similar subdivisions). Also referencing other relations makes editing more complicated in some cases.
Note: The ways don't have to be closed, but all ways together should form closed rings making the border. For a not closed, linear border, see Proposal:Relation boundary segment.
- Baarle Nassau is a good use case for this relation. It has exclaves in enclaves. The exclaves in the enclaves of Belgium would just be added as exclaves to the relation of the Netherlands, the dutch province Noord-Brabant and the village border.
- There are more examples!
Software should support all deprecated types until they disappear in database:
- OSM Inspector
- Relation Analyzer
- Relation Check
- Relevant Sophox queries:
- OSM Boundaries by User wambacher
- Mateusz Konieczny, February 2021 Archives by thread : (Tagging) boundary=administrative on ways, Feb 5 2021.