Skip to content
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

Unify and clarify icons for some vertical man-made structures #2556

Closed
BushmanK opened this issue Jan 20, 2017 · 49 comments
Closed

Unify and clarify icons for some vertical man-made structures #2556

BushmanK opened this issue Jan 20, 2017 · 49 comments

Comments

@BushmanK
Copy link

BushmanK commented Jan 20, 2017

In my diary entry here http://www.openstreetmap.org/user/BushmanK/diary/39981 I've described the current situation with tagging masts and towers in OSM. I already have engineering definitions for masts and towers added to man_made=mast and man_made=tower OSM Wiki pages to clarify it. Earlier, I promised to draw a set of icons for the OSM Standard style. Since there are several contradictions in current tagging scheme, I'd like to hear some feedback from developers, how you see this situation.

So, here are six of these icons, rendered from original SVG into PNG at 200% scale:

Cantilevered (standing on its own foundation, not supported by anything else) tower man_made=tower tower:construction=freestanding
tower_cantilever
Cantilevered tower used for communication man_made=tower tower:construction=freestanding tower:type=communication
tower_cantilever_communication

Lattice tower man_made=tower tower:construction=lattice
tower_lattice
Lattice tower used for communication man_made=tower tower:construction=lattice tower:type=communication
tower_lattice_communication

Mast (guyed vertical structure) man_made=mast
mast
Mast used for communication man_made=mast tower:type=communication
mast_communications

Some of these icons could also be used for other combinations of tags, because, for example, all tower:construction=guyed* (there are three documented values) fall into a category of masts. Therefore, can be rendered as this:
mast
The same icon could be used for man_made=mast without any additional tags. It applies to man_made=tower with no other known details and this icon:
tower_cantilever

I am not touching (yet) other purposes of vertical structures (tower:type= values), but I can definitely draw more of them if there is any demand for it.

If someone thinks that cantilevered tower icon is too similar to one for monuments, I can probably change it a bit, for example - make its top square and/or reduce the width of its foundation.

@pnorman
Copy link
Collaborator

pnorman commented Jan 20, 2017

I already have engineering definitions for masts and towers to man_made=mast and man_made=tower OSM Wiki pages to clarify it.

Is this what actual usage is?

@BushmanK
Copy link
Author

@pnorman If you take a look at articles for tower and mast, they give no clear way to tell "it's a mast" or "it's a tower", except the structural engineering definition I've added. So, all objects, tagged before I did that, were tagged by own perception of every mapper. Therefore, in the vast majority of cases, nobody can tell, if any object, tagged with man_made=mast or man_made=tower is a mast or tower.

There is a detailed description of this in the diary entry I've mentioned above.

@pnorman
Copy link
Collaborator

pnorman commented Jan 20, 2017

, all objects, tagged before I did that, were tagged by own perception of every mapper. Therefore, in the vast majority of cases, nobody can tell, if any object, tagged with man_made=mast or man_made=tower is a mast or tower.

If there's not agreement in the tagging in-use we shouldn't do these changes until the usage has changed.


The icons seem to have some pixel alignment problems, even at 2x.

image

For some reason I'm having trouble copying and pasting the PNGs directly to see what they're like at 100% size

@BushmanK
Copy link
Author

@BushmanK
Copy link
Author

Nobody seems to really care about having the agreement - unclear explanations were there for years. Clear ones are not my own imagination.

And no, it doesn't have any problems with pixel alignment. If I were you, I wouldn't judge by an enlarged example before seeing an actual icon file. Here is a screenshot from Inkscape:
grid

@imagico
Copy link
Collaborator

imagico commented Jan 20, 2017

Rendering of towers/masts is definitely something that could use improvement. See in particular also #1225.

The proposed symbol for towers might be prone to confusion with the symbol for historic=monument.

tower:construction depends on the database reload.

@BushmanK
Copy link
Author

By the way, I see no ground under a requirement of a formal agreement regarding of tags with "in use" status. It is not something that community agreed on via proposal procedure, so we have to stick to it until another formal voting or something. Someone just started using a tag many years ago, then someone has it described in OSM Wiki, using an own vision of it. I've added engineering definitions more than a year ago and nobody said anything against that. Therefore, there are only two logical ways: to render both masts and towers equally by default because nobody can actually tell the difference; or to go a bit ahead of this mess and to start using consistent rendering, so people will eventually get used to it, start checking what OSM Wiki says about that and so on. There is an example of similar situation in comments to my diary entry:

