More specific access tags such as bicycle=, motor_vehicle= etc should be rendered.
I think that it is overrendering and I would implement it in separate layers (like Cyclemap).
In addition, we also should access restrictions for the car and vehicle keys.
I've done some more thinking about this specific can of worms and would suggest that we apply some nomalisation on import to the access tags, likely via LUA transforms. .
This naturally opens another, different can of worms, and, will, to be effective require a reimport, but that is going to be unavoidable anyway.
The alternatives: adding specific columns or using hstore seem to be overkill given that without going in to a multi-color-pattern frenzy there is no way to render the detailed individual access values anyway.
I believe doing normalisation on import is likely to be the the lightest weight way of doing this and doesn't require changes to the actual style.
Roughly this would imply mapping
access, vehicle, motor_vehicle and motorcar to access
some thought needs to be given to both key and value precedence.
Am 21.03.2015 um 13:47 schrieb simonpoole [email protected]:
The alternatives: adding specific columns or using hstore seem to be overkill
I propose using hstore, it might be overkill for this particular problem, but there are lots of other opportunities that such a move would bring us, including support for the alternative public transport scheme, tower types, cuisine types, landuse refinements and basically all more details for objects we already render or can currently not reasonably render because of missing information.
Am 21.03.2015 um 18:06 schrieb dieterdreist:
Am 21.03.2015 um 13:47 schrieb simonpoole [email protected]:
The alternatives: adding specific columns or using hstore seem to be
overkillI propose using hstore,
Why do you then give us lots of reasons why we wouldn't want to avoid enabling
hstore in any circumstances?
After attempting to show this kind of data in a different map style I reached conclusion that it is not doable in a readable way, without making it primary data presented on the map.
I also don't believe we have a space for showing such features - even such simple feature as general surface rendering is still not done (see https://github.com/gravitystorm/openstreetmap-carto/pull/2640), so i will close this ticket.
@kocio-pl I think we would all be happy if correct access tags would simply be treated the same as wrong ones, see https://github.com/gravitystorm/openstreetmap-carto/pull/371 So either don'r render them at all or all the same.
Could you be more specific what is wrong currently and should be fixed? I'm not aware of access tag problems.
See the https://github.com/gravitystorm/openstreetmap-carto/pull/371 an oldie but goldie. To be clear that issue is not about giving every possible access combination its own rendering, which is likely hopeless, just about being consistent.
Reopening.
If I understand @simonpoole correctly, the request is to render motorcar=no, and motor_vehicle=no the same as access=no, and motorcar=destination, motor_vehicle=destination the same as access=destinaton, and so on. Is that right?
"it would seem to be sensible to render at least the most of the time correct motorcar=destination and motor_vehicle=destination the same" - from PR #371
Also see #3304, #1312 (duplicate), #1308 (might render motor_vehicle=agricultural/forestry the same as destination or private)
Is that right?
Yes, and there are two ways to do that, either by using the same rendering, or not rendering at all.
One possible guiding principle could be to render access restrictions w.r.t. the primary mode of transport of the road class in question.
That would mean render motorway to unclassified plus residential and service based on
access, vehicle, motor_vehicle, motorcar
with priorities according to the usual scheme with the more specific tags overriding the more general ones. Implementation could look like:
CASE
(CASE
WHEN (tags->'motorcar' IN ('yes', 'designated', 'permissive', 'no', 'private', 'destination', 'customers', 'delivery')) THEN tags->'motorcar'
WHEN (tags->'motor_vehicle' IN ('yes', 'designated', 'permissive', 'no', 'private', 'destination', 'customers', 'delivery')) THEN tags->'motor_vehicle'
WHEN (tags->'vehicle' IN ('yes', 'designated', 'permissive', 'no', 'private', 'destination', 'customers', 'delivery')) THEN tags->'vehicle'
ELSE tags->'access'
END)
WHEN 'destination' THEN 'destination'::text
WHEN 'customers' THEN 'destination'::text
WHEN 'delivery' THEN 'destination'::text
WHEN 'no' THEN 'no'::text
WHEN 'private' THEN 'no'::text
ELSE NULL
END AS access
In this case that could be considered to be sufficiently simple and strait-forward to be intuitively understandable for the mapper.
The more difficult part is the other road types, in particular highway=track. Here the primary mode of transport is less clear and #3304 is a serious issue.
Not rendering access restrictions at all could be problematic because completely closed roads (like for example because of serious damage) would not be indicated as such on the map.
@simonpoole - do you have the time to submit a PR which fixes this issue? I know you are busy with some other Openstreetmap projects, but the code should not be complicated.
I would discuss first how it would work conceptually, I am not sure how to do this in way that will be either more readable or would encourage better tagging than now.
The plan would be to only add the motorcar and motor_vehicle tags to the current access= rendering style for highway=motorway through highway=unclassified and =residential
render motorcar=no, and motor_vehicle=no the same as access=no, and motorcar=destination, motor_vehicle=destination the same as access=destinaton, and so on.
@matkoniecz would you want to see a PR testing that idea?
This needs fixing IMO. Been an issue for years where people tag access=destination + foot=yes + bicycle=yes to make it render properly. This could potentially leave out other modes of traffic. And it adds unnecessary tagging that could be just a simple motor_vehicle=destination.
In Norway these are signed with the "no motor vehicles" sign: https://en.wikipedia.org/wiki/Prohibitory_traffic_sign#No_motor_vehicles with a subsign stating that it applies to through traffic.
The subsign may say "gjelder gjennomkj酶ring" and/or "gjelder ikke buss i rute" as some examples.
The latter exempts bus in service and quite often they exempt other PSV as well.