-
Notifications
You must be signed in to change notification settings - Fork 822
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
Render more specific access tags i.e. bicycle, motor_vehicle etc #214
Comments
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 |
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:
Why do you then give us lots of reasons why we would want to avoid enabling |
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 #2640), so i will close this ticket. |
Could you be more specific what is wrong currently and should be fixed? I'm not aware of access tag problems. |
See the #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?
Also see #3304, #1312 (duplicate), #1308 (might render motor_vehicle=agricultural/forestry the same as destination or private) |
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:
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 see. If you special case Opinions and arguments of others would be equally appreciated.
But that would mean |
As, I say, I'm not going to die on hill over the two ways of combining the motorcar, motor_vehicle, vehicle tags: Ultimately we are combining three tags to basically YES / NO on showing an access restriction (ignoring destination-type access). So there cannot be a scheme that "interprets" the tags to give an unambiguous result. The presence of an "no (vehicle) access" on a road is going to be ambiguous. So it is useful to think what we would put in any legend for "no (vehicle) access". The render should be intuitive for the user. I was unhappy with PRIORITISE SPECIFIC, since it is hard to articulate what the presence of "no (vehicle) access" marking on the final map means [EITHER motorcar is NO, or if motorcase is not set, motor_vehicle is NO, or if neither are set, vehicle is NO, or if none are set then access is NO] I suggested "MOST RESTRICTIVE" since the legend would read "A no (vehicle) access restriction is present". PRIORITISE SPECIFIC has the advantage of being straightforwardly expressed in nested SQL of course. Yes, we definitely want views / some semblance of agreement, not least because how to render access restrictions is not a Carto-specific issue. [I've removed the Lua transformations from the gist.] |
But would that actually be meaningful for the map user? You could tag
and both would be practically identical for the vast majority of map users and both would be considered valid tagging. But - as i understand your concept - they would be shown differently in the map.
There is if our goal is to show the usability for a specific mode of transport. That is the whole point of the hierarchical access tagging system in OSM with more specific tags overriding the more general ones. For normal road classes the suggested primary mode of transport is the four wheeled passenger automobile. |
OK. I'm convinced!
This is the key aspect. I was coming from the angle of pedestrian-oriented maps and was looking to indicate quieter roads with any vehicle restriction, and was uneasy about prioritising |
I don't know how things work across the world, but aren't most restrictions aimed at motorized traffic on public roads? Most common sign used here is https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/NO_road_sign_306.1.svg/240px-NO_road_sign_306.1.svg.png with a sign below basically saying it applies for through-traffic. Often used on residential roads. A simple motor_vehicle=destination is enough for this and ideally should also show up on the map. |
The main issue is and has been for the last decade, that the conclusion that a perfect solution isn't possible serves as an argument to continue doing the totally broken thing. Instead of either not rendering the restrictions at all, or adopting the not perfect, but still an order of magnitude better alternative. |
That depends on regional/national particularities. In Germany the Globally
but this is not all that meaningful (a) because of the different ways to tag the same access restrictions and the preferential interpretation of
That would be the case for any of the strategies we are discussing here at the moment.
Emphatically no. Back in 2014 @matthijsmelissen wrote in #371 (comment):
And this has been our approach to this issue since then. That back then we should have removed the existing access restriction rendering until a viable strategy could be found (which took about five years) is something i'd probably agree on in retrospect. But that this did not happen is owed to (a) the well known phenomenon that feature removals are much more difficult to get support for than feature additions - a general struggle we have had in community map design since the beginning and (b) the fact that we all knew that drafting and implementing such a strategy would not be rocket science (and it also turned out five years later that it indeed is not) so with all the really hard problems in road rendering (like the unpaved roads) we simply did not consider it to take so long until someone would take on this relatively minor intellectual effort. If you are of the opinion that requesting an overall strategy to be devised is a mistake and improving things through ad hoc changes like the one you suggested in 2014 is the only viable way then i can respect that. But i also have to disagree - largely because we have tried that approach from 2017 to late 2018 here and watched it fail. The more recent timeline of this issue is:
So, yes, overall we are slow - but more recent developments are promising so i see a realistic chance of this issue finally getting solved if people concentrate on constructive comments and finalizing consensus building on the overall strategy and practical implementation aspects. |
LoL #371 |
I explicitly mentioned your pull request from back in 2014 so i am not sure what you are trying to tell us. |
Here is a version 2, taking into account the comments on version 1, and which, I think, is pretty much feature complete. As mentioned previously, it is essentially following @imagico's strategy/insight of a "primary mode" for a given highway type. I've renamed the functions to make this more explicit. In visual terms, there are no changes to the examples above. The addition of Here Side is a pedestrian route tagged with (Again ignore the overall stylistic differences) There are a number of implementation / design choices that need to be aired: The 3-fold division for road access marking between no marking (no restrictions), no/private access and "destination only" seems a sound one, but involves choices about how the final access tags are allocated to the 3 categories. Here I have included The role of Note how the named bike trail currently appears as a footway with tagging Note that in this example: |
The SQL code looks much clearer to me now. There are some remaining specifics in access tag interpretation that would need to be discussed, but that is adjustment details. I would probably try to use this on the fly during rendering and see if this leads to an acceptable performance. Testing this is not something you need a full planet import for, it can be done with a regional extract just as well. Once we have a viable PR this is relatively easy: Test the PR and for comparison test with a dummy I would probably not pass the hstore to the SQL functions but the individual access tags - this way the code would become independent of which tags have columns and which are in hstore and would not need to be adjusted if we change the database layout. You currently have two changes in your draft that go beyond what has been discussed so far as addressing this issue by just modifying the tag interpretation logic. That is:
Although i am - as indicated - not opposed to making further changes here i would suggest to limit the initial PR to not include either of these two changes. This would make it easier to review and to achieve consensus. It is of course prudent to see early on how
|
Yes, it would make sense to break down the review into these chunks, although from the user viewpoint, we probably want to avoid multiple changes/additions of SQL functions. I'm also conscious that we would be adding a new step to the style installation (adding / updating SQL functions), and this might break things like CI testing, not to mention docker builds. Perhaps a PR to new branch?
I feel the longer term direction is moving minor access tags such as
I don't see good useful / options for track given the current rendering. I think that the "primary mode" route gets us to the 80:20 rule and leaves the rest in the hard / messy bucket, given that the "primary mode" for most tracks are agricultural vehicles. I address this issue of foot/bicycle access over track in my own mapping by merging track and service (based on surface / tracktype) and adding right of way markings. This is a very UK-specific solution and wouldn't generalise. Note that I interpreted |
Currently testing a potential PR for the core issue of road access on master OSMCarto. Looking good: I was mistaken in thinking that paths were only "upgraded" to cycleways (comments above edited to correct). Bridleways can also be created in the current style sheet, although it is not so obvious what will happen if |
If specific rendering of foot- and/or cycleway is considered you have to be aware of the different way these are tagged depending on country. Norway only use the These foot- and cyleways can often get a |
Thanks for the input. I don't see any problems here. The initial PR is deliberately narrowly focussed on "correctly using mode-specific access tags" that have previously been ignored. A follow-up, to ensure more consistent use of mode-specific tags, might result in
The overall proposal will have no implications, since only the The tagging is a bit curious to me; I would have expected |
Some further comments on At the moment acces restrictions on
I also looked at combinations:
In summary it seems quite clear that:
|
Bit off topic, but these roads are signposted as foot and cycleway + a text sign below stating it is legal to drive to properties. |
Many thanks for this careful analysis of It does seem that mappers are reluctant to use say They also seem keen on Personally I would argue based on usage that the "primary mode" for tracks was "motor_vehicle" (rather than motorcar); I wouldn't want to drive an ordinary car down anything I tagged as track! I just think track is just very difficult because (at least in the UK), there is no standardised signage, whereas vehicle, motor_vehicle and motorcar all have specific signs for roadways. This makes track a Wild West for tagging. |
The In Norway |
The whole The problem here is: Currently we render:
Possible ways to go from here suggested so far are:
Further ideas for other options are welcome. Regarding Keep in mind that access restrictions are about the legal status, not the technical feasibility of using a road. |
The point is that the default for tracks vary depending on country. Primary use in Norway for |
I should probably explain the concept of primary mode of use a bit better. This is not meant to be the primary mode of de facto use or the primary mode the road is designed for in the real world. What this is meant to reflect is the primary mode of use relevant for the target map user. The vast majority of those are not farmers, agricultural use does not apply to them. For them the relevant question is: Am i allowed to drive here with my car. And for those tracks, where this is not the case (which in many countries is a significant percentage) the interesting question is if you can go there with a bicycle or on foot (which is often the case for tracks where normal car traffic is banned) - hence #4321. Indicating if tracks are open for agricultural/forestry traffic or not is probably something out of scope for this style. That the default access restrictions on roads vary from country to country is known. But taking care of such differences in design is clearly out of scope for this issue. So far we do not make any per-country differentiation in rendering, despite there being systematic differences in tagging semantics, in particular for roads. This could be re-considered (in a separate issue) - thought the more pressing field of per-country styling differentiation would be labeling (#2208). Also note that specifically w.r.t. the implicit default access restrictions on |
Default No for motor vehicles is also specified for Tyrol, a province of Austria. Recent efforts by a small number of people from the local community shows, that indeed, the number of tracks that are generally accessible for motorized traffic is very low. BTW. forestry tracks alone nearly double the road network in Austria. and by law, they must be signed accessible, otherwise they are forbidden. |
I can't see us doing rendering differently for different countries and particularly not for smaller regions. |
More specific access tags such as bicycle=, motor_vehicle= etc should be rendered.
The text was updated successfully, but these errors were encountered: