-
Notifications
You must be signed in to change notification settings - Fork 823
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adjust aeroway=aerodrome
zoom levels
#3856
Conversation
Change initial zoom level to z11 for airports, z13 for minor aerodromes, change last zoom level to <17 or waypixels<768000 Airport z10-17 icon z11-17 text, minor aerodrome z12-18 icon z13-18 text, and waypixels <768000
Charlottetown, Canada
z10 before(Only 315 way_pixels at this zoom level: about 11x30, only a little larger than the 14x14 pixel icon) z11 - unchangedz14 beforeCable Head Airpark
z11 beforez12 beforez14 beforez15 AFTER |
I have a few concerns:
One thing that could be an option: The plane symbol could in principle also be recognizable at somewhat smaller size. You could think about starting with a smaller version of the symbol if that is of benefit. |
Sorry, I should have shown the good examples first, but then I decided to show the "worst-case" scenario of N Ireland. It's true that the changes are not very impressive at high latitudes in Europe, where you tend to put your airports far from towns and don't have very many small ones. In contrast, in the tropics it's quite common for every important Papua, Indonesiahttps://www.openstreetmap.org/#map=10/-4.000/139.000
Wamena & Baliem valley
z10 before
z11 before / after (same)
z13 Before / After (same)z14 Before
z15 AFTERz16 after
Yahukimohttps://www.openstreetmap.org/#map=11/-4.500/139.500
z11 Before - south of mountains
z12 Afterz11 before - north of mountainsz12 North Beforez13 Before / After - unchangedz14 AFTERPengunungan Bintang
z11 beforez12 After - all the labeled villages have an aerodrome, but most icons are still blocked by collisions at this levelSentani International Airport
z10 - icon and text labels blocked by town / lake) z11 Beforez12 Beforez13 Beforez14 AFTERz15 beforez17 Before/After |
I would prefer to have "airports" (aerodromes with Re: IATA codes; all airports with commericial air transport (regular scheduled airline flights) have an IATA code, even in Indonesia and most developing countries. While some aerodromes with IATA codes are old military airports or old airports which no longer have scheduled service, it's nearly certain that all "airports" (in the popular sense) have one of these codes, and airport mappers have been diligent about adding them. I agree that checking for (I would like to develop the
Yes, that's why I included Otherwise, we could change this limit to
66.7 degrees is quite high. I believe <1% of the global population lives north of 60 degrees (none live south of 60), and I suspect <0.01% live north of 66 degrees. Since cos of 66.7 is 0.40, a pixel at the equator is 6.2 times more area than a pixel at 66.73 degrees north, and a line is 2.5 times longer at the equator when drawn the same length, which makes it very difficult to get reasonable rendering for features in the tropics and at 66.7 degrees when using mercator. I'll open an issue to discuss this further.
Stadiums and Universities render from z10 and Belfast International has
That would be worth trying, especially if are to keep the symbol at z10. I notice that the What do you think about using an even larger icon at higher zoom levels and adjusting the text size large as well, so that it works more like the |
Final zoom level z15 for airports with IATA code, z16 for other aerodromes, or if `way_pixels > 192000`
I like these changes as I feel aerodromes are somewhat messy right now. An old idea of mine was to render small aerodromes with a prop plane icon: But really, the aerodrome proposal needs to get approved first so we can use |
Based on the additional test images in Singapore and suggestions above, I've pushed a new commit which changes the last zoom level to z15 for airports with IATA codes and z16 for other aerodromes, and The removes the icon and text label rendering from z16 for those with an IATA code, and from z17 for other aerodromes, and also removes the rendering if way_pixels is between 192k and 768k (one zoom level) |
@meased - I've thought about using a different icon, but I agree that we would need a more precise tag like Re: IATA codes; every airport with scheduled airline service, including very small "airlines" flying prop planes, has an IATA code. And these codes are quite useful for identifying airports, since they are often printed on tickets, boarding passes (e.g. for transfers and connecting flights) and baggage tags, and shown on ticket buying websites, so I think it's quite important for mappers to add these. See: From what I've seen, there are no airports with an IATA code that lack an ICAO code, but there are some ICAO-coded aerodromes that have no IATA code: https://aviation.stackexchange.com/questions/8767/when-do-we-use-iata-codes-and-when-do-we-use-icao-codes I considered if we might just check for In the OSM database, there are currently: In contrast, for ICAO there are 12,158 (4098 nodes, 8060 ways and relations) There are 5339 aerodromes with ICAO codes but without IATA codes in the database; some of these are unpaved grass airstrips with no weather or control (https://aviation.stackexchange.com/questions/14585/why-do-some-airports-not-have-icao-codes?rq=1)
There are also 1956 aerodromes with an IATA code but no ICAO code currently. I checked on these: there aren't any in the UK, Japan, Germany, or France, and there are only 19 in all of Russia, so places with active mapper communities have added ICAO codes to all airports with IATA codes. Examples of those missing the ICAO code in Russia But in the USA there are 510 aerodromes with an IATA but no ICAO, especially up in Alaska, and many actually don't have an ICAO code assigned. Examples:
Indonesia also has 23 aerodromes with And there are 50 aerodromes with Overall there are It looks like all the important airports have both an ICAO code and IATA code, so by checking for these we are getting all the big ones in the earlier rendering, and avoiding some bad data among the airports that are tagged with just an iata code. |
I tried adjusting the text and icon size by zoom level and way_pixels, but I'm having trouble getting the SQL right. Rather than checking for `['iata' != null]['icao' != null]['access' != 'private'] I tried to make this SQL query:
And then this:
But now all the airports without IATA and ICAO codes are still rendering as |
I've pushed a new commit with my partially successful attempt at adjusting the icon and text size; perhaps someone can help me find my mistakes. |
54f9e21
to
8f80f7b
Compare
Small 8 pixel airport icon at z10, larger 15 and 18 pixel icons at higher zoom levels or larger way_pixels Also created `is_airport` SQL query in project.mml to simplify CSS But small airports are not rendering correctly yet
8f80f7b
to
29cd1f3
Compare
Split aerodrome features into major and minor to avoid repeating iata=null OR icao=no OR access=private
I fixed the problems with the previous commit, though the code is not as compact as I would like. I would appreciate some advice about how to condense it. Here are the current results, with icon size and text size adjusted based on zoom level (and way_pixels). I returned the way_pixels max limit to 768,000 because the text size now matches other landcover areas which use this same limit. Northeast Wales
z11 Hawarden latest commit - unchanged z11 airstrips before z11 Airstrips - latest commit - no longer shown z12 airstrips - latest commit - just icon z13 airstrips - latest commit - inspector view (just 680 way_pixels here, but text label shown) z16 rhedyn airstrip - latest commit - still could be shown at z17, but stops here z16 bryngwyn farm airfield - latest commit - last zoom level rendered (but z17 would be ok) Northwest Wales
RAF Mona
z13 latest commit - same as current rendering
Caernarfon airport
z13 latest commit - unchanged from current rendering
|
The previous limits, 12k and 48k waypixels, are used for landcover features which area usually fairly round or square, but airports are often long and thin, so the limits should be increased so that vertically aligned airports do not have the label too large
New tests in Papua, Indonesia; compare with images in #3856 (comment) above for "before". Wamena airport(z10 airport icon and label blocked by city name, before and after) z12 latest commit - unchanged (blocked before and after) z14 latest commit - larger icon z15 latest commit - larger icon, text still blocked by colllision z16 Latest commit - large text now shown z17 latest commit - icon and text shown (last level) Tulem airstrip
z13 latest commit - same as current z15 latest commit z17 latest commit |
I fixed a couple more bugs. More test images: Darwin International Airport
z10 beforez11 before / after - unchangedz12 before / after - unchangedz13 beforez14 before - not shownz15 after - last zoom level - 636k way_pixels, just makes it under the cut-offz16 after |
Northern Australia has lots of tiny airports / airstrips: z10 beforez11 beforez12 beforez13 before / after - unchangedz14 before - no label or iconz15 AFTERz16 AFTERz17 AFTERNot shown at z18 |
Not sure when you consider this ready - when you work on a PR for longer it is usually good to indicate this with a WIP note in the title. As a general note on what you are trying now - from a perspective of a well readable and intuitively understandable map design i am against scaling an icon + label annotation of features. The scaled labels for polygons we have been using are already a pretty delicate thing that only works when used sparsely and we are already overusing that quite significantly. Scaling also symbols and offset labels next to them (which by the way are shown and hidden independently - see #234) would significantly aggravate this problem. My suggestion was to - if that helps - reduce the symbol size at the starting zoom level when it is shown without a label. This could help maintaining a relatively low starting zoom level without too much filling the map at low latitude. Apart from that i would keep the logic relatively simple. The problem about showing symbol/label at relatively high zoom levels when the airports are large compared to the size of the labels is the lack of sophistication in label placement. A well working label would need to be located near the functional center of the airport - near the main tower, the terminal building or between those and the runway. Scaling symbol and label is a superficial attempt to hide this but it does not really work, it just disguises the problem. |
Sorry, it's ready now. I thought it was ready before, but kept finding new mistakes when I made test renderings in different places.
It certainly would be better if the label placement could be adjusted. But I believe the larger text size is helpful because it makes it clear that this is a large feature. Since we do label Objectively, the larger labels are only about 50% bigger than the standard text size, so this doesn't actually do anything to hide the sub-optimal label placement (especially since the ST_PointOnSurface changes), but the larger text does make it clear that it isn't a specific point. I considered removing the airport icon at higher zoom levels, but at that point it's almost never blocked by collisions with other features. This tends to happen at z10 to z12, which is why I removed the text labels for non-commercial aerodromes (lacking IATA codes) at z11 to z12 and from z10 for airports. (I'd be interested in trying to solve #234 too.) |
It would also be better if the aerodrome polygon fill color was a little more purple. Right now it looks too similar to parking lots and untagged lands. Matching the text, icon and fill color helps make the map more intuitive. For this reason, I'm also considering a separate PR to render military airfields differently, so that the purple text does not mis-match with the military fill/pattern. |
I made some general notes about PR review here: #2291 (comment), so now I will only try to spot on this specific ticket. I gave there my explanation why trying to make a full review is sadly just hopeless. I believe text scaling is a great tool, but I'm less of a fan for icons. I think making them bigger to stick with the labels is justified (uniformity of elements describing the same object), but scaling down does not work for me at all. I hope just removing labels at initial levels should be enough. The problem of stopping to render icons for me is related to the airport size. The last time I want to see the icon is when the whole airport i still visible on the screen. Since they differ in size it is not a simple choice, but we can estimate average size for public/private airports for example (or use some other tags also). |
I know this is the reasoning but it works less so than you might think. Basing the label size on way_area rather than on semantics (like it is done for populated places for example or administrative units) removes the label size as an element that allows identifying the type of label or that transports useful information not shown otherwise and limits intuitive recognition of the overall appearance of certain types of features. Airports - unlike for example lakes - are not a featureless two-dimensional entity defined exclusively (or even foremost) by the geometry of their outline. Also keep in mind that if you extend the label rendering above z15 it becomes very likely that the label is blocked by a runway/taxiway label or some other label and the likeliness of this happening increases with increasing label size. You might not get a very consistent rendering of labels at the higher zoom levels because of that. |
@kocio-pl - i don't doubt that there are examples where label scaling based on way_area works well - that is not what i have put into question here. I also explained that there is an enormeous difference between labeling something like a lake and labeling something like an airport. Apart from that your sample mainly illustrates how dysfunctional our rendering of nature reserve boundaries currently is in a lot of cases. Many map readers in your example by the way will not necessarily read one large nature reserve and three smaller ones but one of a more important class of nature reserve and three ones with a less significant classification. The main reason why your example works is because the size is congruent with the semantic classification in this case so this interpretation is not in conflict with reality. This works less so for example here: https://www.openstreetmap.org/#map=9/37.9160/-111.8367 where you have prominently visible the Dixie National Forest but much smaller and less prominently the much more significant (because more known and more visited) Capitol Reef National Park - not to mention Bryce Canyon National Park, which is not even labeled at the linked to zoom level. Someone who is not familiar with the details of classification of protected areas in the US (National Park/Monument/Forest/Recreation Area, Wilderness Area, Conservation Area and countless other terms) is very likely to be completely confused because the label size does not match what they'd expect it to indicate, namely a meaningful measure of importance of the features labeled. |
For the reasons I just gave in #2291 (comment) I won't go further with discussing size-based labels here - we can talk this to death with no conclusion for this ticket. I don't see anything blocking this code from merging. Maybe there are things that could be improved, but nothing scary appears on the surface and proper review would too time consuming, so I give you a benefit of doubt. The only thing I'm opposed would be downscaling icons, but I'm not sure how hypothetical this proposition was. |
@imagico - The specific example that @kocio-pl gave would have worked in either approach. The Adirondack Park is tagged Unfortunately, I don't think that there's any mapping that can associate |
(From #2291 (comment)) |
Is the new 8 pixel size aerodrome icon too small to be clearly legible at z10? Are you saying that you would prefer that we keep the current 12 pixel icon at z10 or remove the airport icon at z10 for now (though later we might add it back for |
@imagico - it sounds like you are opposed to the use of larger icons and text at higher zoom level / higher way_pixels. This option was not originally part of the PR, so I don't mind removing it, and also removing the rendering at z16/z17 where otherwise the small icon/text is confusing. |
[zoom >= 15] { marker-file: url('symbols/aerodrome.15.svg'); } | ||
[zoom >= 16] { marker-file: url('symbols/aerodrome.18.svg'); } | ||
} | ||
[zoom >= 12][zoom < 18][way_pixels <= 768000] { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@imagico - are you ok with using way_pixels to stop rendering the icon/text sooner for large aerodromes which are mapped as areas, as in this line and in lines 1522, 3175 and 3226?
I've removed a couple of my comments which included outdated test images, which are not necessary to understand the discussion. |
I consider this an advise rather than a firm opposition. I don't think this is a good idea but at this point my main concern is not so much that that the results would be so bad that it is a serious problem to try it but that we (the maintainers here) currently lack an agreement on how to evaluate if such a change is positive in the results or not. Judging from various recent discussions about the benefit of past changes (in particular #3750/ #3634 about the benefit of #3438 and #3144, #3513/#3647 about the benefit of #2654, #3855 about the benefit of #2746 and of course #3635) i have the strong impression that we currently lack the ability to critically evaluate past design decisions in cases where there is not a clear technical bug and reach a common assessment and consensus on such. This in my eyes consequently means we need to be extra careful when making new design choices.
In principle yes, however you need to be careful what way_pixels value you assume for nodes. If this is a value other than zero that is likely confusing for mappers. @kennykb - What i tried to point out here is that label scaling based on way_area in this style works well in some cases but sufficiently often is also quite counterproductive as shown so a critical evaluation of this and careful consideration if to extend it to other features are a good idea. |
The short list of what you plan to do currently would be enough for me.
I think another general remark and long comments do not help to make the decision in this PR. It does not answer the key questions of this change, like the one above. Please, Christoph, open general tickets for general problems. I seriously think it deserves separate thread and not mixing it with - we agree that already overloaded - PRs.
Removing labels at initial levels is OK for me if there is a problem with cluttering. I said nothing about initial level the icons would start showing, but I prefer to keep them on z10 (just without the labels, if needed). |
It looks like the current small icon at z10 is not acceptable, and the more complex label and icon size changes at high zoom levels will need to be deferred to another PR, where we can discuss them more generally, so I will close this PR and create a fresh one. |
Adjust aerodrome and airport zoom levels
Fixes #2664 and fixes #3809
Related to issues #1028 and #1143
Follow-up of PR #2674
Changes proposed in this pull request:
1) For public aerodromes (
aeroway=aerodromes
withiata=*
andicao=*
, and notaccess=private
)2) For other aerodromes (
aeroway=aerodromes
lackingiata=*
,icao=*
or both, or withaccess=private
)3) Optional:
way_pixels>768,000
(this only works for largeaeroway=aerodrome
mapped as closed ways or multipolygons, however).Explanation
The current initial and final zoom levels for aeroways are z10 and z13. This appears to have been picked to work with large, international airports in the high lattitudes, though even there it's surprising that airports are not rendered at z14.
In #2664 and #3809 it is noted that aerodrome icons and labels disappear after z13, much sooner than almost any other feature. This is unexpected, and does not work well for average-sized airports and small aerodromes.
It also does not work well at low latitudes near the equator, and it fails badly with small airstrips and airfields. Such features are rare in Europe, but common in parts of North America, Australia, New Zealand and the whole tropical region.
Also, in #1143 it was noted that too many small aerodromes were previously shown at mid-zoom levels, (z10 to z12). This was partially address in PR #2674 by moving aerodromes with
access=private
or lackingiata
= (oricao=
) to z11, however, this did not address any issues at z11 or z12, and it appears not to have considered the issues closer to the equator.Another issue is that the text label or icon of an airport is often blocked by the name of the town at low zoom levels (z10 to z12), leading to just the text label or just the icon showing. This is particularly a problem for small airfields and airstrips, which show a zoom level before
place=village
currently, though they area usually less significant.Recently, PR # solved #1028 by stopping area labels based on waypixels for most area features at
way_pixels > 768,000
Many larger airports are now mapped as areas, but of the 100 aerodromes with an IATA and ICAO code in Germany there are still 11 mapped as nodes, and in Canada there are 78 nodes out of 260, so it's not possible to use
way_pixels
to adjust rendering in general. *(However, it might be used just to stop rendering large airports a little sooner than others)However, checking the
way_pixels
of various aerodromes in Canada, Northern Ireland and Indonesia, it's apparent that most should continue rendering till z16 or z17, rather than stopping at z13, if we were to use away_pixels < 768,000
cut-off.See #1028 (comment):
I have tested various initial and final zoom levels for rendering airport icons and text labels, so far in Papua, Indonesia (4 degrees south), Prince Edward Island, Canada (46 degrees north) and Northern Ireland (55 degrees north).
By changing airports (those with IATA codes) to show only the icon at z10, the feature is not too dominating on the map at this zoom level. At z11 larger airports are clearly visible and the text label is not too distracting (though it still may be a problem near the equator).
For smaller aerodromes without IATA codes or private aerodromes, the initial zoom level is changed from z11 to z12, and only the icon is shown at this zoom level, with the text label first shown at z13. This allows
place=village
to be shown 1 zoom level before these minor features have labels. 2 other renders mentioned using z12 or z13 as the initial zoom level in #1143, see #1143 (comment) and #1143 (comment)The final zoom level is changed to z16 for aerodromes with an IATA code and z17 without, based on the usual size of these two categories. Some large aerodromes at high lattitudes will not benefit from the icon and text label rendering at z16; this could be solved by checking for
way_pixels
, or we can accept that such airports are rare, and the majority ofaeroway=aerodrome
features will benefit from the rendering at z16 (or z17 for smaller ones).Test rendering with links to the example places:
Belfast International Airport
https://www.openstreetmap.org/#map=11/54.6500/-6.2272
z10 before
(also visible: Belfast city airport, at right, but text labels is blocked by place label)
(At this zoom level, the text lable is several times larger than the airport, even for this large airport at high latitude)
z10 after - symbols still shown, but no text at this zoom level
z11 before
z11 after - small aerodrome to southwest is not shown now, because at this low zoom level
z13 before (same after)
(last zoom level where icon and text label are rendered currently)
z14 before (no label or icon)
z14 after
z15 before - inspector view
(not rendered, even though < 525k
way_pixels
)z15 after
z16 before
(first zoom level where terminal building name is shown)
z16 after - not shown, if
way_pixels
are checked.Belfast city airport
https://www.openstreetmap.org/#map=11/54.6198/-5.8705
Also an airport with a full-length runway at high lattitude, but it only hits 36,000 way_pixels at z14, so it should render till z16 (576k waypixels).
z14 Before
Only 36k
way_pixels
, but no icon or text label renderingz14 after
z15 After
(No rendering before)
z16 After - inspector view
(Only 574k
way_pixels
, so it should be rendered - and this is true for almost all airports at z16)Dunnamanagh Airstrip
https://www.openstreetmap.org/#map=12/54.8889/-7.2669
z11 before
(After: not rendered)
z12 before
** z12 after** - just icon
z15 after
z17 after