Here, I'm saying that proper rendering of malformed data might promote fixing it with proper tagging. And I have an example of a similar situation. In Russian, "kiosk" refers to a small shop in general, not to specific product range of a small shop (as it is in many European languages). Right after shop=kiosk got its own newspaper icon in OSM Standard style, Russian mappers started fixing hundreds of improperly mapped amenities by setting proper values such as ice cream, tobacco and so on. I don't see any reason why it can't work the same way with masts and towers.

@BushmanK
Copy link
Author

@imagico, yes, there is a similarity with a monument. But it is based on the current icon for communication structures: https://github.com/gravitystorm/openstreetmap-carto/blob/master/symbols/communications.svg - I only made the foundation thicker.
With "radio waves" removed, it looks similar to a monument too. Do you have any ideas how to make it more distinctive? Narrower foundation or, maybe, a square top?

@boothym
Copy link
Contributor

boothym commented Jan 20, 2017

Is this what actual usage is?

Actual usage for the man_made=mast seems to be a combination of actual masts, large towers, small mobile phone "masts", and those tagged as masts so they get rendered on the map. Then you have man_made=tower which is used 171,000 times, but not rendered.
There's also the poorly defined ("huge tower" - how big?) and inconsistently tagged communications_tower which adds another 3,600.

I must agree with @BushmanK - the current situation of rendering just one of these doesn't benefit anyone.

@kocio-pl
Copy link
Collaborator

There's also man_made=communications_tower (#339 (comment)) - what do you think it should look like?

@BushmanK
Copy link
Author

BushmanK commented Jan 21, 2017

man_made=communication_tower doesn't seem to have any clear distinctive documented features to give it a different icon. I don't see, why it can't be rendered as this:
tower_cantilever_communication
It is still a tower standing on its foundation and it is used for communication.

@BushmanK
Copy link
Author

There is only one real-world feature, that can be sometimes seen in structures that most likely supposed to be tagged with man_made=communications_tower. It is a space inside it, designed for people to work there more or less permanently in opposite to just visiting it for inspection, for example. But since many towers were modernized recently to accommodate digital TV and cellular equipment as well as a wireless relay network equipment, it is hard to tell, if any particular tower still has a room for personnel inside (and it is still safe to work there because of a higher microwave radiation).
So, this tag, without a better description, is completely redundant and mixed with man_made=tower tower:type=communication

Features, currently offered as distinctive ones for man_made=communications_tower, don't seem to work. For example, many "smaller" towers built of drum-shaped elements have a stair inside it, so nobody has to climb from the outside. At the same time, even really large (higher than 150m) regional broadcasting towers (with room for people inside it) in warm climate areas have outside stairs. For example, Yerevan TV tower in Armeina - https://en.wikipedia.org/wiki/Yerevan_TV_Tower

@BushmanK
Copy link
Author

