The tag place=city|town|village is used for labelling, but sometimes to get the town name displaying in a nice place the position of the label is not at the centre of a place. When place=place=city|town|village is then used to find a place and render the image, the image is therefore not centered over the town / city etc.
We need some way to make the center of a town, so a node could be marked say
<place=centre_of , name=town name , is_in=?????>
An alternative, which after some though I am more attracted to, would be to put the place=city|town|village node at the centre, but not render the name, and then have a new tag such as label=town name=mytown, which is then used for map rendering. It would be necessary to have the label=town (rather than just label=mytown, so that the renderers could easily render text in different sizes, depending on whether it was a city|town|village. The place=city|town|village node would then remain exactly as it is, having the additional tags of name=mytown and is_in=wherever.
- This might be a really wierd idea, but I'll say it anyway... how about using a segment [or a way, alternatively, restriction = 2 nodes only]? The From node gives the location of the label, the To node gives the location of the centre, the segment itself is tagged "place=town, name=Toytown, from=label, to=centre" or something like that? The nodes are not labelled. It would also give a nice way of producing an arrow to the centre, if needed. Matthew Newton 19:15, 14 November 2006 (UTC)
- Matthew's idea means that cities are no longer stored in the node list, which would be a bad idea for the performance of most renderers and search tools. Ojw 19:01, 16 November 2006 (UTC)
After some more thought I feel the structure above, although good for labeling towns|cities|villages etc, is not very flexible. If there is a label tag, then it should be available to be used for labeling other things, such as areas, lakes, etc, and for placing other text on the finished map.
For the sake of clarity, if the proposal is accepted then the rendering of place names attached to nodes for place=city|town|village, etc would become depreciated, and over time these would not be rendered.
My current thought therefore is the tag should be label='words to be rendered', label_size=1|2|3|4|5. City names could be rendered at say size 2, towns at size 3, villages at size 4, but I could then also use the tag, for instance, to label the Isle of Sheppey, and tag it as label=Isee of Sheppey, label_size=3.
Also when rendering, label sizes 1 & 2 could be rendered at low zoom levels, sizes 2,3 & 4 at intermediate zoom levels, etc.