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.
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.
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.
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.
@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 scheme_editor.map in navigator folder - <model> tag is one item in editable item selection... For example 100+ icons are grouped into one model.
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.
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).
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.
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. thanks
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 | +----------+---------+------------+
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?
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.