Names of small hamlets rendered on low zoom levels
  • Hello,
    I have noticed that names of some small settlements, hamlets, are rendered on low zoom levels, when generally only names of large towns/cities and villages are visible. The font size of their names is the same as the font used for large towns/cities. On the contrary, names of nearby villages, which are 10-100x larger, are not rendered on that zoom levels. I have found several examples in the district where I live and I know the circumstances.
    I have checked OSM on the web, everything is correct here, the settlements are categorized properly in the database as hamlets and on the map the names are appearing in the right order.
  • 25 Comments sorted by
  • There must be some bug/incorrectly programed algorithm in MapFactor which renders these names. OSM maps are OK, tags are correct and their render on the computer as well.
    My example is from South Slovakia, between cities Komarno and Nove Zamky, which are towns 40.000+, between them hamlets Vlkanovo, Kovacova samota are shown using the same font size. Other hamlets rendered as well, however with smaller fonts (Anala, Kamenica, Zamocka pustatina, Bokros). On the other side, villages with several thousands inhabitants (Svaty Peter, Dulovce) not named.
    I hope that the programmers of MapFactor Navigator read this and try to improve the way the application renders these names. Thanks.
  • hvdwolf, thank you for the clarification.
    But anyway, why on the desktop version of OSM is everything fine and in the OSM used in MapFactor it is different/ i.e. worse? Why cannot use MapFactor the same way of rendering of the names which is used on the desktop?
  • @mdx
    I have checked some places in Germany, and it is really an improvement. The font sizes now seem to represent the sizes of the towns / villages, and most importantly the larger towns do not disappear when zooming out (before the change, the were sometimes superseded by villages).

    One possible improvement: To my taste, at some zoom levels, the maps appear a bit “empty” (see example below). One could possibly add some rule: If there is enough place, render the names of smaller settlements.

    Thanks for the changes.

  • I would like to come back to that comment.

    Sometimes, the font size of small villages is even much larger than that of nearby towns. Have a look at the following example:

    Öhringen is tagged as place=town

    Büttelbronn: place=village, but Büttelbronn is much larger on the map (not on OSM online maps)!

    What's the reason?

    Thank you.
  • Colleague said that size of city is estimated by amount of roads nearby... When cities are near each other this algorithm stops working correctly
  • I think this is a problem, other OSM maps have as well. I discussed it with openandromaps. "Seoul", a city with a 10 million population, disappears long before the name of a neighbouring city with some hundredthousends population.
  • @petert:  You can call this a bug but it is more complex and is how admin levels and place levels work in OSM.

    If you zoom in from a low zoom level (=major place level) to a high zoom level (= a minor place level), you go from city to town to "smaller".
    However, city has top-level city going down to borough, suburb, quarter, etc. The more you zoom in, the more the texts on that level are displayed which means that the city level (lower zoom level) will disappear.

    Same for admin levels: When you zoom in you go from Germany to Bayern to Allgau to Ober-Allgau etc. down to lower levels including "municipalities" which are the cities, towns, etc. You don't even want to see Germany when you are zoomed in to street level.

    It is "builtin" in OSM even though it is sometimes very inconvenient. In this case app function follows designed structure (which is also the reason many other nav apps have it as well).
    I do agree with you that this could certainly be a feature request but I won't call it a bug/incorrectly programmed algorithm. 
  • @hvdwolf:
    Please have a look at my example above. I still think that this is a bug: Büttelbronn, tagged as village, is displayed larger than Öhringen tagged as town. There are many of theses strange font sizes also in other countries.

    This cannot be explained by your comments above. The font size should somehow be adjusted according to the tags.
  • @qwertz100: You are right. As long as they are both displayed, the bigger town should have a larger font.
    (And also: In Nominatim it even says for Büttelbronn: "Büttelbronn, Verwaltungsgemeinschaft Öhringen, ")

  • @lubos: In the map editor there are 6 city_class texts 1 to 6: City, town, Village, Hamlet, Isolated dwelling, farm and allotments? (last 2 together?)
    In the scheme editor inside MNF are only 5 CityClass texts: why? a bug?
    And I also see that those city classes are not equal to the ones in map editor. 
    Class 1 to 3 are equal in font sizes but different in bounding boxes and shrink ratio but I can't find that back in the scheme editor. Class 3 is diferent in the map editor compared to the MNF scheme editor.
    It is as if class 3 is missing from the MNF scheme editor even though it has that same number (resulting in only 5 classes in MNF compared to 6 in map editor)

    So: Is this missing or "mis allignment" in these text classes only a "bug" in the MNF scheme editor or is it also a bug in the MNF code and is that the reason that the missing class in MNF is not correctly interpreted, or that city class text parameters are mixed up during rendering?

  • there are lot of groupings in scheme editor because there was too many things...  City class 2 and City class 3 are grouped together and next are decreased by one.

    You can see in navigator folder - <model> tag is one item in editable item selection... For example 100+ icons are grouped into one model.
  • Clear. At least I did see it correct.

    How about the font sizes qwertz100 mentioned?
  • I do not know more than I wrote in msg from 14th.
  • @lubos, @hvdwolf

    I don't really believe, that the font size is determined by the amount of roads around. There are much more roads nearby Öhringen compared to Büttelbronn.

    I think, using the different tags, the font size problem could be solved straightforwardly.
    This would be really an improvement of the maps.
  • The display class of towns/villages is addressed in April 2015 data conversion (experimentally Germany, Czech Republic and Slovakia). Please let us know if the problem persists.
  • Martin (mdx), I have checked map described by my example from March 15 and it is much better. Still not perfect, the hamlets are still appearing too early, and at certain zoom levels with same fonts like much larger settlements, but fortunately they are not rendered earlier than nearby large villages/cities. Thanks a lot for the improvement.
    Btw. I have repeatedly noticed that the city Nove Zamky is completely missing (the name is appearing, but the grey area, which is used for settlements, not).
  • @mdx

    Did you already, change the display of towns in other countries besides Germany, Czech Republic and Slovakia?

    E.g. for France, it is currently not the case, I think. It would be really nice, if this improvement could be activated for France and Spain in the near future.

    Thank you again.

  •     if ID in ["czech_republic_osm", "slovakia_osm", "austria_osm", "netherlands_osm", "ireland_osm", "united_kingdom_osm", "poland_osm"] \
            or ID.startswith( "germany_" ) or ID.startswith( "france_" ):
    ... so June 2015 data will be already with France. If everything is fine this script will be used for all data in July 2015.
  • I have checked some places in France and it seems to be really improved.

    Thanks again.
  • I would like to ask whether another improvement would be possible:

    Please have a look at

    When zooming out, Branges supersedes Louhans, which vanishes.
    Thats not quite right since the population of Louhans is much larger than that of Branges (6520 vs. 2393).

    Would it possible to use the population tag to determine which one is to be rendered?

  • Well, this one is not simple - there are "display classes" and both villages are within the same group:
    'town_10k-49k':10, 'town_village_1000-10k':11, 'others':12
    mysql> select * from mff_center_of_settlement where id_center_of_settlement in (26697072,26698500);
    | id_center_of_settlement | id_shp | id_admin | name    | display_class |
    |                26697072 |    675 |  1771410 | Branges |            11 |
    |                26698500 |    984 |  1170033 | Louhans |            11 |

    mysql> select * from osm_population where id in (26697072,26698500);                              
    | id       | name    | population |
    | 26697072 | Branges |       2393 |
    | 26698500 | Louhans |       6520 |

  • Thank you very much for your reply.

    If both villages are in the same display class, how do you determine which one to display, if there is not enough space for both? Is it just arbitrary or determined by the number of streets as suggested above?

  • depends on space on screen
  • Well - but I still don't understand which criterion you use to decide whether to display "Branges" or "Louhans" in the above example, if there is not enough space on the screen to show both.
  • it depends on position on screen and position of other texts
    algorithm is quite sofisticated

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion