Skip to content

Add climbing presets + fields#1113

Closed
zbycz wants to merge 12 commits intoopenstreetmap:mainfrom
zbycz:climbing
Closed

Add climbing presets + fields#1113
zbycz wants to merge 12 commits intoopenstreetmap:mainfrom
zbycz:climbing

Conversation

@zbycz
Copy link
Copy Markdown
Contributor

@zbycz zbycz commented Feb 9, 2024

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 and climbing/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:

  • Climbing area
    • Climbing crag
      • Climbing route
      • Climbing route (start)
      • Climbing route (top) <-- in climbing terminology "top" is end of route
    • Climbing boulder
      • Climbing route
      • Climbing route (start)
      • Climbing route (top)

Number of items

preset name tags types from wiki # 2/24 # 1/25
Climbing area climbing = area node,area,relation <1k
Climbing crag climbing = crag node,relation 3k 5k
↳ or natural = cliff
sport = climbing
node,way 7k 9k
Climbing boulder climbing = boulder node,relation 1k
↳ or natural = stone
sport = climbing
node,area 1k
Climbing route climbing = route node,way 1k
Climbing route (start) climbing = route_bottom node 4k 14k
Climbing route (top) climbing = route_top node <1k

@endolith
Copy link
Copy Markdown

Everything should have sport=climbing, no?

@zbycz
Copy link
Copy Markdown
Contributor Author

zbycz commented Feb 12, 2024

Thanks @endolith, very good point. I added the sport=climbing via the addTags property. You can test it in the demo iD editor.

@endolith
Copy link
Copy Markdown

image

The grade options are always the same? No YDS in the US?

It complains about some points being on trails or cliffs:

2024-02-12 22_54_04-iD - osm zby cz_ – Range of Motion — Mozilla Firefox
2024-02-12 22_57_34-iD - osm zby cz_ – Cat in the Hat — Mozilla Firefox

But not others:

2024-02-12 22_57_52-iD - osm zby cz_ – Point — Mozilla Firefox

And doesn't show the same interface for them:

2024-02-12 22_52_42-iD - osm zby cz_ – LA Roof — Mozilla Firefox

@zbycz
Copy link
Copy Markdown
Contributor Author

zbycz commented Feb 14, 2024

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).

climbing:grade:uiaa=*
climbing:grade:french=*
climbing:grade:saxon=*
climbing:grade:yds_class=*

ad "It complains about some points being on trails or cliffs") Good point. I added vertex type for the route_bottom preset.

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

@tyrasd tyrasd added new-preset new-field create a new field (see add-field for cases where field from presets is added to new entries) labels Feb 14, 2024
@github-actions
Copy link
Copy Markdown

🍱 You can preview the tagging presets of this pull request here.

Copy link
Copy Markdown
Member

@tyrasd tyrasd left a 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?

Comment thread data/fields/climbing/bolt.json Outdated
Comment thread data/fields/climbing/bolt.json Outdated
Comment thread data/fields/climbing/orientation.json Outdated
Comment thread data/fields/climbing/rock.json Outdated
"name"
],
"moreFields": [
"climbing/length",
Copy link
Copy Markdown
Member

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?

Copy link
Copy Markdown
Contributor Author

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.

Comment thread data/fields/climbing/summit_log.json Outdated
Comment thread data/presets/climbing/route.json Outdated
"vertex"
],
"fields": [
"{climbing/route}"
Copy link
Copy Markdown
Member

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).

Copy link
Copy Markdown
Contributor Author

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?

Comment thread data/presets/climbing/route_bottom.json Outdated
Comment on lines +8 to +11
"{climbing/route}"
],
"moreFields": [
"{climbing/route}"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see above

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see above :)

zbycz and others added 7 commits March 29, 2024 07:56
@zbycz
Copy link
Copy Markdown
Contributor Author

zbycz commented Mar 29, 2024

@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

@zbycz
Copy link
Copy Markdown
Contributor Author

zbycz commented Jun 21, 2024

Hi @tyrasd - just gently bumping this issue. 🙂 🙏

@tordans tordans requested review from tordans and tyrasd June 21, 2024 10:09
@zbycz
Copy link
Copy Markdown
Contributor Author

zbycz commented Jan 7, 2025

Hallo @tyrasd & @tordans 👋

I have an update to this PR after one year. 😅 Meanwhile the climbing project got bigger. We have now a running site openclimbing.org which allows easy browsing and creating of climbing features (and uses id-tagging-schema as well). This means, that now we have 14k nodes of climbing=route_bottom and 5k relations of climbing=crag.

I went through this whole PR and it still makes sense, waiting only for two last responses in the @tyrasd's code review (see the unresolved comments in the review above). If we find the answers I think we could move toward merging it and make climbing even better 💪 🙂

I updated the table in PR description with counts, here are only the presets proposed in this PR:

preset name tags types in PR # in 2/24 # now
Climbing Crag climbing = crag point,line,area,relation 3k 5k
Climbing Route climbing = route point,line 1k
Climbing Route Start climbing = route_bottom point,vertex 4k 14k
Climbing Route Top climbing = route_top point,vertex <1k

@zbycz
Copy link
Copy Markdown
Contributor Author

zbycz commented Jun 7, 2025

Closing this huge PR in favor of smaller one: #1590

@zbycz zbycz closed this Jun 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-field create a new field (see add-field for cases where field from presets is added to new entries) new-preset

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants