<div dir="ltr"><div>Hi again, fyi. I was curious to see how variable city/town tags were in relation to population. About 1500 places spread around Aus have a population tag according to an Overpass Turbo search. This number includes place=
village, hamlet, town and city. I didn't include place=locality or other place tags. The table below shows how many places were tagged as town, city, etc for each population group.</div><div><br></div><div>
<span></span>
<table cellspacing="0" border="0" style="font-family:"Liberation Sans";font-size:x-small">
<colgroup width="103"></colgroup>
<colgroup span="5" width="85"></colgroup>
<tbody style="font-family:"Liberation Sans";font-size:x-small"><tr style="font-family:"Liberation Sans";font-size:x-small">
<td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" height="17" align="left" bgcolor="#FDE9A9"><b>Population</b></td>
<td style="border-top:1px solid rgb(0,0,0);border-bottom:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="left" bgcolor="#FDE9A9"><b>hamlet</b></td>
<td style="border-top:1px solid rgb(0,0,0);border-bottom:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="left" bgcolor="#FDE9A9"><b>village</b></td>
<td style="border-top:1px solid rgb(0,0,0);border-bottom:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="left" bgcolor="#FDE9A9"><b>town</b></td>
<td style="border-top:1px solid rgb(0,0,0);border-bottom:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="left" bgcolor="#FDE9A9"><b>city</b></td>
<td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="left" bgcolor="#FDE9A9"><b>Total count</b></td>
</tr>
<tr style="font-family:"Liberation Sans";font-size:x-small">
<td style="border-left:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" height="17" align="left">0-199</td>
<td style="border-top:1px solid rgb(0,0,0);border-left:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">138</td>
<td style="border-top:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">106</td>
<td style="border-top:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">83</td>
<td style="border-top:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">0</td>
<td style="border-top:1px solid rgb(0,0,0);border-left:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">327</td>
</tr>
<tr style="font-family:"Liberation Sans";font-size:x-small">
<td style="border-left:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" height="17" align="left">200-999</td>
<td style="border-left:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">42</td>
<td align="right" style="font-family:"Liberation Sans";font-size:x-small">251</td>
<td align="right" style="font-family:"Liberation Sans";font-size:x-small">270</td>
<td style="border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">0</td>
<td style="border-left:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">563</td>
</tr>
<tr style="font-family:"Liberation Sans";font-size:x-small">
<td style="border-left:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" height="17" align="left">1000-4999</td>
<td style="border-left:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">2</td>
<td align="right" style="font-family:"Liberation Sans";font-size:x-small">84</td>
<td align="right" style="font-family:"Liberation Sans";font-size:x-small">280</td>
<td style="border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">0</td>
<td style="border-left:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">366</td>
</tr>
<tr style="font-family:"Liberation Sans";font-size:x-small">
<td style="border-left:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" height="17" align="left">5000-49999</td>
<td style="border-left:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">0</td>
<td align="right" style="font-family:"Liberation Sans";font-size:x-small">6</td>
<td align="right" style="font-family:"Liberation Sans";font-size:x-small">140</td>
<td style="border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">54</td>
<td style="border-left:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">200</td>
</tr>
<tr style="font-family:"Liberation Sans";font-size:x-small">
<td style="border-left:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" height="17" align="left">50000+</td>
<td style="border-bottom:1px solid rgb(0,0,0);border-left:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">0</td>
<td style="border-bottom:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">0</td>
<td style="border-bottom:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">7</td>
<td style="border-bottom:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">31</td>
<td style="border-left:1px solid rgb(0,0,0);border-right:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">38</td>
</tr>
<tr style="font-family:"Liberation Sans";font-size:x-small">
<td style="border-top:1px solid rgb(0,0,0);border-bottom:1px solid rgb(0,0,0);border-left:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" height="17" align="left"><b>Count</b></td>
<td style="border-top:1px solid rgb(0,0,0);border-bottom:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right"><b>182</b></td>
<td style="border-top:1px solid rgb(0,0,0);border-bottom:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right"><b>447</b></td>
<td style="border-top:1px solid rgb(0,0,0);border-bottom:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right"><b>780</b></td>
<td style="border-top:1px solid rgb(0,0,0);border-bottom:1px solid rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right"><b>85</b></td>
<td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0);font-family:"Liberation Sans";font-size:x-small" align="right">1494</td>
</tr>
</tbody></table>
</div><div><br></div><div>Thus, 327 places with a population tag had less than 200 people. Of these 327 places,138 were tagged as hamlet, 106 as village, 83 as town, etc.</div><div>At the other extreme, of 38 places with more than 50,000 people, 7 were tagged as towns, while the rest were tagged as cities.</div><div><br></div><div></div><div>It'd be interesting to analyse these patterns further to see if there are systematic spatial trends (e.g. places along the east coast may have different tags to places further inland). But, at a national level, town/village/hamlet allocation is amazingly variable. It'd be great to develop some clear guidelines to guide future changes.<br></div><div><br></div><div>Cheers Ian<br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Oct 2, 2023 at 10:12 AM Little Maps <<a href="mailto:mapslittle@gmail.com">mapslittle@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi all, I’m late to this but, my two bobs worth… I’d prefer it if a simple, flat rule was used to define towns/villages etc, preferably based on population alone, but using proxies such as area or number of houses where pop data aren’t available. A few reasons…<br>
<br>
Vector based maps (such as Osmand uses) enable users to change what features appear at different zoom levels. Not my specialty, but my impression is vector based maps are more likely to inc in future c.f. tile based maps (which OSM carto uses). These alleviate the ‘empty map’ problem as users can adjust different zoom settings to work in cities or rural areas as they please.<br>
<br>
Simple definitions are more practical. Complicated definitions will end up getting more complicated as different users add their own spin (e.g. 2 closed pubs + 1 footy oval - a doctors office = a town).<br>
<br>
The discussion is focused on map rendering but OSM is a database which (in theory) could be used for lots of purposes. This gets harder to do if places (such as towns vs hamlets etc) have definitions that incorporate lots of other features (such as presence of pubs, ovals, hospitals).<br>
<br>
Using Ockham’s razor, the simplest (best?) approach would be to start super simple and then see what we’re missing. For example, map all locations using population (or proxy) and then overlay presence / absence of hospitals, schools, etc and see where and how often anomalies occur, and then discuss how to deal with these. There may not be many. Otherwise we end up debating local issues only, like the merits of the Windorah coffee shop, which doesn’t get us far imo.<br>
<br>
More broadly, I’m not convinced that many users care whether a locality is called a hamlet/village/town/city. Who calls a place a ‘hamlet’ in Australia apart from mappers? We want to show whether one place is markedly bigger than the next, and more importantly, whether it’s got petrol, a grocery store, pub and hospital, etc.<br>
<br>
Hence, I’d keep the town vs hamlet definitions as simple as possible, and focus on mapping features like residential landuse (which describe how big the place is) and POIs. Let’s avoid ‘town-flation’ and let ongoing developments in map rendering (inc vector maps?) fix empty map problems.<br>
<br>
Great conversation, thanks to all. Cheers Ian<br>
<br>
<br>
</blockquote></div>