Here are several variants of cantilevered tower icon, enlarged:
tower_cantilever_1 tower_cantilever_2 tower_cantilever_3 tower_cantilever_4 tower_cantilever_5
The latter two are a kind of similar to a chimney symbol - it's just for the reference.
The first one on the left uses the same design as the current icon for communication towers (https://github.com/gravitystorm/openstreetmap-carto/blob/master/symbols/communications.svg), but with "radio waves" removed and a bit taller.

@dieterdreist
Copy link

dieterdreist commented Jan 22, 2017 via email

@BushmanK
Copy link
Author

@dieterdreist, removing foundation completely does not seem to be an option because it refers to the main distinctive feature of a free-standing (cantilevered) tower. And it doesn't seem like anyone has argued about that when the current icon have been introduced, so I'm not sure why this question came up now.

I agree, that many towers have a platform, cabin, or some equipment installed closer to its top. However, masts have it too (at least, sometimes). Question is, how to make a tower icon with such feature without making it look like a canine male genitalia. I will try.

@BushmanK
Copy link
Author

The main problem with adding/removing features is that people have a tendency to take it literally. I mean, if there would be a platform, someone will definitely get an idea that structure must have it to be called "a tower".

@BushmanK
Copy link
Author

tower_cantileve_5r tower_cantileve_6r
Something like that.

@wmyrda
Copy link

wmyrda commented Jan 25, 2017

@BushmanK I really like your work and the icons. If You could point me out to where to take from the svg icons used I would try to add them my variation of carto http://bigvo.hopto.org/osm/ to test how they look like in real world scenarios.

@wmyrda
Copy link

wmyrda commented Jan 25, 2017

Proposition of the icon for http://taginfo.openstreetmap.org/tags/tower:type=bell_tower would also be welcomed.

@BushmanK
Copy link
Author

@wmyrda , here is what I have (hosted at Megaupload). It includes all icons from the first message. Since I haven't got any further feedback on experimental drawings, I didn't prepare corresponding SVG files.

I will think about a bell tower.

@wmyrda
Copy link

wmyrda commented Jan 25, 2017

the original once are good enough for me. Thanks. Keep in mind it may take some time (few days?) as I would have to figure out proper way to ask postgres database for those items as this is hard part for me at the moment.

@wmyrda
Copy link

wmyrda commented Jan 26, 2017

adding for reference https://forum.openstreetmap.org/viewtopic.php?id=57136

@imagico
Copy link
Collaborator

imagico commented Feb 4, 2017

I have read over this again and looked at the subject in general and it seems to me the most important thing would be to render:

  • man_made=tower + tower:type=communication
  • man_made=mast + tower:type=communication

with suitable icons and cease rendering

  • man_made=mast + tower:type<>communication

with a communication related icon - although i see no reason not to keep rendering it with a mast icon.

For the above we would need suitable generic mast and tower icons that can be combined with a radio waves visualization to indicate tower:type=communication. The design for man_made=mast would also need to be clearly identifiable as such without the radio waves.

In addition i would suggest to try making the design for masts less heavy that that for towers since typically masts are of less massive construction (for basic mechanical reasons) and having it the other way round could be misleading.

Beyond that the question is of course if and how to render

  • man_made=tower + tower:type<>communication

I would like to see this also in light of the fact that many types of towers are actually buildings. building=tower is a fairly common tag. Rendering the building geometry and an icon for the building as a tower might be confusing - especially at high zooms w.r.t. the building is a tower vs. there is a tower on the building.

Apart from that i see nothing wrong with specific designs for specific tower type as long as the type is well defined, consistently used and the icon design is intuitively readable.

@BushmanK
Copy link
Author

BushmanK commented Feb 4, 2017

@imagico, here is a generic mast icon (2x size) that has a twice thinner main stem, as you've suggested. Does it look better for you?
mast_thin

Regarding of other tower types, I can also easily adapt the cooling tower icon I made before for the Mapsurfer rendering style: http://openstreetmap.ru/#map=18/55.82296/37.77672&layer=S

@imagico
Copy link
Collaborator

imagico commented Feb 4, 2017

Yes, that goes in the right direction. Making the guy lines notably thinner than the main structure might further improve it - that would make them semitransparent in normal rendering resolution which would require testing in actual rendering of course. The really important thing with such a simple shape will be to make sure it is not mistaken for a mapped geometry.

With cooling towers the main difficulty will be to avoid confusion with chimneys.

@BushmanK
Copy link
Author

BushmanK commented Feb 4, 2017

Thinner guy lines will be less than 1px, but I could try that for sure.
In this case, I could even try two-level guying as an option to make an icon that resembles this:
220px-guywire

A cooling tower icon could have its height equal (or almost equal) to its base width, so it makes them different enough from chimneys to my eye.

@BushmanK
Copy link
Author

BushmanK commented Feb 4, 2017

Default man_made=mast with 1/2px wide single guy lines, double size preview
mast_thin_thin_g
Default man_made=mast with 1/2px wide single guy lines, actual size 14x14 preview (rendered by Inkscape)
mast_thin_thin_g_actual

Default man_made=mast with 1/2px wide two-level guy lines, double size preview
mast_thin_thin_2g
Default man_made=mast with 1/2px wide two-level guy lines, actual size 14x14 preview (rendered by Inkscape)
mast_thin_thin_2g_actual

@imagico
Copy link
Collaborator

imagico commented Feb 4, 2017

Looks good - fine tuning should be done with evaluation in actual rendering.

I have a bit of fear that the single pixel line width will not be sufficiently visible with a busy background so it might also be necessary to go to a 1.5 pixel line width - but that also needs evaluation under practical conditions.

@BushmanK
Copy link
Author

BushmanK commented Feb 4, 2017

Good. Whatever variant will be considered suitable, I can always provide a corresponding SVG.

@imagico
Copy link
Collaborator

imagico commented Feb 4, 2017

Why don't you put up a pull request with one of those for testing. For the start this is as simple as replacing the SVG. Most work will be testing at different places. If that works out adding additional rules for the different variants will not be that difficult.

If you don't feel like it you will need to wait until someone else can implement and test it.

@BushmanK
Copy link
Author

BushmanK commented Feb 4, 2017

I'm not sure, what exactly should I do to implement that. I can create a pull-request with just several icons added to it, but I have no idea about testing conventions here and so on. In addition, MapCSS is not a language I'm really familiar with (I can read some styles here, but still not sure about adding completely new rules). Another question is what to do with multiple icons for the same type of object - is there a naming convention for that kind of case?

@imagico
Copy link
Collaborator

imagico commented Feb 4, 2017

First of all if you don't have a testing environment set up you would need to start with that, see:

https://github.com/gravitystorm/openstreetmap-carto/blob/master/INSTALL.md

The main thing about testing is that you need to verify your change works and does what you intend it to do by looking at the results in kosmtik. If you then make a sample screenshot of your test render and add it to your PR that is all you need at first.

Don't worry about the language - as said for just testing the icons you don't need to code anything, just replace the svg file. Beyond that you just have to study the existing code and extend and adjust it to what is needed.

There is no codified rule for file names but using the matching tags is usually a good idea - like mast_communication.svg or similar.

If you run into problems with any of these things just ask.

@BushmanK
Copy link
Author

BushmanK commented Feb 4, 2017

Unfortunately, deploying an own testing environment is a bit out of my current abilities for many reasons. I can draw any icons, put it into a pull request to any repository, that's probably all I can offer.

@imagico
Copy link
Collaborator

imagico commented Feb 4, 2017

No problem.

@wmyrda
Copy link

wmyrda commented Feb 5, 2017

Thinking about it are masts even used for anything other than communication? Looking at the examples at wiki http://wiki.openstreetmap.org/wiki/Tag:man_made%3Dmast it has tower:type=communication in every proposed case. That makes me think even just using "man_made=mast" in the actual implementation should be drawn even if tower:type=communication tag is missing.

That being said I like the version with "1/2px wide single guy lines" more for OSM as it is just more appealing. IMHO version with "1/2px wide two-level guy lines" is just not recognizable with that 14x14 pixel size.

As for towers it is important to differentiate with tower:type as besides "communication" there are others like "observation" and "bell_tower" which have about 10K uses each see http://taginfo.openstreetmap.org/keys/?key=tower%3Atype#values and those uses are very different from each other.

@Skippern
Copy link

Skippern commented Feb 5, 2017

There are masts that have other functions than communication, though these are not so common. One example I can think of is hyperbol radio positioning systems, such as NELS/LORAN C, DECCA, Consol, etc. NELS is still active in Europe/Russia, and as far as I know DECCA is still active in India. Just a count from the top of my head, that would amount to somewhat less than 100 masts world wide.

@BushmanK
Copy link
Author

BushmanK commented Feb 5, 2017

Indeed, the vast majority of masts are used for communication. But since not all of them, there should be a default icon that doesn't imply any function at all. We also need that for situations, when function is basically unknown, while mast itself could easily be mapped (from super-high-resolution imagery or street view photos).

In addition, I could easily name some more non-communication masts:

  • masts carrying meteorological equipment
  • surveillance masts with cameras (these are not observation towers)
  • lightning rods, built in a form of mast
  • NDB masts (these are navigation devices, not communication equipment and there are a lot of them).

@HolgerJeromin
Copy link
Contributor

Yes, It would be nice to see incomplete tagging and not default to communication.

@wmyrda
Copy link

wmyrda commented Feb 8, 2017

I am not sure of proper tagging for radio masts and likely proper tagging would be to tag them as masts, but for some other examples like metrology or surveillance we have different tagging that quite likely would be used first instead of mast see here:
http://wiki.openstreetmap.org/wiki/Tag:man_made%3Dmonitoring_station
http://wiki.openstreetmap.org/wiki/Tag:man_made%3Dsurveillance

That being said I acknowledge masts may have different use than communication I code which finally works for me reflects that and few other ideas http://bigvo.hopto.org/osm-extra/carto-patches/013-towers_v5.patch

What the code still needs is more icons (observation and bell towers comes to mind, probably different default for tower) and maybe some changes to the height and zoom level, but the main ideas should be fine.

  • first is displayed default icon for mast or tower
  • icon is displayed sooner if the height of the object is greater
  • more abundant and important tag of type of the object is used first to differentiate among towers
  • if tower:construction is used differentiate towers even further
  • masts appear later than towers as they are tinner and harder to see

@BushmanK
If You could prepare more icons I'll add them to my test environment http://bigvo.hopto.org/osm/

@wmyrda
Copy link

wmyrda commented Jul 4, 2017

Now that we have hstore in the database I prepared new version of the patch http://bigvo.hopto.org/osm-extra/carto-patches/4.0/013-towers.patch for towers to get them included in the carto.
It woulso fix #2024 as height is also used.

@kocio-pl
Copy link
Collaborator

kocio-pl commented Jul 4, 2017

This patch is a bit out of sync - symbols were not in the right directory, so I moved them, but I also got some rejected code in project.mml:

--- project.mml 2017-06-30 23:27:35.468210408 +0200
+++ project.mml 2017-06-30 23:50:00.560814739 +0200
@@ -2098,7 +2104,7 @@
                                                   'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland',
                                                   'greenhouse_horticulture', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill',
                                                   'construction', 'military', 'plant_nursery', 'religious') THEN landuse ELSE NULL END,
