Streetcomplete: Building colour and material

Created on 24 Mar 2019  ·  22Comments  ·  Source: westnordost/StreetComplete

General

First, thanks a lot for StreetComplete! It is just so much fun completing the quests!

Affected tag(s) to be modified/added: building:colour
Question asked: What is the colour of the building?

Checklist

Checklist for quest suggestions (see guidelines):

  • [ ] 🚧 To be added tag is established and has a useful purpose
  • [x] 🤔 Any answer the user can give must have an equivalent tagging (Quest should not reappear to other users when solved by one)
  • [x] 🐿️ Easily answerable by everyone from the outside but a survey is necessary
  • [x] 💤 Not an overwhelming percentage of elements have the same answer (No spam)
  • [x] 🕓 Applies to a reasonable number of elements (Worth the effort)

Though the colour of the building isn't very useful in ordinary OSM usage, it is very nice information for OSM Buildings. Marking building colours is very tedious otherwise but with StreetComplete it could be very simple. I think it goes a bit to the same category as building levels, as far as I understand.

Most helpful comment

Actually, for building color it is "not going to be included in StreetComplete". If you really want this quest, there is always the option to create a custom version for yourself with that quest type included, it is not difficult.

However, there is a good reason why it is not included in StreetComplete, I'd advise against using the building color tag at all, in any editor, it is simply a bad tag:

  • it has no useful purpose. "So that it can be displayed on a map" is not a useful purpose itself, that's literally tagging for the renderer. Any tag could be justified with that argument
  • the recorded color heavily depends on the light conditions, weather, time and additionally the color reproduction of the particular smartphone you use. Thus, the recorded information is imprecise. For a proper survey for the color you'd need to match the plaster color with a color fan like this
  • Even worse, the recorded information looks like it is precise because a 24bit color value is used instead of a set of standardized color names. So, there could be a road with identical brick apartment houses and all of them are tagged with different colors!
  • Lastly, it is really undefined how buildings should be tagged that do not use a single color on their facade. Especially for StreetComplete, this is a no-go, because according to the quest guidelines, every quest should easily be answerable without doubt

All 22 comments

Is there anybody else who could use that specific kind of data?
I don't think so... That's just a very specific use case and a massive flood of quests IMO...

@ENT8R Yep, I'm not aware of others. And I definitely agree with your view. At least it should be at the bottom of the quest priority list.

Building material could also be queried. But yes, I'm not sure how useful it would be. Would be nice to know where and how color and/or material information is used - if anywhere except OSM Buildings.

Sorry, I find color and material (which is the surface material, btw) too unimportant to be added on StreetComplete.

I understand! :+1: By the way, do you know where building roof type and building levels are used as they have quests? Levels of course is quite useful information in general, but does the roof type have some use cases in some map renderers or elsewhere, do you know? Just trying to understand how these metadata are utilized.

Roof type probably only 3d maps, building levels could f.e. additionally be used to estimate population density.

Just writing one motivation for building colors for the record: Quite often when I go somewhere new place, I might check google street view what it looks like. But having information like building height and color might be really helpful to avoid using google street view. Also, routers could say: "it's the second house on left colored red" if other nearby houses are of different color. Just wanted to write this down now that this came to my mind. The other motivation is obviously 3d maps.

I am not going to argue that roof shape is very useful - but note that it is much easier to collect than colour.

I just want to give a shout out to Color Blind Pal for those with color vision deficiencies (like me). Useful in case any other relevant quest (e.g. hydrant colour tagging) is created.

Just as a detail: F4 map shows material and color:
https://demo.f4map.com/#lat=50.7724214&lon=6.0757375&zoom=19&camera.theta=49.87&camera.phi=70.187

@westnordost

Would love it as well because it would be sooooo much faster than picking it at home on computer with pictures.

I would suggest something like number 4 from here for example https://ourcodeworld.com/articles/read/932/top-10-best-android-color-picker-libraries

https://demo.f4map.com/#lat=47.8288159&lon=13.0398818&zoom=18&camera.theta=63.671&camera.phi=-40.29
and https://osmbuildings.org/?lat=47.82868&lon=13.03960&zoom=18.0&tilt=45&rotation=42 for example. And, building:colour=* could be just opt-in so it does not spam quests for everybody.

roof:colour=* would be nice as well :D Maybe reconsider your decision?

I'm planning to map a large part of "my" city in 3D and this would help enormous, at least for the simple ones.

Nice to hear someone else is interested too. :slightly_smiling_face: I've recently been doing a bit more 3D mapping again, because Osmbuildings and F4map are so amazing. However, building colour is quite important in those services and mapping the building colours is very difficult or cumbersome without StreetComplete-like solution.

Another option would be to keep the amount of options quite limited. For instance, it says here: https://wiki.openstreetmap.org/wiki/Key:colour that this list of named colours are (typically) supported: https://www.w3.org/TR/css-color-3/#svg-color Might make sense to choose from such predefined set with names instead of trying to pick one from the full 24-bit RGB space. A few reasons come to my mind:

  • The tag is more informative when read (e.g., "limegreen" instead of "#32cd32")
  • The colour isn't meant to be superprecise but rather descriptive as in "it's a light yellow building".
  • It's easier to pick the same colour for nearby buildings that have been painted with the same paint. Easier to choose "limegreen" than try to pick exactly the same point in the RGB color space.

