Proposal:Urban settlements

From OpenStreetMap Wiki
Jump to navigation Jump to search
Urban settlements
Proposal status: Abandoned (inactive)
Proposed by: SimoneSVC
Tagging: [[Key:<to be determined>|<to be determined>]]=[[Tag:<to be determined>=<to be determined>|<to be determined>]]
Applies to: area
Definition: A way to map the extension of urban settlements (cities, towns, villages)
Statistics:

Rendered as: A shaded area that represents the settlement
Draft started: 2012-10-08

This proposal aims to define how to map the extension of a urban settlement, to give the map user a rough idea of how large that city/town/village is.

Rationale

Tagging a place with a single node is clearly not enough to convey all the interesting information about the place. Urban settlements (from large cities to villages and even hamlets) extend over an area whose shape is an interesting piece of geographical and geometrical information. This information cannot be adequately described with tags only: for example, indicating a radius in kilometres would not account for peculiar shapes of the settlement.

This is similar in concept to the current suggested usage of place=* on an area. However, the place=* approach forces the mapper to choose between putting the tag on a node in the center of the settlement or on the closed area that represents the extension. Tagging both would be wrong:

  • from a conceptual point of view, it would mean that, for instance, two cities called London exist roughly at the same location;
  • from a consumer point of view, this may cause bugs or weird results (for instance, Nominatim returns twice a city named London[1]). While dealing with this issue in the data this could be considered "tagging for the renderer", the bugs derive from the conceptual issue described earlier.

Another approach to describe the extension of a settlement that is often encountered is to draw a large landuse=residential and to call it the name of the settlement. This is commonly found in the map, especially with small towns and villages. This approach is generally wrong: only in very simple cases, in fact, a whole urban settlement, however small, can be considered residential as a whole.

Alternative solutions

An alternative solution is to tag the area as place=*, and the node in a different way.

Tagging

Note: This part is being drafted and may change

The proposed tagging scheme is:

  • draw a node in the centre of the settlement, and tag it, just like described in Key:place (the place=* tag on an area would therefore become deprecated);
  • draw a closed way around the settlement and tag it
    • settlement=yes - this indicates that the way is the extension of the settlement (implies area=yes). Alternatively, settlement=* could be used to indicate which kind of settlement it is (with the same value as the {Tag|place}} node).
    • settlement:name=* - the name should be the same as the place it refers to.

Suggestions for data consumers

Of course, these are just hints, and are intended to offer a better explanation of the rationale.

Rendering

Currently, place=* can be applied to nodes, or areas, or both. This means that renderers can never be sure what they should expect. Many (including the Mapnik rendering on openstreetmap.org) choose to ignore areas at all, and only write the name where the node is located. They object that considering areas too would cause many names to be written twice, which would look ugly.

With the proposed tagging scheme, instead, areas tagged with place=* would become obsolete. Renderers would only need to draw the name where place=* nodes are located, and could optionally draw a shaded area corresponding to the settlement=* (possibly using different styles for different kinds of settlements).

By the way, this rendering would make the urban extension immediately visible on the map, and could prevent some mappers from incorrectly using landuse=residential as a "mapping for the renderer" way to make it show.

Search tools

Search tools could safely ignore the settlement=* area. All places would be represented by a node with place=*, and this is what should be indexed for search. The settlement area should be of no interest in the search, but it could be used to locate a street (it would be considered part of the city if it lays inside the area, much like what happens now with areas tagged as a place).

Footnotes

  1. This has been investigated on the Italian Talk Mailing List. You can find the discussion here [IT][1].

There is also a discussion in 10/2012 on this on the Tagging Mailing list: [2]