-              'man_made_' || CASE WHEN man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'pier', 'breakwater', 'groyne', 'obelisk') THEN man_made ELSE NULL END,
+              'man_made_' || CASE WHEN man_made IN ('lighthouse', 'windmill', 'mast', 'tower', 'water_tower', 'pier', 'breakwater', 'groyne', 'obelisk') THEN man_made ELSE NULL END,
               'natural_' || CASE WHEN "natural" IN ('wood', 'water', 'mud', 'wetland', 'marsh', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath',
                                                     'grassland', 'scrub', 'beach', 'shoal', 'reef', 'glacier') THEN "natural" ELSE NULL END,
               'place_' || CASE WHEN place IN ('island', 'islet') THEN place ELSE NULL END,
@@ -2225,7 +2231,7 @@
                                                       'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland',
                                                       'greenhouse_horticulture', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill',
                                                       'construction', 'military', 'plant_nursery', 'religious') THEN landuse ELSE NULL END,
-                  'man_made_' || CASE WHEN man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'obelisk') THEN man_made ELSE NULL END,
+                  'man_made_' || CASE WHEN man_made IN ('lighthouse', 'windmill', 'mast', 'tower', 'water_tower', 'obelisk') THEN man_made ELSE NULL END,
                   'natural_' || CASE WHEN "natural" IN ('wood', 'peak', 'volcano', 'saddle', 'cave_entrance', 'water', 'mud', 'wetland', 'marsh', 'bay', 'spring',
                                                         'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'glacier', 'tree')
                                                         THEN "natural" ELSE NULL END,
@@ -2265,7 +2271,7 @@
                   OR landuse IN ('reservoir', 'basin', 'recreation_ground', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', 'residential',
                                  'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland', 'greenhouse_horticulture',
                                  'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction', 'military', 'plant_nursery', 'religious')
-                  OR man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'cross', 'obelisk')
+                  OR man_made IN ('lighthouse', 'windmill', 'mast', 'tower', 'water_tower', 'cross', 'obelisk')
                   OR "natural" IS NOT NULL
                   OR place IN ('island', 'islet')
                   OR military IN ('danger_area')

