Themes(climbing): decrease minzoom, add 'bouldering mat' rental option

This commit is contained in:
Pieter Vander Vennet 2025-07-20 16:50:39 +02:00
parent d3236dd0a6
commit 0f6fd08da2
2 changed files with 349 additions and 5 deletions

View file

@ -724,6 +724,65 @@
}
]
},
{
"id": "bouldering_mat_rental",
"question": {
"en": "Can one rent a bouldering mat here to go bouldering on other locations?",
"nl": "Kan hier een bouldermat gehuurd worden voor gebruik op andere locaties?"
},
"mappings": [
{
"if": {
"and": [
"service:boulder_mat:rental=yes",
"service:boulder_mat:rental:fee=no"
]
},
"then": {
"en": "A boulder mat can be borrowed for free here",
"nl": "Een bouldermat kan hier gratis geleend worden"
},
"addExtraTags": [
"service:boulder_mat:rental:charge="
]
},
{
"if": {
"and": [
"service:boulder_mat:rental=yes",
"service:boulder_mat:rental:charge~*"
]
},
"then": {
"en": "A bouldermat can be rented here for {service:boulder_mat:rental:charge}",
"nl": "Een bouldermat kan hier gehuurd worden aan {service:boulder_mat:rental:charge}"
},
"hideInAnswer": true
},
{
"if": "service:boulder_mat:rental=yes",
"then": {
"en": "A boulder mat can be rented here",
"nl": "Een bouldermat kan hier gehuurd worden"
},
"addExtraTags": [
"service:boulder_mat:rental:fee=",
"service:boulder_mat:rental:charge="
]
},
{
"if": "service:boulder_mat:rental=no",
"then": {
"en": "A boulder mat rope can <b>not</b> be rented here",
"nl": "Hier kan <b>geen</b> boldermat gehuurd worden"
},
"addExtraTags": [
"service:boulder_mat:rental:fee=",
"service:boulder_mat:rental:charge="
]
}
]
},
{
"builtin": "climbing.average_length",
"override": {
@ -809,9 +868,8 @@
}
},
"shower",
"internet",
"internet-fee",
"internet-ssid"
"internet-all",
"toilet_at_amenity_lib.all"
],
"allowMove": true
}

View file