Of course, there could be an option to open a full RGB colour selector if needed. Also, I'm not sure what would be a good UI for those predefined colours.. :confused:

And, yes, similarly for roof:colour would be nice!

Well, i just used the x11 https://en.wikipedia.org/wiki/Web_colors#X11_color_names set for my houses. And for the "pick the same for other buildings" could be a "history" field on the bottom like in a lot of other image-editors like GIMP (if i remember correctly).

Hey, I would also be interested in that but I can see Westnordost's reasoning as to why he wouldn't include this in SC.

I wonder though, if you, @westnordost would have time to maintain a second app, an offspring from StreetComplete that would focus on micromappong. I guess not, though, maintaning SC itself must be a lot of work.

It would be nice to see this issue opened again @westnordost or definitely said that you don't want to.

The last answer seemed pretty definitive to me, unless @westnordost has changed their mind.

Sorry, I find color and material (which is the surface material, btw) too unimportant to be added on StreetComplete.

Well, i'm aware of that, but i thought the new attention to this would maybe change the mind. Unfortunately i cannot program yet so i cannot do this myself and make a pull request :(

But i guess pinging him in every post isn't going to help this :D

Note that it is not "I am not going to write code but feel free to open a PR" (like some issues), but "it is not going to be included in StreetComplete".

Actually, for building color it is "not going to be included in StreetComplete". If you really want this quest, there is always the option to create a custom version for yourself with that quest type included, it is not difficult.

However, there is a good reason why it is not included in StreetComplete, I'd advise against using the building color tag at all, in any editor, it is simply a bad tag:

  • it has no useful purpose. "So that it can be displayed on a map" is not a useful purpose itself, that's literally tagging for the renderer. Any tag could be justified with that argument
  • the recorded color heavily depends on the light conditions, weather, time and additionally the color reproduction of the particular smartphone you use. Thus, the recorded information is imprecise. For a proper survey for the color you'd need to match the plaster color with a color fan like this
  • Even worse, the recorded information looks like it is precise because a 24bit color value is used instead of a set of standardized color names. So, there could be a road with identical brick apartment houses and all of them are tagged with different colors!
  • Lastly, it is really undefined how buildings should be tagged that do not use a single color on their facade. Especially for StreetComplete, this is a no-go, because according to the quest guidelines, every quest should easily be answerable without doubt

Thanks for explaining. I completely understand and accept your reasoning.

I just want to explain one thing where you are wrong, @westnordost :

it has no useful purpose. "So that it can be displayed on a map" is not a useful purpose itself, that's literally tagging for the renderer. Any tag could be justified with that argument

That line boggled me since reading and i thought about it a lot. Because it is wrong. It is not tagging for the renderer. Its just tagging a information you don't think is usefull. Thats all (and its okay :D )

Tagging for the renderer would be tagging something intentionally wrong so it looks correct. For example tagging one building with 2 levels instead of 3 because the building next to it with 3 levels is higher. I hope you get what i mean.

EDIT: one addition about the "no single color on the facade", nah, usally just use building:part=yes with the proper keys and values. Or tag whats the most of it and it can get detailed later on. Like it has happened with every building with nearly every tag since beginning of OSM.

I'm not making an argument one way or another, just sharing an interesting & relevant observation.

tagging one building with 2 levels instead of 3 because the building next to it with 3 levels is higher.

It's funny you mention this, because there are some narrow circumstances where I do use something like this as a criteria. For houses with 3 levels:

  • Sometimes it is clear that one of the levels is in the roof.
  • Sometimes it is clear that none of the levels are in the roof.
  • Sometimes it is not clear whether the top level is in the roof.

    • For example, if there are windows whose tops are right below or slightly above the roof line.

      Kind of like the center house:

                                              /^\
                                             /   \
        /^\                /^\              /     \
      //   \\            //   \\           /       \
    //       \\        //  ___  \\        /   ___   \
   /|   ___   |\      /|   |_|   |\      /|   |_|   |\
    |   |_|   |        |         |        |         |
    |         |        |         |        |         |
    |   ___   |        |   ___   |        |   ___   |
    |   |_|   |        |   |_|   |        |   |_|   |
    |         |        |         |        |         |
____|_________|________|_________|________|_________|___

In this case I will often compare to buildings around it and try to be consistent about what I tag as "in roof" and what I tag as "below roof". And one of the heuristics I use to make that decision is the height of the buildings — "if we rendered all these buildings when tagged this way, would it look right?"

edit: extended example to add other houses.

  • If other houses in the neighborhood looked like the house on the left, I would tag the center house as "2 levels below the roof".
  • If they looked like the house on the right, I would tag as "1 level below the roof, 1 level in the roof".
  • In a mixed neighborhood like the picture, it's a hard decision. In this particular picture I would probably tag as "2 levels below the roof" since then rendering can be fixed if/when roof height tags are added.

Are people still interested in this? making a fork of the code should not be too difficult if we have some people who could help with the code?

I was planning on implementing that in my fork, CompleteStreet but never got time to get to that. If you implement that I'll gladly snatch it from your fork or accept your PR if you choose to make one.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

JulienPalard picture JulienPalard  ·  3Comments

lost-geographer picture lost-geographer  ·  3Comments

tordans picture tordans  ·  4Comments

Helium314 picture Helium314  ·  3Comments

cascafico picture cascafico  ·  4Comments