-
Notifications
You must be signed in to change notification settings - Fork 819
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
More vertical objects rendering and tuning #3158
Conversation
Could you publish a gist? |
Does anybody know how to expand our code for height to work with optional unit "m"? Current code is based on ele code (where units are not possible): openstreetmap-carto/project.mml Line 1466 in ea769f4
I was trying to replace this regex with something like: ^-?\d{1,4}(\.\d+)?(\s[m])?$ or with additional grouping: ^(-?\d{1,4}(\.\d+)?)(\s[m])?$ and it looks more or less OK with testing ( https://regex101.com/ ), but it doesn't work. I guess it tries to evaluate the whole expression instead of just the first group, but I don't know how to fix it. |
Rendering tests (with initial zoom levels):
|
Tower look great. For regex I would try this ^-?\d{1,3}(.\d+\s[m])?$ One thing I can say is that changing from 1,4 to 1,3 seems reasonable hence in ele we have places located at high above 1000m while for object high I believe all of them would fit under 999 including Burj Khalifa (hence 3 digits only). |
I noticed addition of man_made=communications_tower to the code. Even when I like as many tags added to rendering as possible personally I find logic behind such a specification a bit redundant to man_made=tower. Question is would it not be better to simply change all instances of man_made=communications_tower |
I'm pretty sure that many towers/masts are mistagged. But that is - partly - due to lack of rendering them and I hope this will improve over time. I've been thinking about it and decided that it makes sense to have Of course, if tagging habits and documentation will change, we can change rendering too to follow it, but at the moment it seems right for me to render them - 3970 uses and a wiki page that I can understand how it's different from regular towers is enough for me. |
Doesn't work, I still think it tries to treat "m" as a number and fails:
|
I used to create many regex syntaxes for nano editor with most recent being https://github.com/mikaku/Monitorix/blob/master/docs/monitorix.nanorc but as you see it is much simpler than that for sql query so that is why I said it "might" work ;) As for man_made=communications_tower I guess you are right and it is better to render it hence it is well established map feature, but it does not change my humble opinion that it is somewhat redundant to man_made=tower |
but most probably like this type: |
The first of these seems to be the most appropriate to me, the others looks
a bit cluttered. The exception would dome radars (radomes) that should keep
their bulbous head look
|
First one actually look to me like an icon for night club, cocktails or something similar. Second I like, but it looks like airport control tower and question is whether that is always the case that radar is also located there. I just do not know that, but still I like that one the most. |
I was talking with a fellow coder and he found a solution with a "lookaround" regex feature: ^-?\d{1,3}(\.\d+)?((?=\s*m$)|$) It works properly on https://regex101.com/, so I will test it soon. |
Unfortunately it doesn't work... However there's a section about lookarounds in PostgreSQL documentation, so maybe someone could dig into this a bit more: https://www.postgresql.org/docs/9.6/static/functions-matching.html#POSIX-CONSTRAINTS-TABLE |
Is https://github.com/SomeoneElseOSM/openstreetmap-carto-AJT/blob/master/symbols/radartower.png any use? |
I used this for the waterfall code: ^(\d{1,4}(\.\d+)?)\s?m?$ This allows whitespace at the end of the line (casting to NUMERIC will ignore this). We could disallow it like this: ^(\d{1,4}(\.\d+)?)(\s?m)?$ |
Great! I think we should use restricted version (trailing space is a mistake) and we should also restrict height to 3 digits, because the highest waterfall has just 979 m. I guess even |
@Tomasz-W I have mixed filling about that look for tower:type=radar as is kinda resembles the candy on the stick. tower:type=radar & tower:construction=lattice |
I really like idea the most from all the previously proposed. Could You also try icon with the same top part but with solid base like in your previous example? Just so we have variation for tower:construction=freestanding |
I kinda like "observation tower base" more than "halftoned-version", but if others have different opinion I would not mind to have either as it does differentiates it more from hunting stand. Solid base looks ok, but I think we could also try using base with 2/3 wideness of the rectangular box on the top to make it a bit wider which could give it more indication that it is not mounted on the pole. |
I miss |
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.
I have a few concerns
-
We're adding 5 more icons. Any symbol addition needs to be worth the cost of additional icons, and no reason is given for why we want to render these. I makes it hard to address if it should be merged without a reason for the changes.
-
The icons don't meet our guidelines. In particular
-
Stroke is used in a couple places
The top of the stack should align with a pixel edge, as should the bottom of the clouds. The cloud might be too complex for 14px.
The alignment looks good except for the horizontal lines at the base, which are almost on a pixel edge.
The visual weight of this icon is much higher than other icons.
The upper edges should be straight and aligned to pixel edges.
The lines that are almost on a pixel edge need aligning
Can we get more alignment with pixel edges? The right of the bottom base can be aligned.
symbols/towers/chimney.svg
Outdated
<path | ||
id="rect4495" | ||
d="M 10.318359 0 A 1.741594 1.2970195 0 0 0 8.6601562 0.90039062 A 1.1655669 0.92076844 0 0 0 8.2539062 0.84179688 A 1.1655669 0.92076844 0 0 0 7.0898438 1.7617188 A 1.1655669 0.92076844 0 0 0 7.0917969 1.7851562 A 0.82779479 0.70560503 0 0 0 7 1.7792969 A 0.82779479 0.70560503 0 0 0 6.171875 2.484375 A 0.82779479 0.70560503 0 0 0 7 3.1894531 A 0.82779479 0.70560503 0 0 0 7.8125 2.6152344 A 1.1655669 0.92076844 0 0 0 8.2539062 2.6835938 A 1.1655669 0.92076844 0 0 0 9.2050781 2.2929688 A 1.741594 1.2970195 0 0 0 10.318359 2.59375 A 1.741594 1.2970195 0 0 0 12.058594 1.296875 A 1.741594 1.2970195 0 0 0 10.318359 0 z M 6.1289062 4.59375 L 5.7421875 14 L 8.2578125 14 L 7.859375 4.59375 L 6.1289062 4.59375 z " | ||
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.92604458;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" /> |
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.
don't set stroke-width, etc
cy="5" | ||
cx="7" | ||
id="path833" | ||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.36062992;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> |
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.
no stroke-width, etc
symbols/towers/tower_cooling.svg
Outdated
<path | ||
id="rect4506" | ||
d="M 7.0390625 0 C 5.7192088 -0.00551362 4.3801947 0.16076646 3.0566406 0.515625 C 3.3287637 1.8898063 3.3974141 3.0704698 3.3398438 4.3828125 C 3.0409944 7.9972543 1.6577834 11.046251 0.97265625 14 L 12.982422 14 C 12.297538 11.047298 10.91835 7.9994736 10.619141 4.3867188 C 10.561251 3.0731598 10.627979 1.8911333 10.900391 0.515625 C 9.6590955 0.18282094 8.3589162 0.00551362 7.0390625 0 z M 7 0.56054688 A 2.8824873 0.8187421 0 0 1 9.8828125 1.3808594 A 2.8824873 0.8187421 0 0 1 7 2.1992188 A 2.8824873 0.8187421 0 0 1 4.1171875 1.3808594 A 2.8824873 0.8187421 0 0 1 7 0.56054688 z " | ||
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.27995706;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" /> |
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.
no stroke-width, etc
<path | ||
id="path4541" | ||
d="M 8.0685044,0.05217521 C 7.5102106,0.08185002 6.9559019,0.19918572 6.4298325,0.40262664 L 7.2794418,1.2495509 c 1.3855212,-0.36956358 2.9010802,-0.038252 3.9941402,1.0513543 1.09306,1.0896057 1.425423,2.6003758 1.054687,3.9815176 l 0.84961,0.8469243 C 13.903519,5.2647886 13.533641,3.0468811 12.029441,1.5474346 11.089316,0.61028076 9.8680989,0.11516028 8.6270981,0.05217521 c -0.1861501,-0.0094477 -0.3724959,-0.0098916 -0.5585937,0 z M 8.0470204,2.4021467 c -0.4702958,-0.00363 -0.9414804,0.098546 -1.375,0.3017777 L 7.4747548,3.5041217 C 8.1663982,3.3194652 8.9266412,3.4853662 9.4728016,4.0297989 10.01896,4.5742318 10.185386,5.3320738 10.000145,6.0215312 l 0.802734,0.8001974 C 11.346549,5.6693305 11.159591,4.2471506 10.207176,3.2977448 9.6119171,2.7043661 8.8308463,2.4081948 8.0470204,2.4021467 Z M 2.9981918,2.7545451 c -2.05459658,2.0481034 -2.05459658,5.3697857 0,7.4178879 2.0545969,2.048105 5.3848563,2.048105 7.4394532,0 L 7.2110825,6.9560684 8.5685044,5.6048834 7.8380356,4.8767231 6.4825668,6.2279081 Z M 2.3614731,10.933692 0.46303563,14.044922 H 7.7325668 V 12.615859 C 5.8397654,12.922925 3.836333,12.363904 2.3614731,10.933692 Z" | ||
style="stroke-width:1.03711045" /> |
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.
no stroke
symbols/towers/tower_dome.svg
Outdated
<path | ||
id="rect4501" | ||
d="M 7 0 A 3.1955194 3.1955194 0 0 0 3.8046875 3.1953125 A 3.1955194 3.1955194 0 0 0 5.1152344 5.7714844 L 5.1152344 14 L 8.8847656 14 L 8.8847656 5.7714844 A 3.1955194 3.1955194 0 0 0 10.195312 3.1953125 A 3.1955194 3.1955194 0 0 0 7 0 z " | ||
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.61180997;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" /> |
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.
no stroke-width, etc
I'm glad you have asked. I was thinking about it myself and came to the conclusion that I find lack of more "tower" shapes disturbing. This is so broad category of objects, that the only thing that make them similar are their height and (to some lesser degree) proportions. No wonder generic tower shape looks much like the mast - it can be anything, so the neutral option seems to be to show generic idea of "height". This is especially true for cooling towers and that's why their visual weight is higher - they are big and "heavy" in reality, totally unlike masts: https://commons.wikimedia.org/wiki/File:Didcot_power_station_cooling_tower_zootalures.jpg
I believe this is what Inkscape puts in the files automatically. I have never used a stroke in our icons, yet I have found it multiple times. Think about it as a stroke value that would be used in case you'd be using this feature (even if you're not). |
@Tomasz-W Do you think this can be improved (mostly pixel aligning) without losing readability? |
@kocio-pl Yes, it is dynamic, are you going to add man_made=cooling_tower to the rules? |
I deny predicting the future... Let's re-examine this after some time, like 6-12 months. |
Okay, found one of the retaggers: https://www.openstreetmap.org/changeset/59147983 |
See also https://taginfo.openstreetmap.org/tags/tower:type=cooling#map Classic case of two competing taggings and different regional preferences and no clear dominance. Also great example to illustrate why absolute use numbers say very little about acceptance and popularity when the tagged object is relatively rare and there might be a lot of mappers who support a certain tagging but have very little opportunity to actually use it and this way manifest their opinion in actual use numbers. |
Note the neutral approach would be to render neither but this would only be neutral if man_made=tower + tower:type=cooling is not rendered with a generic tower symbol. |
Hooray for getting this merged! |
sent from a phone
On 22. Jun 2018, at 17:44, Christoph Hormann ***@***.***> wrote:
Note the neutral approach would be to render neither
or render both. This could still come under the banner of avoiding tag fragmentation, as otherwise there could be much more than just 2 different tags.
Regarding the support of consistent tagging, cooling towers do not fit at all under the definition of man_made=tower (there is no doubt that they aren’t buildings, are not accessible and do not have platforms, etc.), nor do lighting towers or communication towers (those defined as subtypes tower:type for man_made=tower, while those defined for man_made=communications_tower do, this is super absurd).
As much as I like the icons and would like to see all those things on the map, the system is a mess and the definitions of the generic tower and the tower:type subclasses are in mutual contradiction. Nonetheless it doesn’t cover all “tower” occurrences, e.g. leaves out water towers, power towers and communication_tower s.
|
Cooling tower just like the name says is a tower just of specific use. Same goes for all other towers and if you ask me all other man_made=* structures resembling any type of tower should be changed to |
sent from a phone
On 23. Jun 2018, at 07:36, wmyrda ***@***.***> wrote:
Cooling tower just like the name says is a tower just of specific use.
and a power tower is a tower as well? A bridge is a dental restoration? The name is one thing, common characteristics another.
|
Once again: please stop the tagging discussion, this has no place here. If mappers decide to consistently tag cooling towers And @dieterdreist - no, tag fragmentation does not start only when there are more than two synonyms for the same type of feature. |
Some tag discussion is OK for me here, because we try to interpret the state of things to render them properly. But given your idea of anarchic tagging, I see no place to tell anybody to be wrong (just being different from majority in best case).
Could you explain what do you mean by that? |
sent from a phone
On 23. Jun 2018, at 12:20, kocio-pl ***@***.***> wrote:
tag fragmentation does not start only when there are more than two synonyms for the same type of feature.
Could you explain what do you mean by that?
if different concepts are used to describe things, where there is some overlap of meaning of these tags, it would also be tag fragmentation (especially if there were many different concepts and overlaps, and all would be similar in number of uses).
|
I meant to turn down the attempt from @dieterdreist to relativize long standing principles of this style with a 'but it could be worse' argument. We have had the common practice in the past that if there are several tagging schemes competing with similar support to be the method to tag certain real world features that we avoid taking sides by rendering one of them but not the other, especially if there are different regional preferences like here and such a decision can be seen as regional favoritism. At the same time we have traditionally avoided adding rendering of multiple tags with no discernible difference in meaning to avoid supporting tagging fragmentation. The situation here is somewhat special because both before and after merging this PR we were not neutral because we previously rendered man_made=tower (and therefore also man_made=tower + tower:type=cooling) with a generic tower symbol. So you can rightfully argue if this change makes this worse or not. And generic man_made=tower has been rendered for a really long time. But i consider it important to uphold the principles i explained even if in this case there is no way to fully put the genie back into the bottle so to speak. So i pointed out that we have a case here where we should normally refrain from rendering either of the competing tags. By the way it is well possible that some of the recent re-tagging activity is due to cooling towers typically being quite high and height being used for importance rating of towers now. It seems many of the more recent re-taggings are on cooling towers with a height tag. In other words: Before this PR there could have been an incentive for re-tagging to man_made=cooling_tower to avoid the prominent unsuitable symbol, after this PR the incentive might turn into the opposite direction. It is important to be mindful about how we are messing with the mappers here - deliberately or not. |
sent from a phone
On 23. Jun 2018, at 14:10, Christoph Hormann ***@***.***> wrote:
And generic man_made=tower has been rendered for a really long time.
actually not, in my perception it is rendered only relatively recently
|
Right, sorry, my mistake - i had mixed mast and tower in my recollection. That means #2671 was the change initially messing with things. |
2018-06-23 14:48 GMT+02:00 Christoph Hormann <[email protected]>:
Right, sorry, my mistake - i had mixed mast and tower in my recollection.
That means #2671
<#2671> was the
change initially messing with things.
does this have implications on your reasoning?
|
Not much - it just means that the problem could have been avoided in #2671 and it puts additional support on the observation described in the last paragraph. |
sent from a phone
On 23. Jun 2018, at 15:33, Christoph Hormann ***@***.***> wrote:
Not much - it just means that the problem could have been avoided in #2671 and it puts additional support on the observation described in the last paragraph.
would it be open for consideration to remove the rendering of man_made=tower when it is combined with tower:type=cooling ?
IMHO this could be a temporary fix for the dilemma
|
As i said this would be the neutral approach to the issue. But as also said this would not nullify the previous influence we already exercised (as mentioned with this PR included in two different directions). For me this is all much more about raising awareness and making conscious decisions than about trying to correct decisions afterwards (which does not prevent making the same mistakes again in the future anyway). |
sent from a phone
On 23. Jun 2018, at 16:46, Christoph Hormann ***@***.***> wrote:
For me this is all much more about raising awareness and making conscious decisions than about trying to correct decisions afterwards (which does not prevent making the same mistakes again in the future anyway).
for me man_made=cooling_tower is the better tag, more consistent with the rest of the tags (water_tower, communication_tower, power=tower, not conflicting with the man_made=tower definition), and it is clear, if we do not render it but render tower:type=cooling it will not make it
As we are aware of this issue now, why would we not fix it (fixing in this context means acting in accordance with the self proclaimed goals and criteria/procedures).
We (OSM system of tagging and rendering) have fixed several very elemental object types just relatively late, after more than a decade of mapmaking, e.g. squares, unpaved roads, bridges, and now towers. It is possible to adjust decisions.
|
From my point of view, the story of roots of this small problem goes much deeper. This PR was solution based on issue #2556 (with code implemented first by @wmyrda), which has been formal proposition to solve the problem described on 29.11.2016 in @BushmanK blog entry. And the mess was born with rendering telecommunication icon for variety of towers and masts (I don't even know when). It's a normal thing for me to see the things evolving and finding new problems while trying to fix the old ones. Also OSM is not a static project, and osm-carto should follow.
Do you mean rendering "stick" or not rendering any tower icon at all?
For me it's more than possible - it's needed. |
@kocio-pl I would like to report another mechanical retagging on cooling towers (by user ForstEK): http://www.openstreetmap.org/changeset/60118947 He even refuses to accept a revert and started a "Wikipedia-style" edit war: http://www.openstreetmap.org/changeset/60189430 |
@sinanna As per https://wiki.osmfoundation.org/wiki/Data_Working_Group , I'd suggest dropping an email to the DWG explaining the problem. http://resultmaps.neis-one.org/osm-discussion-comments?uid=1737608 suggests that they have some "previous" here. |
Follow up to #2671 (comment)
Fixes #3275
Changes proposed in this pull request:
tower:construction=dish
tower:construction=dome
tower:type=cooling
tower:type=watchtower
withtower:type=observation
iconman_made=chimney
man_made=communications_tower
Rendering with links to the example places: #3158 (comment).