@ -65,8 +65,294 @@
"builtin": [
"climbing_club",
"climbing_gym",
"climbing_area"
],
"override": {
"+titleIcons": [
{
"id": "climbing_length",
"render": "<div class='flex' style='word-wrap: normal; padding-right: 0.25rem;'><img src='./assets/themes/climbing/height.svg' style='height: 1.75rem;'/>{climbing:length}m</div>",
"condition": "climbing:length~*"
},
{
"id": "climbing_bolts",
"mappings": [
{
"if": "__bolts_max~*",
"then": "<div class='flex' style='padding-right: 0.25rem;'><img src='./assets/themes/climbing/carabiner.svg' style='width: 1rem;'/>{__bolts_max}</div>"
},
{
"if": "climbing:bolted=yes",
"then": "<img src='./assets/themes/climbing/carabiner.svg' style='width:2rem; height:2rem'/>"
}
]
},
{
"id": "Min difficulty",
"condition": "__difficulty_min~*",
"render": "<div class='w-8 flex justify-center rounded-left-full climbing-{__difficulty_min:char}' style='margin-right: -5px;'> {__difficulty_min}</div>"
},
{
"id": "max difficulty",
"condition": "__difficulty_max~*",
"render": "<div class='w-8 flex justify-center rounded-right-full climbing-{__difficulty_max:char}'> {__difficulty_max}</div>"
},
{
"id": "difficulty",
"render": "<div class='flex justify-center rounded-full pl-1 pr-1 climbing-{__difficulty:char}'> {climbing:grade:french}</div>",
"condition": "__difficulty:char~*"
}
],
"+calculatedTags": [
"_embedding_feature_properties=overlapWith(feat)('climbing_area').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=get(feat)('_embedding_feature_properties')?.filter(p => p.access !== undefined)?.at(0)",
"_embedding_feature_with_rock=get(feat)('_embedding_feature_properties')?.filter(p => p.rock !== undefined)?.at(0)",
"_embedding_features_with_rock:rock=get(feat)('_embedding_feature_with_rock')?.rock",
"_embedding_features_with_rock:id=get(feat)('_embedding_feature_with_rock')?.id",
"_embedding_feature:access=get(feat)('_embedding_features_with_access')?.access",
"_embedding_feature:access:description=(get(feat)('_embedding_features_with_access')??{})['access:description']",
"_embedding_feature:id=get(feat)('_embedding_features_with_access')?.id",
"__difficulty_max= (feat.properties['climbing:grade:french:max'] ?? feat.properties['_difficulty_max'])?.substring(0,2)?.toUpperCase()",
"__difficulty_min= (feat.properties['climbing:grade:french:min'] ?? feat.properties['_difficulty_min'])?.substring(0,2)?.toUpperCase()",
"__difficulty_max:char= feat.properties['__difficulty_max']?.at(0)",
"__difficulty_min:char= feat.properties['__difficulty_min']?.at(0)",
"__difficulty:char= feat.properties['climbing:grade:french']?.at(0)",
"__bolts_max= get(feat)('climbing:bolts:max') ?? get(feat)('climbing:bolts') ?? get(feat)('_bolts_max')"
],
"units+": [
{
"climbing:length": {
"quantity": "distance",
"canonical": "m",
"denominations": [
"ft"
]
},
"climbing:length:min": {
"quantity": "distance",
"canonical": "m",
"denominations": [
"ft"
]
},
"climbing:length:max": {
"quantity": "distance",
"canonical": "m",
"denominations": [
"ft"
]
}
}
],
"tagRenderings+": [
{
"id": "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 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}",
"it": "<span class='subtle'>L <a href='#{_embedding_feature:id}'>elemento in cui è contenuto</a> indica che è</span> pubblicamente accessibile<br/>{_embedding_feature:access:description}",
"de": "<span class='subtle'>Das <a href='#{_embedding_feature:id}'>enthaltende Objekt</a> gibt an, dass es </span>öffentlich zugänglich ist<br/>{_embedding_feature:access:description}",
"da": "<span class='subtle'>Den <a href='#{_embedding_feature:id}'>indeholdende funktion</a> angiver, at denne er</span> offentligt tilgængelig<br/>{_embedding_feature:access:description}",
"es": "<span class='subtle'>El <a href='#{_embedding_feature:id}'>elemento que lo contiene</a> indica que es</span> de acceso público<br/>{_embedding_feature:access:description}",
"ca": "<span class='subtle'>La<a href='#{_embedding_feature:id}'>l'element que el conté</a>indica que és d'</span>accés públic<br/>{_embedding_feature:access:description}",
"cs": "<span class='subtle'>V <a href='#{_embedding_feature:id}'>obsahující funkci</a> je uvedeno, že toto je</span> veřejně dostupné<br/>{_embedding_feature:access:description}",
"pl": "<span class='subtle'><a href='#{_embedding_feature:id}'>Obiekt zawarty</a> stwierdza, że jest on</span> publicznie dostępny<br/>{_embedding_feature:access:description}",
"uk": "<span class='subtle'>У <a href='#{_embedding_feature:id}'>що містить об'єкт</a> зазначено, що це</span> загальнодоступне<br/>{_embedding_feature:access:description}",
"zh_Hant": "<span class='subtle'><a href='#{_embedding_feature:id}'>強調這邊</a>包含</span> 公共可及的圖徵<br/>{_embedding_feature:access:description}",
"ko": "<span class='subtle'>이<a href='#{_embedding_feature:id}'>포함된 요소</a>따르면, 이는</span>접근이 가능합니다<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}",
"it": "<span class='subtle'>L<a href='#{_embedding_feature:id}'>elemento che lo contiene</a> indica che </span> è richiesto unautorizzazione per accedervi<br/>{_embedding_feature:access:description}",
"de": "<span class='subtle'>Das <a href='#{_embedding_feature:id}'>enthaltende Objekt</a> besagt, dass </span> eine Genehmigung erforderlich ist für den Zugang zu<br/>{_embedding_feature:access:description}",
"da": "<span class='subtle'>Den <a href='#{_embedding_feature:id}'>indeholdende funktion</a> angiver, at </span> en tilladelse er nødvendig for at få adgang til<br/>{_embedding_feature:access:description}",
"es": "<span class='subtle'>El <a href='#{_embedding_feature:id}'>elemento que lo contiene</a> indica que</span> se necesita un permiso para acceder<br/>{_embedding_feature:access:description}",
"ca": "<span class='subtle'>La<a href='#{_embedding_feature:id}'>l'element que el conté</a> indica que es necessita </span> un permís per a accedir-hi<br/>{_embedding_feature:access:description}",
"cs": "<span class='subtle'>V <a href='#{_embedding_feature:id}'>obsahující funkci</a> je uvedeno, že </span> je k přístupu potřeba povolení<br/>{_embedding_feature:access:description}",
"pl": "<span class='subtle'><a href='#{_embedding_feature:id}'>Obiekt zawarty</a> stwierdza, że</span> potrzebne jest pozwolenie, aby do niego wejść<br/>{_embedding_feature:access:description}",
"uk": "<span class='subtle'>У <a href='#{_embedding_feature:id}'>функції</a> зазначено, що </span> потрібен дозвіл для доступу<br/>{_embedding_feature:access:description}",
"zh_Hant": "<span class='subtle'> <a href='#{_embedding_feature:id}'>強調</a>包含 </span> 需要獲得核准才能進入的圖徵<br/>{_embedding_feature:access:description}",
"ko": "<span class='subtle'>이 <a href='#{_embedding_feature:id}'>포함된 요소</a>에 따르면,</span>접근을 위한 허가가 필요합니다<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}",
"it": "<span class='subtle'>L <a href='#{_embedding_feature:id}'>elemento che lo contiene</a> indica che è</span> accessibile solo ai clienti<br/>{_embedding_feature:access:description}",
"de": "<span class='subtle'>Das <a href='#{_embedding_feature:id}'>enthaltende Objekt</a> besagt, dass es nur für Kunden</span> zugänglich ist<br/>{_embedding_feature:access:description}",
"nl": "<span class='subtle'>Het <a href='#{_embedding_feature:id}'>omsluitende kaart-object</a> zegt dat </span> het enkel toegankelijk is voor klanten<br/>{_embedding_feature:access:description}",
"da": "<span class='subtle'>Den <a href='#{_embedding_feature:id}'>indeholdende funktion</a> angiver, at denne</span> kun er tilgængelig for kunder<br/>{_embedding_feature:access:description}",
"es": "<span class='subtle'>El <a href='#{_embedding_feature:id}'>elemento que lo contiene</a> indica que es</span> solo accesible para clientes<br/>{_embedding_feature:access:description}",
"cs": "<span class='subtle'>V <a href='#{_embedding_feature:id}'>obsahující funkci</a> je uvedeno, že toto je</span> dostupné pouze zákazníkům<br/>{_embedding_feature:access:description}",
"ca": "<span class='subtle'>La<a href='#{_embedding_feature:id}'>característica que ho conté</a> indica que</span> sols és accessible per als clients<br/>{_embedding_feature:access:description}",
"pl": "<span class='subtle'><a href='#{_embedding_feature:id}'>Obiekt zawarty</a> stwierdza, że jest on</span> dostępny tylko dla jego klientów<br/>{_embedding_feature:access:description}",
"uk": "<span class='subtle'>У <a href='#{_embedding_feature:id}'>що містить об'єкт</a> зазначено, що вона</span> доступна лише клієнтам<br/>{_embedding_feature:access:description}",
"zh_Hant": "<span class='subtle'><a href='#{_embedding_feature:id}'>強調</a>包含</span>只有顧客才能進入的圖徵<br/>{_embedding_feature:access:description}",
"ko": "<span class='subtle'>아<a href='#{_embedding_feature:id}'>포함된 요소</a>에 따르면, 이는</span>오직 고객만 접근 가능합니다.<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}",
"it": "<span class='subtle'>L <a href='#{_embedding_feature:id}'>elemento che lo contiene</a> indica che è </span> accessibile solamente ai membri del club<br/>{_embedding_feature:access:description}",
"de": "<span class='subtle'>Das <a href='#{_embedding_feature:id}'>enthaltende Objekt</a> besagt, dass es </span>nur für Mitglieder zugänglich ist<br/>{_embedding_feature:access:description}",
"nl": "<span class='subtle'>Het <a href='#{_embedding_feature:id}'>omsluitende kaart-object</a> zegt dat </span> het enkel toegankelijk is voor club leden<br/>{_embedding_feature:access:description}",
"da": "<span class='subtle'>Den <a href='#{_embedding_feature:id}'>indeholdende funktion</a> angiver, at denne</span> kun er tilgængelig for klubmedlemmer<br/>{_embedding_feature:access:description}",
"es": "<span class='subtle'>El <a href='#{_embedding_feature:id}'>elemento que lo contiene</a> indica que es</span> solo accesible para socios del club<br/>{_embedding_feature:access:description}",
"cs": "<span class='subtle'>V <a href='#{_embedding_feature:id}'>obsahující funkci</a> je uvedeno, že toto je</span> dostupné pouze členům klubu<br/>{_embedding_feature:access:description}",
"ca": "<span class='subtle'>La<a href='#{_embedding_feature:id}'>característica que ho conté</a> indica que</span> sols és accessible per als socis del club<br/>{_embedding_feature:access:description}",
"pl": "<span class='subtle'><a href='#{_embedding_feature:id}'>Obiekt zawarty</a> stwierdza, że jest on</span> dostępny tylko dla członków klubu<br/>{_embedding_feature:access:description}",
"uk": "<span class='subtle'>У <a href='#{_embedding_feature:id}'>що містить функцію</a> зазначено, що вона</span> доступна лише для членів клубу<br/>{_embedding_feature:access:description}",
"zh_Hant": "<span class='subtle'><a href='#{_embedding_feature:id}'>強調</a>包含</span>只有會員才能進入的圖徵<br/>{_embedding_feature:access:description}",
"ko": "<span class='subtle'>이<a href='#{_embedding_feature:id}'>포함된 요소</a>에 따르면, 이는 </span> 클럽 회원만 접근 가능합니다.<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~*"
},
{
"id": "access",
"question": {
"en": "Who can access here?",
"fr": "Qui peut y accéder ?",
"de": "Wer hat hier Zugang?",
"it": "Chi può accedervi?",
"nl": "Wie heeft hier toegang toe?",
"es": "¿Quién puede acceder aquí?",
"ca": "Qui pot accedir aquí?",
"da": "Hvem kan få adgang her?",
"cs": "Kdo sem má přístup?",
"pl": "Kto ma tutaj dostęp?",
"uk": "Хто може сюди потрапити?",
"zh_Hant": "誰能進入這裡?",
"ko": "누가 이곳에 접근 가능합니까?",
"cy": "Pwy sy'n gallu mynd yma?"
},
"mappings": [
{
"if": "access=yes",
"then": {
"en": "Publicly accessible to anyone",
"fr": "Libre daccès",
"de": "Öffentlich zugänglich für jedermann",
"it": "Pubblicamente accessibile a chiunque",
"nl": "Voor iedereen publiek toegankelijk",
"nb_NO": "Offentlig tilgjengelig for alle",
"es": "De acceso público para todos",
"da": "Offentligt tilgængelig for alle",
"cs": "Veřejně přístupné komukoli",
"ca": "Accessible públicament a qualsevol",
"pl": "Publicznie dostępne dla każdego",
"uk": "Загальнодоступний для всіх",
"zh_Hant": "開放給所有人",
"ko": "누구나 접근 가능합니다",
"cy": "Ar gael yn gyhoeddus i unrhyw un"
}
},
{
"if": "access=permit",
"then": {
"en": "You need a permit to access here",
"fr": "Une autorisation est nécessaire",
"de": "Zugang nur mit Genehmigung",
"it": "È necessario avere unautorizzazione per entrare",
"nl": "Je hebt een vergunning nodig om hier toegang te kregen",
"es": "Necesitas un permiso para acceder aquí",
"da": "Du skal have en tilladelse for at få adgang her",
"ca": "Necesites un permís per a accedir ací",
"cs": "K přístupu je potřeba povolení",
"pl": "Potrzebujesz pozwolenia, żeby tu wejść",
"uk": "Для доступу сюди потрібен дозвіл",
"zh_Hant": "你需要獲得核准才能進入這裡",
"ko": "이곳에 접근하기 위한 허가가 필요합니다"
}
},
{
"if": "access=customers",
"then": {
"en": "Only customers",
"fr": "Réservé aux clients",
"de": "Nur für Kunden",
"it": "Riservato ai clienti",
"ca": "Només clients",
"nl": "Enkel klanten",
"nb_NO": "Kun for kunder",
"es": "Solo clientes",
"da": "Kun for kunder",
"pa_PK": "صرف گاہک",
"cs": "Pouze zákazníci",
"pl": "Tylko klienci",
"uk": "Тільки клієнти",
"zh_Hant": "只有顧客",
"ko": "오직 고객만",
"cy": "Dim ond cwsmeriaid"
}
},
{
"if": "access=members",
"then": {
"en": "Only club members",
"ru": "Только членам клуба",
"fr": "Réservé aux membres",
"de": "Nur für Vereinsmitglieder",
"it": "Riservato ai membri del club",
"ca": "Només membres del club",
"nl": "Enkel clubleden",
"nb_NO": "Kun klubbmedlemmer",
"es": "Solo socios del club",
"da": "Kun klubmedlemmer",
"pa_PK": "صرف کلب دے میمبر",
"cs": "Pouze členové klubu",
"pl": "Tylko członkowie klubu",
"uk": "Тільки члени клубу",
"zh_Hant": "只有會員",
"ko": "오직 클럽 회원만",
"cy": "Dim ond aelodau o'r clwb"
}
},
{
"if": "access=no",
"then": "Not accessible"
}
],
"condition": {
"or": [
"access~*",
"_embedding_feature:access="
]
}
},
{
"id": "Access description (without _embedding_feature:access:description)",
"render": "{access:description}",
"freeform": {
"key": "access:description"
}
}
],
"minzoom": 6
}
},
{
"builtin": [
"climbing_route",
"climbing_area",
"climbing_opportunity"
],
"override": {
@ -549,4 +835,4 @@
],
"customCss": "./assets/themes/climbing/climbing.css",
"widenFactor": 1.5
}
}