mapcomplete/assets/themes/climbing/climbing.json

1529 lines
No EOL
55 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"id": "climbing",
"title": {
"nl": "Open klimkaart",
"de": "Offene Kletterkarte",
"en": "Open Climbing Map",
"ru": "Открытая карта скалолазания",
"ja": "登山地図を開く",
"zh_Hant": "開放攀爬地圖",
"nb_NO": "Åpent klatrekart",
"it": "Mappa aperta per le arrampicate",
"fr": "Open Climbing Map"
},
"description": {
"nl": "Op deze kaart vind je verschillende klimgelegenheden, zoals klimzalen, bolderzalen en klimmen in de natuur",
"de": "Auf dieser Karte finden Sie verschiedene Klettermöglichkeiten wie Kletterhallen, Boulderhallen und Felsen in der Natur.",
"en": "On this map you will find various climbing opportunities such as climbing gyms, bouldering halls and rocks in nature.",
"ru": "На этой карте вы найдете различные возможности для скалолазания, такие как скалодромы, залы для боулдеринга и скалы на природе.",
"ja": "この地図には、自然の中のクライミングジム、ボルダリングホール、岩など、さまざまなクライミングの機会があります。",
"zh_Hant": "在這份地圖上你會發現能夠攀爬機會,像是攀岩體育館、抱石大廳以及大自然當中的巨石。",
"fr": "Cette carte indique les sites descalades comme les salles descalade ou les sites naturels."
},
"descriptionTail": {
"nl": "De klimkaart is oorspronkelijk gemaakt door <a href='https://utopicode.de/en/?ref=kletterspots' target='_blank'>Christian Neumann</a> op <a href='https://kletterspots.de' target='_blank'>kletterspots.de</a>.",
"en": "The climbing map was originally made by <a href='https://utopicode.de/en/?ref=kletterspots' target='_blank'>Christian Neumann</a>. Please <a href='https://utopicode.de/en/contact/?project=kletterspots&ref=kletterspots' target='blank'>get in touch</a> if you have feedback or questions.</p><p>The project uses data of the <a href='https://www.openstreetmap.org/' target='_blank'>OpenStreetMap</a> project.</p>",
"de": "<p><strong>kletterspots.de</strong> wird betrieben von <a href='https://utopicode.de/?ref=kletterspots' target='_blank'>Christian Neumann</a>. Bitte <a href='https://utopicode.de/kontakt/?project=kletterspots&ref=kletterspots' target='blank'>melden Sie sich</a>, wenn Sie Feedback oder Fragen haben.</p><p>Das Projekt nutzt Daten des <a href='https://www.openstreetmap.org/' target='_blank'>OpenStreetMap</a> Projekts und basiert auf der freien Software <a href='https://github.com/pietervdvn/MapComplete' target='_blank'>MapComplete</a>.</p>",
"ru": "Создатель карты скалолазания — <a href='https://utopicode.de/en/?ref=kletterspots' target='_blank'>Christian Neumann</a>. Пожалуйста, <a href='https://utopicode.de/en/contact/?project=kletterspots&ref=kletterspots' target='blank'>пишите</a> если у вас есть отзыв или вопросы.</p><p>Проект использует данные <a href='https://www.openstreetmap.org/' target='_blank'>OpenStreetMap</a>.</p>",
"ja": "登山地図はもともと <a href='https://utopicode.de/en/?ref=kletterspots' target='_blank'>Christian Neumann</a> によって作成されたものです。フィードバックや質問がありましたら、<a href='https://utopicode.de/en/contact/?project=kletterspots&ref=kletterspots' target='blank'>ご連絡</a>ください。</p><p>このプロジェクトでは、<a href='https://www.openstreetmap.org/' target='_blank'>OpenStreetMap</a>プロジェクトのデータを使用します。</p>",
"zh_Hant": "攀爬地圖最初由 <a href='https://utopicode.de/en/?ref=kletterspots' target='_blank'>Christian Neumann</a> 製作。如果你有回饋意見或問題請到Please <a href='https://utopicode.de/en/contact/?project=kletterspots&ref=kletterspots' target='blank'>這邊反應</a>。</p><p>這專案使用來自<a href='https://www.openstreetmap.org/' target='_blank'>開放街圖</a>專案的資料。</p>",
"fr": "La carte a été créée par <a href='https://utopicode.de/en/?ref=kletterspots' target='_blank'>Christian Neumann</a>. Merci de le <a href='https://utopicode.de/en/contact/?project=kletterspots&ref=kletterspots' target='blank'>contacter</a> pour des avis ou des questions.</p><p>Ce projet utilise les données <a href='https://www.openstreetmap.org/' target='_blank'>OpenStreetMap</a>.</p>"
},
"language": [
"nl",
"de",
"en",
"ru",
"ja",
"zh_Hant",
"nb_NO",
"it",
"ca",
"fr",
"id"
],
"maintainer": "Christian Neumann <christian@utopicode.de>",
"icon": "./assets/themes/climbing/climbing_icon.svg",
"version": "0",
"startLat": 0,
"startLon": 0,
"startZoom": 1,
"widenFactor": 1.5,
"socialImage": "",
"layers": [
{
"id": "climbing_club",
"name": {
"de": "Kletterverein",
"nl": "Klimclub",
"en": "Climbing club",
"ru": "Клуб скалолазания",
"ja": "クライミングクラブ",
"zh_Hant": "攀岩社團",
"nb_NO": "Klatreklubb",
"fr": "Club descalade"
},
"minzoom": 10,
"source": {
"osmTags": {
"or": [
"club=climbing",
{
"and": [
"sport=climbing",
{
"or": [
"office~*",
"club~*"
]
}
]
}
]
}
},
"title": {
"render": {
"en": "Climbing club",
"nl": "Klimclub",
"de": "Kletterverein",
"ru": "Клуб скалолазания",
"ja": "クライミングクラブ",
"zh_Hant": "攀岩社團",
"nb_NO": "Klatreklubb",
"fr": "Club descalade"
},
"mappings": [
{
"if": "office~*",
"then": {
"nl": "Klimorganisatie",
"en": "Climbing NGO",
"de": "Kletter-Organisation",
"ja": "クライミングNGO",
"zh_Hant": "攀岩 NGO",
"fr": "Association descalade"
}
}
]
},
"description": {
"de": "Ein Kletterverein oder eine Organisation",
"nl": "Een klimclub of organisatie",
"en": "A climbing club or organisations",
"ja": "クライミングクラブや団体",
"zh_Hant": "攀岩社團或組織",
"nb_NO": "En klatreklubb eller organisasjoner",
"fr": "Club ou association descalade"
},
"tagRenderings": [
{
"render": {
"en": "<strong>{name}</strong>",
"nl": "<strong>{name}</strong>",
"de": "<strong>{name}</strong>",
"ca": "<strong>{name}</strong>",
"fr": "<strong>{name}</strong>",
"id": "<strong>{name}</strong>",
"ru": "<strong>{name}</strong>",
"ja": "<strong>{name}</strong>",
"zh_Hant": "<strong>{name}</strong>"
},
"question": {
"en": "What is the name of this climbing club or NGO?",
"de": "Wie lautet der Name dieses Vereins oder Organisation?",
"nl": "Wat is de naam van deze klimclub?",
"ja": "この登山クラブやNGOの名前は何ですか?",
"fr": "Quel est le nom du club ou de lassociation ?"
},
"freeform": {
"key": "name"
},
"id": "climbing_club-name"
},
{
"id": "minimap",
"render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }"
},
"website",
"email",
"phone",
"opening_hours"
],
"icon": {
"render": "./assets/themes/climbing/club.svg"
},
"iconOverlays": [
{
"if": "opening_hours~*",
"then": "isOpen",
"badge": true
}
],
"width": {
"render": "8"
},
"iconSize": {
"render": "40,40,center"
},
"color": {
"render": "#00f"
},
"presets": [
{
"tags": [
"club=sport",
"sport=climbing"
],
"title": {
"de": "Kletterverein",
"en": "Climbing club",
"nl": "Klimclub",
"ja": "クライミングクラブ",
"nb_NO": "Klatreklubb",
"ru": "Клуб скалолазания",
"fr": "Club descalade"
},
"description": {
"de": "Ein Kletterverein",
"nl": "Een klimclub",
"en": "A climbing club",
"ja": "クライミングクラブ",
"nb_NO": "En klatreklubb",
"ru": "Клуб скалолазания",
"fr": "Un club descalade"
}
},
{
"tags": [
"office=ngo",
"sport=climbing"
],
"title": {
"de": "Eine Kletter-Organisation",
"en": "Climbing NGO",
"nl": "Een klimorganisatie",
"ja": "クライミングNGO",
"fr": "Association descalade"
},
"description": {
"de": "Eine Organisation, welche sich mit dem Klettern beschäftigt",
"nl": "Een VZW die werkt rond klimmen",
"en": "A NGO working around climbing",
"ja": "登山に関わるNGO",
"fr": "Une association descalade"
}
}
],
"wayHandling": 1
},
{
"id": "climbing_gym",
"name": {
"de": "Kletterhallen",
"en": "Climbing gyms",
"nl": "Klimzalen",
"ja": "クライミングジム",
"fr": "Salle descalade"
},
"minzoom": 10,
"source": {
"osmTags": {
"and": [
"sport=climbing",
"leisure=sports_centre"
]
}
},
"title": {
"render": {
"nl": "Klimzaal",
"de": "Kletterhalle",
"en": "Climbing gym",
"ja": "クライミングジム",
"fr": "Salle descalade"
},
"mappings": [
{
"if": "name~*",
"then": {
"nl": "Klimzaal <strong>{name}</strong>",
"de": "Kletterhalle <strong>{name}</strong>",
"en": "Climbing gym <strong>{name}</strong>",
"ja": "クライミングジム<strong>{name}</strong>",
"fr": "Salle descalade <strong>{name}</strong>"
}
}
]
},
"description": {
"de": "Eine Kletterhalle",
"en": "A climbing gym",
"ja": "クライミングジム",
"nl": "Een klimzaal",
"fr": "Une salle descalade"
},
"tagRenderings": [
"images",
"questions",
{
"id": "minimap",
"render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }"
},
{
"render": {
"en": "<strong>{name}</strong>",
"nl": "<strong>{name}</strong>",
"de": "<strong>{name}</strong>",
"ca": "<strong>{name}</strong>",
"fr": "<strong>{name}</strong>",
"id": "<strong>{name}</strong>",
"ru": "<strong>{name}</strong>",
"ja": "<strong>{name}</strong>"
},
"question": {
"en": "What is the name of this climbing gym?",
"nl": "Wat is de naam van dit Klimzaal?",
"de": "Wie heißt diese Kletterhalle?",
"ja": "このクライミングジムは何という名前ですか?",
"fr": "Quel est le nom de la salle descalade ?"
},
"freeform": {
"key": "name"
},
"id": "name"
},
"website",
"phone",
"email",
"opening_hours",
"reviews"
],
"icon": {
"render": "./assets/themes/climbing/climbing_gym.svg"
},
"iconOverlays": [
{
"if": "opening_hours~*",
"then": "isOpen",
"badge": true
}
],
"width": "0",
"iconSize": {
"render": "40,40,center"
},
"wayHandling": 1
},
{
"id": "climbing_route",
"name": {
"en": "Climbing routes",
"de": "Kletterrouten",
"nl": "Klimroute",
"ja": "登坂ルート",
"nb_NO": "Klatreruter",
"fr": "Voies descalade"
},
"minzoom": 18,
"source": {
"osmTags": {
"and": [
"climbing=route"
]
}
},
"title": {
"render": {
"de": "Kleterroute",
"en": "Climbing route",
"nl": "Klimroute",
"ja": "登坂ルート",
"nb_NO": "Klatrerute",
"it": "Via di arrampicata",
"fr": "Voie descalade"
},
"mappings": [
{
"if": "name~*",
"then": {
"de": "Kleterroute <strong>{name}</strong>",
"en": "Climbing route <strong>{name}</strong>",
"nl": "Klimroute <strong>{name}</strong>",
"ja": "登坂ルート<strong>{name}</strong>",
"it": "Via di arrampicata <strong>{name}</strong>",
"fr": "Voie descalade <strong>{name}</strong>"
}
}
]
},
"tagRenderings": [
"images",
"questions",
{
"id": "minimap",
"render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }"
},
{
"render": {
"en": "<strong>{name}</strong>",
"nl": "<strong>{name}</strong>",
"de": "<strong>{name}</strong>",
"ca": "<strong>{name}</strong>",
"fr": "<strong>{name}</strong>",
"id": "<strong>{name}</strong>",
"ru": "<strong>{name}</strong>",
"ja": "<strong>{name}</strong>",
"it": "<strong>{name}</strong>"
},
"question": {
"en": "What is the name of this climbing route?",
"de": "Wie heißt diese Kletterroute?",
"nl": "Hoe heet deze klimroute?",
"ja": "この登坂ルートの名前は何ですか?",
"it": "Come si chiama questa via di arrampicata?",
"fr": "Quel est le nom de cette voie descalade ?"
},
"freeform": {
"key": "name"
},
"mappings": [
{
"if": {
"and": [
"noname=yes",
"name="
]
},
"then": {
"en": "This climbing route doesn't have a name",
"de": "Diese Kletterroute hat keinen Namen",
"nl": "Deze klimroute heeft geen naam",
"ja": "この登坂ルートには名前がありません",
"it": "Questa via di arrampicata non ha un nome",
"fr": "Cette voie na pas de nom"
}
}
],
"id": "Name"
},
{
"question": {
"en": "How long is this climbing route (in meters)?",
"nl": "Hoe lang is deze klimroute (in meters)?",
"it": "Quanto è lunga questa via di arrampicata (in metri)?",
"fr": "Quelle est la longueur de cette voie (en mètres) ?",
"de": "Wie lang ist diese Kletterroute (in Metern)?"
},
"render": {
"de": "Diese Route ist {canonical(climbing:length)} lang",
"en": "This route is {canonical(climbing:length)} long",
"nl": "Deze klimroute is {canonical(climbing:length)} lang",
"ja": "このルート長は、 {canonical(climbing:length)} メーターです",
"nb_NO": "Denne ruten er {canonical(climbing:length)} lang",
"it": "Questo percorso è lungo {canonical(climbing:length)}",
"fr": "Cette voie fait {canonical(climbing:length)} de long"
},
"freeform": {
"key": "climbing:length",
"type": "pnat"
},
"id": "Length"
},
{
"question": {
"en": "What is the difficulty of this climbing route according to the french/belgian system?",
"nl": "Hoe moeilijk is deze klimroute volgens het Franse/Belgische systeem?",
"it": "Qual è la difficoltà di questa via di arrampicata nel sistema francese/belga?",
"fr": "Quelle est la difficulté de cette voie selon le système franco-belge ?",
"de": "Wie hoch ist der Schwierigkeitsgrad dieser Kletterroute nach dem französisch/belgischen System?"
},
"render": {
"de": "Die Schwierigkeit ist {climbing:grade:french} entsprechend des französisch/belgischen Systems",
"en": "The difficulty is {climbing:grade:french} according to the french/belgian system",
"nl": "De klimmoeilijkheid is {climbing:grade:french} volgens het Franse/Belgische systeem",
"ja": "フランス/ベルギーのランク評価システムによると、{climbing:grade:french}の困難度です",
"it": "Il grado di difficoltà è {climbing:grade:french} nel sistema francese/belga",
"fr": "Selon le système franco-belge, la difficulté de cette voie est de {climbing:grade:french}"
},
"freeform": {
"key": "climbing:grade:french"
},
"id": "Difficulty"
},
{
"question": {
"en": "How much bolts does this route have before reaching the moulinette?",
"fr": "Combien de prises cette voie possède avant datteindre la moulinette ?"
},
"render": {
"en": "This route has {climbing:bolts} bolts",
"fr": "Cette voie a {climbing:bolts} prises"
},
"freeform": {
"key": "climbing:bolts",
"type": "pnat",
"addExtraTag": [
"climbing:bolted=yes"
]
},
"mappings": [
{
"if": "climbing:bolted=no",
"then": {
"en": "This route is not bolted",
"fr": "Cette voie na pas de prises"
},
"hideInAnswer": true
},
{
"if": "climbing:bolted=no&climbing:bolts=",
"then": {
"en": "This route is not bolted",
"fr": "Cette voie na pas de prises"
}
}
],
"id": "Bolts"
},
{
"question": "Is there other relevant info?",
"render": "<h3>Description</h3><br/>{description}",
"freeform": {
"key": "description"
},
"id": "Description"
},
{
"render": {
"en": "The rock type is {_embedding_features_with_rock:rock} as stated <a href='#{_embedding_features_with_rock:id}'>on the surrounding crag</a>",
"fr": "Le type de roche est {_embedding_features_with_rock:rock} selon <a href='#{_embedding_features_with_rock:id}'>le mur</a>"
},
"freeform": {
"key": "_embedding_features_with_rock:rock"
},
"id": "Rock type"
},
"reviews"
],
"icon": {
"render": "circle:white;./assets/themes/climbing/climbing_route.svg"
},
"width": {
"render": "4"
},
"iconSize": {
"render": "28,28,center"
},
"color": {
"render": "#0f0"
},
"presets": [
{
"title": {
"en": "Climbing route",
"nl": "Klimroute",
"fr": "Voie descalade",
"de": "Kletterroute"
},
"tags": [
"sport=climbing",
"climbing=route"
]
}
],
"wayHandling": 2
},
{
"id": "climbing",
"name": {
"nl": "Klimgelegenheden",
"de": "Klettermöglichkeiten",
"en": "Climbing opportunities",
"ja": "登坂教室",
"fr": "Opportunité descalade"
},
"minzoom": 10,
"source": {
"osmTags": {
"and": [
"sport=climbing",
"climbing!~route",
"leisure!~sports_centre",
"climbing!=route_top",
"climbing!=route_bottom"
]
}
},
"title": {
"render": {
"en": "Climbing opportunity",
"nl": "Klimgelegenheid",
"de": "Klettermöglichkeit",
"ja": "登坂教室",
"nb_NO": "Klatremulighet",
"fr": "Opportunité descalade"
},
"mappings": [
{
"if": "climbing=crag",
"then": {
"en": "Climbing crag <b>{name}</b>",
"fr": "Mur descalade <b>{name}</b>"
}
},
{
"if": {
"and": [
{
"or": [
"climbing=area",
"climbing=site"
]
},
"name~*"
]
},
"then": {
"en": "Climbing area <b>{name}</b>",
"nl": "Klimsite <b>{name}</b>",
"fr": "Zone descalade <b>{name}</b>",
"de": "Klettergebiet <b>{name}</b>"
}
},
{
"if": {
"or": [
"climbing=site",
"climbing=area"
]
},
"then": {
"en": "Climbing site",
"nl": "Klimsite",
"fr": "Site descalade",
"de": "Klettergebiet"
}
},
{
"if": "name~*",
"then": {
"nl": "Klimgelegenheid <b>{name}</b>",
"en": "Climbing opportunity <b>{name}</b>",
"fr": "Opportunité descalade <b>{name}</b>",
"de": "Klettermöglichkeit <b>{name}</b>"
}
}
]
},
"description": {
"nl": "Een klimgelegenheid",
"de": "Eine Klettergelegenheit",
"en": "A climbing opportunity",
"ja": "登坂教室",
"nb_NO": "En klatremulighet",
"fr": "Opportunité descalade"
},
"tagRenderings": [
"images",
"questions",
{
"id": "minimap",
"render": "{minimap(18, id, _contained_climbing_route_ids): height: 9rem; overflow: hidden; border-radius:3rem; }"
},
{
"render": {
"en": "<h3>Length overview</h3>{histogram(_length_hist)}",
"fr": "<h3>Résumé de longueur</h3>{histogram(_length_hist)}",
"de": "<h3>Längenübersicht</h3>{histogramm(_length_hist)}"
},
"condition": "_length_hist!~\\[\\]",
"id": "Contained routes length hist"
},
{
"render": {
"en": "<h3>Difficulties overview</h3>{histogram(_difficulty_hist)}",
"fr": "<h3>Résumé des difficultés</h3>{histogram(_difficulty_hist)}",
"de": "<h3>Schwierigkeitsübersicht</h3>{histogram(_difficulty_hist)}"
},
"condition": "_difficulty_hist!~\\[\\]",
"id": "Contained routes hist"
},
{
"render": {
"en": "<h3>Contains {_contained_climbing_routes_count} routes</h3> <ul>{_contained_climbing_routes}</ul>",
"fr": "<h3>Contient {_contained_climbing_routes_count} voies</h3> <ul>{_contained_climbing_routes}</ul>"
},
"condition": "_contained_climbing_routes~*",
"id": "Containe {_contained_climbing_routes_count} routes"
},
{
"render": {
"en": "<strong>{name}</strong>",
"nl": "<strong>{name}</strong>",
"de": "<strong>{name}</strong>",
"ca": "<strong>{name}</strong>",
"fr": "<strong>{name}</strong>",
"id": "<strong>{name}</strong>",
"ru": "<strong>{name}</strong>",
"ja": "<strong>{name}</strong>"
},
"question": {
"en": "What is the name of this climbing opportunity?",
"nl": "Wat is de naam van dit Klimgelegenheid?",
"de": "Wie heißt diese Klettergelegenheit?",
"ja": "この登坂教室の名前は何ですか?",
"fr": "Quel est le nom de ce site ?"
},
"freeform": {
"key": "name"
},
"mappings": [
{
"if": {
"and": [
"noname=yes",
"name="
]
},
"then": {
"en": "This climbing opportunity doesn't have a name",
"nl": "Dit Klimgelegenheid heeft geen naam",
"de": "Diese Klettergelegenheit hat keinen Namen",
"ja": "この登坂教室には名前がついていない",
"fr": "Ce site na pas de nom"
}
}
],
"id": "name"
},
{
"question": "What kind of climbing opportunity is this?",
"mappings": [
{
"if": "climbing=boulder",
"then": {
"en": "A climbing boulder - a single rock or cliff with one or a few climbing routes which can be climbed safely without rope",
"fr": "Rocher descalade, rocher avec une ou peu de voie permettant descalader sans corde",
"de": "Ein Kletterfelsen - ein einzelner Felsen oder eine Klippe mit einer oder wenigen Kletterrouten, die ohne Seil sicher bestiegen werden können"
}
},
{
"if": "climbing=crag",
"then": {
"en": "A climbing crag - a single rock or cliff with at least a few climbing routes",
"fr": "Mur descalade, rocher avec plusieurs voies descalades"
}
},
{
"if": "climbing=area",
"then": "A climbing area with one or more climbing crags and/or boulders"
}
],
"id": "Type"
},
{
"question": {
"en": "What is the rock type here?",
"fr": "Quel est le type de roche ?",
"de": "Welchen Gesteinstyp gibt es hier?"
},
"render": {
"en": "The rock type is {rock}",
"fr": "La roche est du {rock}",
"de": "Der Gesteinstyp ist {rock}"
},
"freeform": {
"key": "rock"
},
"mappings": [
{
"if": "rock=limestone",
"then": {
"en": "Limestone",
"nl": "Kalksteen",
"fr": "Calcaire",
"de": "Kalkstein"
}
}
],
"condition": {
"or": [
"climbing=crag",
"natural=cliff",
"natural=bare_rock"
]
},
"id": "Rock type (crag/rock/cliff only)"
},
"reviews"
],
"icon": {
"render": "./assets/themes/climbing/climbing_no_rope.svg"
},
"width": {
"render": "8"
},
"iconSize": {
"render": "40,40,center"
},
"color": {
"render": "#d38d5fAA"
},
"presets": [
{
"tags": [
"sport=climbing"
],
"title": {
"en": "Climbing opportunity",
"nl": "Klimgelegenheid",
"de": "Klettermöglichkeit",
"ja": "登坂教室",
"nb_NO": "Klatremulighet",
"fr": "Opportunité descalade"
},
"description": {
"nl": "Een klimgelegenheid",
"de": "Eine Klettergelegenheit",
"en": "A climbing opportunity",
"ja": "登坂教室",
"nb_NO": "En klatremulighet",
"fr": "Opportunité descalade"
}
}
],
"wayHandling": 2,
"calculatedTags": [
"_contained_climbing_routes_properties=feat.overlapWith('climbing_route').map(f => f.feat.properties).map(p => {return {id: p.id, name: p.name, 'climbing:grade:french': p['climbing:grade:french'], 'climbing:length': p['climbing:length']} })",
"_contained_climbing_routes=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => `<li><a href='#${p.id}'>${p.name ?? 'climbing route'}</a> (<b>${p['climbing:grade:french'] ?? 'unknown difficulty'}</b>, ${p['climbing:length'] ?? 'unkown length'} meter)</li>`).join('')",
"_contained_climbing_route_ids=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p.id)",
"_difficulty_hist=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p['climbing:grade:french'])",
"_length_hist=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p['climbing:length'])",
"_contained_climbing_routes_count=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').length"
]
},
{
"id": "maybe_climbing",
"name": {
"nl": "Klimgelegenheiden?",
"de": "Klettermöglichkeiten?",
"en": "Climbing opportunities?",
"ja": "登坂教室?",
"nb_NO": "Klatremuligheter?",
"fr": "Opportunités descalade ?"
},
"minzoom": 19,
"source": {
"osmTags": {
"and": [
{
"or": [
"leisure=sports_centre",
"barrier=wall",
"barrier=retaining_wall",
"natural=cliff",
"natural=rock",
"natural=stone"
]
},
"climbing="
]
}
},
"title": {
"render": {
"en": "Climbing opportunity?",
"nl": "Klimgelegenheid?",
"de": "Klettermöglichkeit?",
"ja": "登坂教室?",
"nb_NO": "Klatremulighet?",
"fr": "Opportunité descalade ?"
}
},
"description": {
"nl": "Een klimgelegenheid?",
"de": "Eine Klettergelegenheit?",
"en": "A climbing opportunity?",
"ja": "登坂教室?",
"nb_NO": "En klatremulighet?",
"fr": "Opportunité descalade ?"
},
"tagRenderings": [
{
"id": "minimap",
"render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }"
},
{
"id": "climbing-opportunity-name",
"render": {
"en": "<strong>{name}</strong>",
"de": "<strong>{name}</strong>",
"ca": "<strong>{name}</strong>",
"fr": "<strong>{name}</strong>",
"id": "<strong>{name}</strong>",
"ru": "<strong>{name}</strong>",
"ja": "<strong>{name}</strong>",
"nl": "<strong>{name}</strong>"
},
"condition": "name~*"
},
{
"id": "climbing-possible",
"question": {
"en": "Is climbing possible here?",
"de": "Kann hier geklettert werden?",
"ja": "ここで登坂はできますか?",
"nb_NO": "Er klatring mulig her?",
"fr": "Est-il possible descalader ici ?"
},
"mappings": [
{
"if": {
"and": [
"sport!~climbing"
]
},
"then": {
"en": "Climbing is not possible here",
"de": "Hier kann nicht geklettert werden",
"ja": "ここでは登ることができない",
"nb_NO": "Klatring er ikke mulig her",
"nl": "Klimmen is hier niet mogelijk",
"fr": "Escalader nest pas possible"
},
"hideInAnswer": true
},
{
"if": {
"and": [
"sport=climbing"
]
},
"then": {
"en": "Climbing is possible here",
"de": "Hier kann geklettert werden",
"ja": "ここでは登ることができる",
"nb_NO": "Klatring er mulig her",
"nl": "Klimmen is hier niet toegelaten",
"fr": "Escalader est possible"
}
},
{
"if": "climbing=no",
"then": {
"en": "Climbing is not possible here",
"de": "Hier kann nicht geklettert werden",
"ja": "ここでは登ることができない",
"nb_NO": "Klatring er ikke mulig her",
"nl": "Klimmen is hier niet toegelaten",
"fr": "Escalader nest pas possible"
}
}
]
}
],
"icon": "./assets/themes/climbing/climbing_unknown.svg",
"width": {
"render": "2"
},
"color": {
"render": "#ddff55AA"
},
"wayHandling": 0
}
],
"roamingRenderings": [
{
"#": "Website",
"question": {
"en": "Is there a (unofficial) website with more informations (e.g. topos)?",
"de": "Gibt es eine (inoffizielle) Website mit mehr Informationen (z.B. Topos)?",
"ja": "もっと情報のある(非公式の)ウェブサイトはありますか(例えば、topos)?",
"nl": "Is er een (onofficiële) website met meer informatie (b.v. met topos)?",
"ru": "Есть ли (неофициальный) веб-сайт с более подробной информацией (напр., topos)?",
"fr": "Existe-til un site avec plus dinformations (ex : topographie) ?"
},
"condition": {
"and": [
"leisure!~sports_centre",
"sport=climbing",
"office=",
"club="
]
},
"render": "<a href='{url}' target='_blank'>{url}</a>",
"freeform": {
"key": "url",
"type": "url"
}
},
{
"#": "Access from containing feature",
"mappings": [
{
"if": "_embedding_feature:access=yes",
"then": {
"en": "<span class='subtle'>The <a href='#{_embedding_feature:id}'>containing feature</a> states that this is</span> publicly accessible<br/>{_embedding_feature:access:description}",
"nl": "<span class='subtle'>Een <a href='#{_embedding_feature:id}'>omvattend element</a> geeft aan dat dit <span>publiek toegangkelijk is</span><br/>{_embedding_feature:access:description}",
"fr": "<span class='subtle'>L<a href='#{_embedding_feature:id}'>élément englobant</a> indique un </span> accès libre<br/>{_embedding_feature:access:description}"
}
},
{
"if": "_embedding_feature:access=permit",
"then": {
"en": "<span class='subtle'>The <a href='#{_embedding_feature:id}'>containing feature</a> states that </span> a permit is needed to access<br/>{_embedding_feature:access:description}",
"nl": "<span class='subtle'>Een <a href='#{_embedding_feature:id}'>omvattend element</a> geeft aan dat</span> een toelating nodig is om hier te klimmen<br/>{_embedding_feature:access:description}",
"fr": "<span class='subtle'>L<a href='#{_embedding_feature:id}'>élément englobant</a> indique qu</span> une autorisation daccès est nécessaire<br/>{_embedding_feature:access:description}"
}
},
{
"if": "_embedding_feature:access=customers",
"then": {
"en": "<span class='subtle'>The <a href='#{_embedding_feature:id}'>containing feature</a> states that this is</span> only accessible to customers<br/>{_embedding_feature:access:description}",
"fr": "<span class='subtle'>L<a href='#{_embedding_feature:id}'>élément englobant</a> indique que </span> laccès est réservés aux clients<br/>{_embedding_feature:access:description}"
}
},
{
"if": "_embedding_feature:access=members",
"then": {
"en": "<span class='subtle'>The <a href='#{_embedding_feature:id}'>containing feature</a> states that this is</span> only accessible to club members<br/>{_embedding_feature:access:description}",
"fr": "<span class='subtle'>L<a href='#{_embedding_feature:id}'>élément englobant</a> indique que </span> laccès est réservé aux membres<br/>{_embedding_feature:access:description}"
}
},
{
"if": "_embedding_feature:access=no",
"then": "Not accessible as stated by <a href='#{_embedding_feature:id}'>the containing feature</a>"
}
],
"condition": "_embedding_feature:access~*"
},
{
"#": "Access",
"question": {
"en": "Who can access here?",
"fr": "Qui peut y accéder ?",
"de": "Wer hat hier Zugang?"
},
"mappings": [
{
"if": "access=yes",
"then": {
"en": "Publicly accessible to anyone",
"fr": "Libre daccès",
"de": "Öffentlich zugänglich für jedermann"
}
},
{
"if": "access=permit",
"then": {
"en": "You need a permit to access here",
"fr": "Une autorisation est nécessaire",
"de": "Zugang nur mit Genehmigung"
}
},
{
"if": "access=customers",
"then": {
"en": "Only custumers",
"fr": "Réservé aux clients",
"de": "Nur für Kunden"
}
},
{
"if": "access=members",
"then": {
"en": "Only club members",
"ru": "Только членам клуба",
"fr": "Réservé aux membres",
"de": "Nur für Vereinsmitglieder"
}
},
{
"if": "access=no",
"then": "Not accessible"
}
],
"condition": {
"and": [
"climbing!=no",
"office=",
"club=",
{
"or": [
"sport=climbing",
"climbing:sport=yes"
]
},
{
"or": [
"access~*",
"_embedding_feature:access="
]
}
]
}
},
{
"#": "Access description (without _embedding_feature:access:description)",
"render": "{access:description}",
"freeform": {
"key": "access:description"
}
},
{
"#": "Avg length?",
"render": {
"de": "Die Routen sind durchschnittlich <b>{canonical(climbing:length)}</b> lang",
"en": "The routes are <b>{canonical(climbing:length)}</b> long on average",
"nl": "De klimroutes zijn gemiddeld <b>{canonical(climbing:length)}</b> lang",
"ja": "ルートの長さは平均で<b>{canonical(climbing:length)}</b>です",
"fr": "Les voies font <b>{canonical(climbing:length)}</b> de long en moyenne"
},
"condition": {
"and": [
"climbing!~route",
"office=",
"club=",
"climbing:toprope!=no",
{
"or": [
"sport=climbing",
"climbing:sport=yes",
"climbing=traditional",
"climbing=gym"
]
}
]
},
"question": {
"de": "Wie lang sind die Routen (durchschnittlich) in Metern?",
"en": "What is the (average) length of the routes in meters?",
"nl": "Wat is de (gemiddelde) lengte van de klimroutes, in meter?",
"ja": "ルートの(平均)長さはメートル単位でいくつですか?",
"fr": "Quelle est la longueur moyenne des voies en mètres ?"
},
"freeform": {
"key": "climbing:length",
"type": "pnat"
}
},
{
"#": "Difficulty-min",
"question": {
"de": "Welche Schwierigkeit hat hier die leichteste Route (französisch/belgisches System)?",
"en": "What is the level of the easiest route here, accoring to the french classification system?",
"nl": "Wat is het niveau van de makkelijkste route, volgens het Franse classificatiesysteem?",
"ja": "ここで一番簡単なルートのレベルは、フランスのランク評価システムで何ですか?",
"fr": "Quel est le niveau de la voie la plus simple selon la classification franco-belge ?"
},
"render": {
"de": "Die leichteste Route hat hier die Schwierigkeit {climbing:grade:french:min} (französisch/belgisches System)",
"en": "The minimal difficulty is {climbing:grade:french:min} according to the french/belgian system",
"nl": "De minimale klimmoeilijkheid is {climbing:grade:french:min} volgens het Franse/Belgische systeem",
"ja": "フランス/ベルギーのランク評価システムでは、最小の難易度は{climbing:grade:french:min}です",
"fr": "La difficulté minimale est {climbing:grade:french:min} selon la classification franco-belge"
},
"freeform": {
"key": "climbing:grade:french:min"
},
"condition": {
"and": [
"climbing!~route",
"office=",
"club=",
{
"or": [
"climbing:sport=yes",
"sport=climbing"
]
}
]
}
},
{
"#": "Difficulty-max",
"question": {
"de": "Welche Schwierigkeit hat hier die schwerste Route (französisch/belgisches System)?",
"en": "What is the level of the most difficult route here, accoring to the french classification system?",
"nl": "Wat is het niveau van de moeilijkste route, volgens het Franse classificatiesysteem?",
"ja": "フランスのランク評価によると、ここで一番難しいルートのレベルはどれくらいですか?",
"fr": "Quel est le niveau de la voie la plus difficile selon la classification franco-belge ?"
},
"render": {
"de": "Die schwerste Route hat hier die Schwierigkeit {climbing:grade:french:min} (französisch/belgisches System)",
"en": "The maximal difficulty is {climbing:grade:french:max} according to the french/belgian system",
"nl": "De maximale klimmoeilijkheid is {climbing:grade:french:max} volgens het Franse/Belgische systeem",
"ja": "フランス/ベルギーのランク評価システムでは、最大の難易度は{climbing:grade:french:max}です",
"fr": "La difficulté maximale est {climbing:grade:french:max} selon la classification franco-belge"
},
"freeform": {
"key": "climbing:grade:french:max"
},
"condition": {
"and": [
"climbing!~route",
"office=",
"club=",
{
"or": [
"climbing:sport=yes",
"sport=climbing"
]
}
]
}
},
{
"#": "Boldering?",
"question": {
"de": "Kann hier gebouldert werden?",
"en": "Is bouldering possible here?",
"nl": "Is het mogelijk om hier te bolderen?",
"ja": "ここでボルダリングはできますか?",
"nb_NO": "Er buldring mulig her?",
"fr": "Lescalade de bloc est-elle possible ici ?"
},
"mappings": [
{
"if": "climbing:boulder=yes",
"then": {
"de": "Hier kann gebouldert werden",
"en": "Bouldering is possible here",
"nl": "Bolderen kan hier",
"ja": "ボルダリングはここで可能です",
"nb_NO": "Buldring er mulig her",
"fr": "Lescalade de bloc est possible"
}
},
{
"if": "climbing:boulder=no",
"then": {
"de": "Hier kann nicht gebouldert werden",
"en": "Bouldering is not possible here",
"nl": "Bolderen kan hier niet",
"ja": "ここではボルダリングはできません",
"nb_NO": "Buldring er ikke mulig her",
"fr": "Lescalade de bloc nest pas possible"
}
},
{
"if": "climbing:boulder=limited",
"then": {
"de": "Bouldern ist hier nur an wenigen Routen möglich",
"en": "Bouldering is possible, allthough there are only a few routes",
"nl": "Bolderen kan hier, maar er zijn niet zoveel routes",
"ja": "ボルダリングは可能ですが、少しのルートしかありません",
"fr": "Lescalade de bloc est possible sur des voies précises"
}
},
{
"if": "climbing:boulder~*",
"then": {
"de": "Hier gibt es {climbing:boulder} Boulder-Routen",
"en": "There are {climbing:boulder} boulder routes",
"nl": "Er zijn hier {climbing:boulder} bolderroutes",
"ja": "{climbing:boulder} ボルダールートがある",
"fr": "Il y a {climbing:boulder} voies descalade de bloc"
},
"hideInAnswer": true
}
],
"condition": {
"and": [
{
"or": [
"climbing:sport=yes",
"sport=climbing"
]
},
"office=",
"club="
]
}
},
{
"#": "Toproping?",
"question": {
"de": "Ist Toprope-Klettern hier möglich?",
"en": "Is toprope climbing possible here?",
"nl": "Is het mogelijk om hier te toprope-klimmen?",
"ja": "ここでtoprope登坂はできますか?",
"fr": "Est-il possible descalader à la moulinette ?"
},
"mappings": [
{
"if": "climbing:toprope=yes",
"then": {
"de": "Toprope-Klettern ist hier möglich",
"en": "Toprope climbing is possible here",
"nl": "Toprope-klimmen kan hier",
"ja": "ここでToprope登坂ができます",
"fr": "Lescalade à la moulinette est possible"
}
},
{
"if": "climbing:toprope=no",
"then": {
"de": "Toprope-Climbing ist hier nicht möglich",
"en": "Toprope climbing is not possible here",
"nl": "Toprope-klimmen kan hier niet",
"ja": "ここではToprope登坂はできません",
"fr": "Lescalade à la moulinette nest pas possible"
}
},
{
"if": "climbing:toprope~*",
"then": {
"de": "Hier gibt es {climbing:toprope} Toprope-Routen",
"en": "There are {climbing:toprope} toprope routes",
"nl": "Er zijn hier {climbing:toprope} toprope routes",
"ja": "{climbing:toprope} 登坂ルートがある",
"fr": "{climbing:toprope} voies sont équipées de moulinettes"
},
"hideInAnswer": true
}
],
"condition": {
"and": [
{
"or": [
"climbing:sport=yes",
"sport=climbing"
]
},
"office=",
"club="
]
}
},
{
"#": "Sportclimbing?",
"question": {
"de": "Ist hier Sportklettern möglich (feste Ankerpunkte)?",
"en": "Is sport climbing possible here on fixed anchors?",
"nl": "Is het mogelijk om hier te sportklimmen/voorklimmen op reeds aangebrachte haken?",
"ja": "ここでは固定アンカー式のスポーツクライミングはできますか?"
},
"mappings": [
{
"if": "climbing:sport=yes",
"then": {
"de": "Sportklettern ist hier möglich",
"en": "Sport climbing is possible here",
"nl": "Sportklimmen/voorklimmen kan hier",
"ru": "Здесь можно заняться спортивным скалолазанием",
"ja": "ここでスポーツクライミングができます"
}
},
{
"if": "climbing:sport=no",
"then": {
"de": "Sportklettern ist hier nicht möglich",
"en": "Sport climbing is not possible here",
"nl": "Sportklimmen/voorklimmen kan hier niet",
"ru": "Спортивное скалолазание здесь невозможно",
"ja": "ここではスポーツクライミングはできません"
}
},
{
"if": "climbing:sport~*",
"then": {
"de": "Hier gibt es {climbing:sport} Sportkletter-Routen",
"en": "There are {climbing:sport} sport climbing routes",
"nl": "Er zijn hier {climbing:sport} sportklimroutes/voorklimroutes",
"ja": "スポーツクライミングの {climbing:sport} ルートがある"
},
"hideInAnswer": true
}
],
"condition": {
"and": [
{
"or": [
"climbing:sport=yes",
"sport=climbing"
]
},
"office=",
"club="
]
}
},
{
"#": "Traditional climbing?",
"question": {
"de": "Ist hier traditionelles Klettern möglich (eigene Sicherung z.B. mit Klemmkleilen)?",
"en": "Is traditional climbing possible here (using own gear e.g. chocks)?",
"nl": "Is het mogelijk om hier traditioneel te klimmen? <br/><span class='subtle'>(Dit is klimmen met klemblokjes en friends)</span>",
"ja": "伝統的な登山はここで可能ですか(例えば、チョックのような独自のギアを使用して)"
},
"mappings": [
{
"if": "climbing:traditional=yes",
"then": {
"de": "Traditionelles Klettern ist hier möglich",
"en": "Traditional climbing is possible here",
"nl": "Traditioneel klimmen kan hier",
"ja": "ここでは伝統的な登山が可能です"
}
},
{
"if": "climbing:traditional=no",
"then": {
"de": "Traditionelles Klettern ist hier nicht möglich",
"en": "Traditional climbing is not possible here",
"nl": "Traditioneel klimmen kan hier niet",
"ja": "伝統的な登山はここではできない"
}
},
{
"if": "climbing:traditional~*",
"then": {
"de": "Hier gibt es {climbing:traditional} Routen für traditionelles Klettern",
"en": "There are {climbing:traditional} traditional climbing routes",
"nl": "Er zijn hier {climbing:traditional} traditionele klimroutes",
"ja": "{climbing:traditional} の伝統的な登山ルートがある"
},
"hideInAnswer": true
}
],
"condition": {
"and": [
{
"or": [
"climbing:sport=yes",
"sport=climbing"
]
},
"office=",
"club="
]
}
},
{
"#": "Speed climbing?",
"question": {
"de": "Gibt es hier eine Speedkletter-Wand?",
"en": "Is there a speed climbing wall?",
"nl": "Is er een snelklimmuur (speed climbing)?",
"ja": "スピードクライミングウォールはありますか?"
},
"condition": {
"and": [
"leisure=sports_centre",
{
"or": [
"climbing:sport=yes",
"sport=climbing"
]
},
"office=",
"club="
]
},
"mappings": [
{
"if": "climbing:speed=yes",
"then": {
"de": "Hier gibt es eine Speedkletter-Wand",
"en": "There is a speed climbing wall",
"nl": "Er is een snelklimmuur voor speed climbing",
"ja": "スピードクライミングウォールがある"
}
},
{
"if": "climbing:speed=no",
"then": {
"de": "Hier gibt es keine Speedkletter-Wand",
"en": "There is no speed climbing wall",
"nl": "Er is geen snelklimmuur voor speed climbing",
"ja": "スピードクライミングウォールがない"
}
},
{
"if": "climbing:speed~*",
"then": {
"de": "Hier gibt es {climbing:speed} Speedkletter-Routen",
"en": "There are {climbing:speed} speed climbing walls",
"nl": "Er zijn hier {climbing:speed} snelklimmuren",
"ja": "{climbing:speed} のスピードクライミングウォールがある"
},
"hideInAnswer": true
}
]
}
],
"overrideAll": {
"titleIcons": [
{
"render": "<div style='display:block ruby;' class='m-1 '><img src='./assets/themes/climbing/height.svg' style='width:2rem; height:2rem'/>{climbing:length}m</div>",
"freeform": {
"key": "climbing:length"
}
},
{
"render": "<div style='display:block ruby;' class='m-1 '><img src='./assets/themes/climbing/carabiner.svg' style='width:2rem; height:2rem'/>{climbing:bolted}</div>",
"freeform": {
"key": "climbing:bolted"
},
"mappings": [
{
"if": "climbing:bolted=yes",
"then": "<img src='./assets/themes/climbing/carabiner.svg' style='width:2rem; height:2rem'/>"
}
]
},
"defaults"
],
"+calculatedTags": [
"_embedding_feature_properties=feat.overlapWith('climbing').map(f => f.feat.properties).filter(p => p !== undefined).map(p => {return{access: p.access, id: p.id, name: p.name, climbing: p.climbing, 'access:description': p['access:description']}})",
"_embedding_features_with_access=JSON.parse(feat.properties._embedding_feature_properties ?? '[]').filter(p => p.access !== undefined)[0]",
"_embedding_feature_with_rock=JSON.parse(feat.properties._embedding_feature_properties ?? '[]').filter(p => p.rock !== undefined)[0] ?? '{}'",
"_embedding_features_with_rock:rock=JSON.parse(feat.properties._embedding_feature_with_rock ?? '{}')?.rock",
"_embedding_features_with_rock:id=JSON.parse(feat.properties._embedding_feature_with_rock ?? '{}')?.id",
"_embedding_feature:access=JSON.parse(feat.properties._embedding_features_with_access ?? '{}').access",
"_embedding_feature:access:description=JSON.parse(feat.properties._embedding_features_with_access ?? '{}')['access:description']",
"_embedding_feature:id=JSON.parse(feat.properties._embedding_features_with_access ?? '{}').id"
],
"units+": [
{
"appliesToKey": [
"climbing:length",
"climbing:length:min",
"climbing:length:max"
],
"applicableUnits": [
{
"canonicalDenomination": "",
"alternativeDenomination": [
"m",
"meter",
"meters"
],
"human": {
"en": " meter",
"nl": " meter",
"fr": " mètres",
"de": " Meter"
},
"default": true
},
{
"canonicalDenomination": "ft",
"alternativeDenomination": [
"feet",
"voet"
],
"human": {
"en": " feet",
"nl": " voet",
"fr": " pieds",
"de": " Fuß"
}
}
]
}
]
}
}