hotosm / HDM-CartoCSS

CartoCSS project focused on the Humanitarian Data Model
Other
138 stars 41 forks source link

highway=construction #234

Closed matkoniecz closed 10 years ago

matkoniecz commented 10 years ago

see http://www.openstreetmap.org/?mlat=50.0686&mlon=19.9850#map=15/50.0686/19.9850&layers=H

one of roads: http://www.openstreetmap.org/way/236994871

skorasaurus commented 10 years ago

Thank you for the report. I agree that it's too noticeable especially at a low zoom level. I've noticed this a while as well but could not determine the precise cause.

See #197 for more information. (close this issue).

yohanboniface commented 10 years ago

highway coverage is selective, I mean that not all values are targeted by carto rules.

This value should be handled. But I wonder if this is the right scheme. Shouldn't it be something like, say, highway=residential and then construction=highway? With highway=construction we totally lose the info of which kind of road is being constructed.

I think that semantically it's not correct. And also at rendering level this means that we have no other choice than to render both highway or service roads the same, which is far from ideal.

Anyway, it can't stay as it is, it's clearly a rendering bug.

matkoniecz commented 10 years ago

I would expect rather highway=construction, construction=residential.

highway=residential and then construction=highway would cause problems with data consumers that are not checking for construction key. Good tagging scheme should be fail-safe - not recognising it should not cause blatant misrepresentation of other, especially widely used tagging scheme.

For example it would be a bad idea to tag prisons as amenity=hotel, involuntary=yes, access=customers. I think that it is a similar case.

yohanboniface commented 10 years ago

I would expect rather highway=construction, construction=residential.

Good point!

yohanboniface commented 10 years ago

Started working on this. A few elements:

This is work in progress, I need to go on more edge cases before I can pull on the server.

Before/after:

screen shot 2014-09-29 at 00 25 59 screen shot 2014-09-29 at 00 34 48

matkoniecz commented 10 years ago

highway=xxxx and construction=yes will also be taken into account (a bit magically)

Is it a good idea? It encourages less popular and worse tagging scheme (because everybody needs to be aware about it to avoid reating roads in conctruction as a ready).

yohanboniface commented 10 years ago

Let's take this as a real life version of the mantra "We should be liberal in what we receive & strict on what we send" :)

yohanboniface commented 10 years ago

For the record, 3000 cases on Taginfo: http://taginfo.openstreetmap.org/tags/construction=yes#combinations

matkoniecz commented 10 years ago

vs 75k for http://taginfo.openstreetmap.org/tags/highway=construction

We should be liberal in what we receive & strict on what we send

I think that in case of OSM data it is better to encourage proper tagging chemes - at least in cases where competition is between better, more popular and worse, less popular one.

yohanboniface commented 10 years ago

Yes, absolutely, I totally agree on this. And there is not doubt around the good scheme to use. But in the mean time it's good to be a bit open, because I don't think someone will clean all the 3000 cases in one day when our rendering doesn't support the construction=yes scheme anymore.

So we have three options:

I think option 3 is clearly worst, because we are displaying a wrong information, so I would definitely avoid it. Option 2 is a bit radical, but I'm fine going this way if arguments and consensus make this the strong choice. As said, I've a small preference for option 1, but without any strong argument more than "be liberal when the database is various".

@skorasaurus, @severinmenard, @jaakkoh, thoughts?

jaakkoh commented 10 years ago

Hmm. I actually agree that supporting highway=* + construction=yes in rendering sends a bit of a wrong signal. The only related exception to this is highway=* + construction=minor, which I'm not sure is actually supported by any rendering -- and doesn't seem have gained much use (940 way occurrances : http://taginfo.openstreetmap.org/tags/construction=minor#overview ; it could be a handy tag in noting that this road is under construction but still in use -- expect delays / don't expect to necessarily be able to drive through with your Maserati). .. A real-life example from the Old Highway to Leon (from Managua), about 25 km of which is currently being re-built. This will take over half a year (if things go well) and if OSM was even relatively mature in Nicaragua this stretch of road should definitely be tagged with construction=minor and routing engines should avoid the road -- and it would be good if it was also visible in map renderings .. at least road specialized ones: http://www.mapillary.com/map/im/2d30YZoShGI4lxx1GZXgFg

So to the question: The right thing to do would be the 2nd option -- and perhaps the cleanup should be facilitated? That would be a good job for MapRoulette .. or/and perhaps could be added to Osmose? .. Of course this is just my wise-assing because my ability to do anything else but fix those occurrences in JOSM is, well, non-existent.

matkoniecz commented 10 years ago

That would be a good job for MapRoulette .. or/and perhaps could be added to Osmose?

I am even considering an automated change of [highway=foo, construction=yes] to [highway=construction, construction=foo].

yohanboniface commented 10 years ago

OK, I'm filtering construction=yes explicitly now :)

jaakkoh commented 10 years ago

Good idea @mkoniecz . Double checking the wiki page http://wiki.openstreetmap.org/wiki/Key:construction it's clear that the use of construction=yes is not documented -- and as you commented before it's actually quite problematic. .. If someone's meant construction=yes to actually mean construction=minor then IMO it's just too bad. So yea, do you want to go ahead with that fix of the =yes tag? (I was first thinking if it should be consulted over some list but given the wiki page + the problems I think it's a pretty pure tagging mistake and could be just fixed without further consultations .. I've done a bunch of these in limited areas that I know but realize that I'm contemplating on consulting as this is a global fix.)

matkoniecz commented 10 years ago

@jaakkoh For now I am editing it manually, starting from my region to check whatever there are some things that I failed to predict ( finder: http://overpass-turbo.eu/?key=construction&value=yes&template=key-value ).

matkoniecz commented 10 years ago

@jaakkoh

it's clear that the use of construction=yes is not documented

Unfortunately there is "Another option is to set the tag construction=yes." on this wiki page.

jaakkoh commented 10 years ago

@mkoniecz Right. Yea, I wouldn't be surprised if even I would have used the construction=yes in some cases simply because of earlier days' ignorance or later days' momentary lapse of reason. And surely better to verify cases, which might well render better outcomes in some/many(?) cases (if e.g. a new road has been finished already and it's visible in new imagery). But with the time I was pondering about this I just couldn't think what would be a case where the documented proper tagging would be bad vs. the undocumented construction=yes. .. By now and digging into this you may well already have ideas on this. Thanks anyways for grabbing this.

skorasaurus commented 10 years ago

I hope that I am not going into unimportant details but I am learning that there is a distinction between roads that are under construction but still passable as @jaakkoh mentioned, and roads that are closed (not passable from vehicles) because of construction.

I don't know whether any rendering or tool that exists that support the 'roads that are under construction but still passable'. If we want this map to be the first one, we can go for it. If that's the case, one idea that I have would be highway=tertiary and construction=minor to denote that there's construction on a tertiary road but it's still passable. It's also mentioned on the wiki page as well.

I agree that construction=yes a bit unclear of what it means and we don't know of documentation anywhere stating its purpose. I'm for option 2, not rendering it at all.

Lastly, I see that our preset is continuing incorrect tagging and needs to be fixed. Right the HOT preset allows you tag a road as highway=construction with no other tags!

https://github.com/hotosm/presets/issues/27