gravitystorm / openstreetmap-carto

A general-purpose OpenStreetMap mapnik style, in CartoCSS
Other
1.53k stars 819 forks source link

highway=service surface=grass area=yes as landuse=grass #2282

Closed skinkie closed 8 years ago

skinkie commented 8 years ago

Some places in the world are reachable by large surfaces of grass. Typically rendered as landuse=grass. Sadly the landuse isn't considered in journey planners as areas which a pedestrian can walk through, typically only highway keys are considered. A suggestion has been given in the http://wiki.openstreetmap.org/wiki/Key:area that highway area's aren't necessary properly evaluated: hence journey planners will suggest to walk over the edges of the area but not straight through the area.

I would like to request a style change for large surfaces of grass that are used as connecting highways. Either by the concepts:

The current rendering of the latter results in:

image

I think that the surface rendering of the highway tag to the same as the landuse=grass might be worth to consider, with or without dropping the border.

Another rendering issue can be seen in the issue above, the barrier=hedge style gets less priority than its attached area. I would expect that barriers would be later applied later.

mboeringa commented 8 years ago

What's next: a proposal to render the entire Sahara desert as highway=sand?...

Honestly, this is one proposal that definitely belongs on the tagging mailing list, before even considering to start tagging stuff as such (let alone render).

skinkie commented 8 years ago

Very good question. Lets assume that there are regions which do not have highway=track at all, and they are completely separated partitions and one would like to map the proper guideway to this remote location.

The question would therefore be: would highway=track, surface=sand render a white road that doesn't exist in the Sahara. Similar to: should a highway=service, surface=grass be rendered as a white road.

This is fundamentally a cartography question and not a tagging question.

mboeringa commented 8 years ago

This is fundamentally a cartography question and not a tagging question.

No, it's a tagging question because you are suggesting new tagging schemes that, at least AFAIK, haven't yet have any solid basis and support in the community.

I understand the issue you are facing, but I don't think solutions should be discussed here.

skinkie commented 8 years ago

I am not at all suggesting a tagging scheme. The only thing that is different from a highway=pedestrian area=yes is that I would like to see a background colour matching the surface/landuse that has been specified opposed to the default assumption: this is a white road.

mboeringa commented 8 years ago

I am not at all suggesting a tagging scheme.

I don't see highway=grass listed here: http://wiki.openstreetmap.org/wiki/Key:highway

skinkie commented 8 years ago

Are you deliberately trolling to focus on one out of two suggestions which you didn't like? Maybe you should take a peak at value User Defined, if you continue to focus on that. In the mean time I'll be waiting for a cartographer.

kocio-pl commented 8 years ago

It's a big, generic question indeed. Which objects with surface=grass should be green? Highways? Buildings? Bridges? Pitches? All of them or just some?

skinkie commented 8 years ago

Is there any surface tag that does influence the rendering on an object at this moment?

kocio-pl commented 8 years ago

There are two objects which rendering depends on this tag: beach and shoal.

pnorman commented 8 years ago

Fundamentally, a map is not a vectorized version of a satellite image. Motorways don't have to be red on the ground, parking yellow, nor service roads white.

The question would therefore be: would highway=track, surface=sand render a white road that doesn't exist in the Sahara. Similar to: should a highway=service, surface=grass be rendered as a white road

Yes, both of those should be rendered as a white road if they're a service road. If they're a primary road they'd be rendered as orange.

110 is about rendering surface, but if that were solved the roads would still need to be a distinct colour from the surrounding area.

matthijsmelissen commented 8 years ago

To be honest, I don't quite understand this issue? What is exactly the proposed behaviour?

skinkie commented 8 years ago

@math1985 effectively: use surface and/or landuse as modifier for the rendering of an highway when an area should be perceived as landuse. Typically when mapping unpaved area's which have connected objects.

matthijsmelissen commented 8 years ago

I see, thanks. While an interesting suggestion, I don't think I agree. Roads on landuse should be contrasting with the landuse, so they're well visible - not similar in colour. And like @pnorman says, "a map is not a vectorized version of a satellite image".

I'll close this issue therefore. Thanks for the suggestion though!

skinkie commented 8 years ago

But as specified: this is not a road on landuse. That should be the track in brown. It is a routable landuse, therefore highway should be specified, but not rendered in that way that it is suggesting paved similar to #110 main difference: this is an area.

dieterdreist commented 8 years ago

sent from a phone

Il giorno 14 ago 2016, alle ore 10:43, Stefan de Konink notifications@github.com ha scritto:

That should be the track in brown. It is a routable landuse, therefore highway should be specified, but not rendered in that way that it is suggesting paved similar to #110 main difference: this is an area.

IMHO certain landuses and landcovers and surfaces but also certain features (e.g. a parking) might imply or indicate the possibility to access the relative areas e.g. use them to shortcut or for movement in a sparsely populated area. But this doesn't mean we should render them like roads.

Most terrain can be accessed by people, with different movement speed and required skills and or equipment, e.g. you can climb a rock or a cliff - if you can. You can also swim across a river or a lake - if you can swim or have a boat. Or cross a forest, a meadow, a scrub, farmland, a beach, etc. To cross a jungle you just need a machete.

Setting a highway tag on these doesn't seem right to me. Highways are linear features/connections, with areas being the exception, and requiring the area to be built as a highway area though, otherwise we could add highway tags to almost any area because you can somehow cross it (walking, with a tractor or battletank, etc.). This movement IMHO is implied by the kind of feature. I agree with the first comments here, that discussion about this should take place on the tagging ML.

mboeringa commented 8 years ago

It is a routable landuse, therefore highway should be specified

This is only your specific solution to this problem, while people have been dealing with this in other ways in the past without major issues (think the piazza / square problem you refer too). Personally, I don't agree with the suggested solution, as I see multiple issues with it - cartograhy only one them - but that is not the point. This is such a fundamental change that it would need wider discussion to even be considered. You are currently posing it whether it is established convention, which it clearly isn't.

skinkie commented 8 years ago

For now I'll be going for highway=grass, area=yes, gives the intended behavior, its currently invisible to the renderer and visible to routers and gives the best support for routers that are capable of area routing.

image

image

mboeringa commented 8 years ago

For the record: http://www.openstreetmap.org/way/437051162

matthijsmelissen commented 8 years ago

highway=grass, area=yes [...] visible to routers

I doubt that, to be honest.

skinkie commented 8 years ago

@math1985 I don't :) https://github.com/opentripplanner/OpenTripPlanner/blob/master/src/main/java/org/opentripplanner/graph_builder/module/osm/OSMFilter.java#L42

kocio-pl commented 8 years ago

I think relying on this code is a mistake, because this is just one of many existing routing engines.

dieterdreist commented 8 years ago

sent from a phone

Il giorno 14 ago 2016, alle ore 12:06, Stefan de Konink notifications@github.com ha scritto:

For now I'll be going for highway=grass, area=yes

I think it's a defendable decision, if landuse can be grass, why not highway or man_made (1)? Natural=grass is a given (3883) and as a Dutchman, you'll surely agree that shop=grass makes sense too (1). Unsure about leisure=grass, but there are already 98 of them: http://taginfo.osm.org/tags/leisure=grass much more than the 3 amenity=grass or the 0 instances of highway=grass http://taginfo.osm.org/tags/highway=grass

Grass for everyone

dieterdreist commented 8 years ago

sent from a phone

Il giorno 14 ago 2016, alle ore 12:38, mboeringa notifications@github.com ha scritto:

For the record...

... I think routability can be inferred from other tags like landuse=meadow, farmland, grass (unfortunately is quite popular) landcover=grass, etc.

mboeringa commented 8 years ago

I think routability can be inferred from other tags like landuse=meadow, farmland, grass

...but of course it would be better if there was a dedicated tag (routable=yes?)

skinkie commented 8 years ago

@dieterdreist the problem with routability is inferring topology, this is troublesome for overlapping regions opposed to regions sharing information. As per wiki highway=* and junction=* only should be used for navigation http://wiki.openstreetmap.org/wiki/OSM_tags_for_routing @mboeringa such tag would require all journey planners to update.

@kocio-pl if there are journey planners that do not follow the wiki, then that's their QA issue. But considering that none of the journey planners is capable of getting to the locations I am searching for, this is already solving it for most of them.

matthijsmelissen commented 8 years ago

As the discussion has again turned towards tagging, I'd once more recommend that you continue the discussion on the tagging mailing list.

dieterdreist commented 8 years ago

sent from a phone

Il giorno 14 ago 2016, alle ore 15:31, mboeringa notifications@github.com ha scritto:

...but of course it would be better if there was a dedicated tag (routable=yes?)

why? if you read above you can see that this is not a yes/no question, every terrain can be crossed, how difficult it is depends also on the weather, season etc.

mboeringa commented 8 years ago

@dieterdreist , of course @skinkie must confirm, but I am pretty sure this issue was not about a difficulty grade / penalty for routing based on surface type, but simply the desire to set certain very specific polygon geometries to "routable", as being includable in a routing graph. This one just happens to be a grass field of a camping site.

It would not make sense to make the entire globe's polygons routable... theoretically, that could mean the routing software sends people through your home... I don't know how big your front door is ;-)

skinkie commented 8 years ago

Follow up here: https://lists.openstreetmap.org/pipermail/tagging/2016-August/029850.html

@mboeringa @dieterdreist I was indeed not suching for adding grade / pentalty, but for routability under the current set of recommendations for router implementations based on OSM data. The routing over landuse would only make sense if there are no objects on top. And this is exactly what is not known by topology abstraction from a graph. It would only be known if a tree is formed from layered objects. Really not wanting to go there.

pnorman commented 8 years ago

As the discussion has again turned towards tagging, I'd once more recommend that you continue the discussion on the tagging mailing list.

I'm locking this issue because it continues to be about routing issues not within the scope of OpenStreetMap Carto.