I've made a branch here and at least it renders, but didn't try to work on this rejection, so please look at it.

BTW - the best thing would be if you make a fork of this style, create a branch yourself and make a Pull Request, so we could just examine it.

@wmyrda
Copy link

wmyrda commented Jul 4, 2017

Reason it didn't apply cleanly is likely because it is part of larger patchset I used http://bigvo.hopto.org/osm-extra/carto-patches/4.0/ I'll prepare the code for this patch directly on the present carto

As of branching the code and creating my own pull request it is something I would have to learn/re-learn as it is ages from when I did that therefore I'll rather prepare a patch

@wmyrda
Copy link

wmyrda commented Jul 4, 2017

This one should apply cleanly on carto git
http://bigvo.hopto.org/osm-extra/carto-patches/4.0/013-towers_direct.patch

@geozeisig
Copy link

A tower is a significant element in the landscape. Therefore, I would like to point out again that we should also have an icon for it. It is not easy to choose one because there are many different types of towers. For this reason it must be a very general and simple symbol as suggested above. We already have icons for insignificant things like hunting stand or mast, so we should be and worth the effort to pick an icon for a tower as well.

@kocio-pl
Copy link
Collaborator

The PR is #2671 and I plan to deploy it eventually, but I have no exact time frame for this. If you want to help and speed up the process, you can check the icons and test the rendering for example.

@dieterdreist
Copy link

dieterdreist commented Feb 13, 2018 via email

@kocio-pl
Copy link
Collaborator

There are multiple icons for different types in this PR and it really uses hstore (like tower:type for example).

@geozeisig
Copy link

We have 190,686 towers to date and 58% of them have tower: type. So it makes sense to render this tag with an icon and not wait years for special types. The detailed elaboration is also important and can be operated in parallel.
An icon like this would certainly be appropriate:
a8fb9828-dfcd-11e6-92a8-47539052faa5

@kocio-pl
Copy link
Collaborator

See the test renderings of the mentioned PR code: #2671 (comment).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants