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
Add climbing presets + fields #1113
base: main
Are you sure you want to change the base?
Conversation
Everything should have sport=climbing, no? |
Thanks @endolith, very good point. I added the |
Thanks for the feedback, @endolith 🙂 ad grades) unfortunately tagging allows for different marks to be assigned for different grade systems. So we have to add a field for each of them in iD. I added the YDS, but in future it would perhaps make sense to create a custom iD field type (like type=multi), which would have better UX (user is not supposed to fill in all of them).
ad "It complains about some points being on trails or cliffs") Good point. I added ad "But not others") I didn't create a preset for route_top for start, but it is easy now. I added the preset. Please check it again in the iD demo, eg Cat in the Hat |
🍱 You can preview the tagging presets of this pull request here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi. Thanks for this comprehensive pull request. It looks already quite good. Please find some inline comments, questions and suggestions for some details below.
And as a general remark, the label
property of fields and the name
of the presets should follow the so called title case spelling. For example: it should be Climbing Route
instead of Climbing route
. Would you mind adjusting this?
data/fields/climbing/bolt.json
Outdated
"expansion": "expansion bolt", | ||
"glue-in": "glue-in bolt", | ||
"ring": "ring bolt" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My mistake. Wiki specifies this tag for climbing=bolt
, i customized it to fit climbing=route
as well.
Removed from this PR, as I don't want to add climbing=bolt
yet, maybe in a followup PR.
data/fields/climbing/bolt.json
Outdated
@@ -0,0 +1,17 @@ | |||
{ | |||
"key": "climbing:bolt", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see that this field is included in the presets for climbing=crag
and climbing=route
. Unfortunately, the wiki is a bit unclear how this tag should be used exactly, but when looking at the data it seems that it was meant to be used as either a standalone feature (a node with climbing=bolt
+ this tag – example), or as an attribute on route top nodes (example). If that's the case, it would be better to change this accordingly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again the same mistake.
Removed from this PR, as I don't want to add climbing=bolt
yet, maybe in a followup PR.
data/fields/climbing/rock.json
Outdated
"options": [ | ||
"limestone", | ||
"sandstone", | ||
"granite", | ||
"basalt" | ||
], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the list here seems to be just the incomplete list from the examples in the wiki... many more values are in use, e.g. quartzite
, gneiss
, porphyry
, etc.
Maybe it would be better to leave the options open here for now and let the field use the suggestion for popular values from taginfo instead?
These could remain as a placeholder, though:
"options": [ | |
"limestone", | |
"sandstone", | |
"granite", | |
"basalt" | |
], | |
"placeholder": "limestone, sandstone, …", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, my aim here was to make all the options translatable. I think this is important, because us non-native speakers usually know the rock types only in our language.
I removed options
and added proper strings.options
according to taginfo. Is it ok? Can we somehow suggest that people can add other options as well?
"name" | ||
], | ||
"moreFields": [ | ||
"climbing/length", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it really make sense to specify the length of a climbing crag? Is it the sum of the routes on it? What practical use would such a number have?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The length
in climbing terminology means how long is the route from bottom to top (longer climbs are usually more fun), and this also implies needed rope length.
Often the crag has almost all routes with the same lenght, but usually there are few shorter routes, or perhaps one longer. So this value on the crag works as a default for all the routes, but each route can overwrite it.
Of course, if each route is different length, the it probably wouldn't make sense to tag it on crag
as well.
data/presets/climbing/route.json
Outdated
"climbing/grade/uiaa", | ||
"climbing/grade/french", | ||
"climbing/grade/saxon", | ||
"climbing/grade/yds_class" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe put these into moreFields
for now to avoid the confusion with multiple grading fields been shown at the same time (at least until iD has better support for such cases where one property is usually sufficient).
maybe instead, the fields for climbing:bolted
and/or climbing:rock
could be included "up here", as they seem to be relatively popular (around 10% of objects use them at the moment).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, done.
"vertex" | ||
], | ||
"fields": [ | ||
"{climbing/route}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it does not make sense to just copy-paste the fields from the climbing route preset here. There are quite a few of them which do not make sense (e.g. what is the length of the bottom of a climbing route?), and/or which would just duplicate the property of the respective climbing route object (e.g. the rock type of the route, etc.).
Please specify a list of tag which make sense to be used for these features. 🙇 For example, ele
seems to be a reasonably popular one (example).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the issue here is that climbing=route_bottom
is very often used as a synonym for "here is the route", and in that case it technically suits as climbing=route
.
Eg. there are 4822 nodes with this tag, and 4575 have name (overpass) which may imply this case.
The wiki even specifies this scenario:
Climbing routes can be mapped with a single node marking the bottom of the route, tagged as climbing=route_bottom, or two nodes tagged with climbing=route_bottom and climbing=route_top connected by a way tagged as climbing=route.
Do you think we can leave the "route" fields on the "route_bottoms" then?
"sport": "climbing", | ||
"climbing": "route_bottom" | ||
}, | ||
"name": "Climbing route (start)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would omit the parentheses here (and similarly also on the route_top
preset):
"name": "Climbing route (start)" | |
"name": "Climbing Route Start" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
"{climbing/route}" | ||
], | ||
"moreFields": [ | ||
"{climbing/route}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see above
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see above :)
Co-authored-by: Martin Raifer <martin@raifer.tech>
Co-authored-by: Martin Raifer <martin@raifer.tech>
Co-authored-by: Martin Raifer <martin@raifer.tech>
@tyrasd Thank you very much for such a good review. Also I am glad I learned how to correctly propose fields, eg. that I should search taginfo first 🙂 Changes deployed to my id instance, eg:
While editing moreFields I also got an idea how to make them more usable: openstreetmap/iD#10181 |
Hi,
I'd love to map more climbing routes according the climbing schema on wiki.
See the discussion in:
This PR
This PR adds the viable minumum to tag climbing crags and climbing routes. I will add more features as needed in future (eg. bouldering, area, alternative tagging for crag and boulder etc).
I add only presets
climbing/crag
andclimbing/route
+climbing/route_bottom
for start.I built this PR with
dist
command and deployed an iD editor with those presets, so it can be tested thorougly.eg.
.
.
Climbing terminology
The taxonomy goes like this - it can be grouped by relations, or just by nearstanding nodes:
Number of items
sport = climbing
sport = climbing