{
  "id": "climbing",
  "title": {
    "en": "Open Climbing Map",
    "nl": "Open klimkaart",
    "de": "Offene Kletterkarte",
    "ru": "Открытая карта скалолазания",
    "ja": "登山地図を開く",
    "zh_Hant": "開放攀爬地圖",
    "nb_NO": "Åpent klatrekart",
    "it": "Mappa aperta per le arrampicate",
    "fr": "Open Climbing Map",
    "hu": "Mászótérkép",
    "ca": "Open Climbing Map"
  },
  "description": {
    "nl": "Op deze kaart vind je verschillende klimgelegenheden, zoals klimzalen, bolderzalen en klimmen in de natuur",
    "de": "Eine Karte mit Klettermöglichkeiten wie Kletterhallen, Kletterparks oder Felsen.",
    "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 d’escalade comme les salles d’escalade ou les sites naturels",
    "it": "In questa cartina puoi trovare vari luoghi per arrampicata come ad esempio palestre di arrampicata, sale di pratica e rocce naturali.",
    "hu": "Ezen a térképen különböző mászási lehetőségeket talál, például falmászótermeket, bouldertermeket és sziklákat a természetben.",
    "nb_NO": "Forskjellige klatremuligheter, som f.eks. buldrehaller og steiner i naturen."
  },
  "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 <a href='https://www.openstreetmap.org/' target='_blank'>OpenStreetMap</a> Daten 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 des sites d'escalade 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>",
    "it": "La cartina di arrampicata è stata originariamente creata da <a href='https://utopicode.de/en/?ref=kletterspots' target='_blank'>Christian Neumann</a>. Si prega di <a href='https://utopicode.de/en/contact/?project=kletterspots&ref=kletterspots' target='blank'>scrivere qua</a> se si hanno commenti o domande da fare.</p><p>Il progetto usa i dati del progetto <a href='https://www.openstreetmap.org/' target='_blank'>OpenStreetMap</a>.</p>",
    "hu": "A mászótérképet eredetileg <a href='https://utopicode.de/en/?ref=kletterspots' target='_blank'>Christian Neumann</a> készítette. Ha észrevétele vagy kérdése van, kérjük, <a href='https://utopicode.de/en/contact/?project=kletterspots&ref=kletterspots' target='blank'>vele lépjen kapcsolatba</a>.</p> <p>A projekt az <a href='https://www.openstreetmap.org/' target='_blank'>OpenStreetMap</a> adatait használja</p>"
  },
  "maintainer": "Christian Neumann <christian@utopicode.de>",
  "icon": "./assets/themes/climbing/climbing_icon.svg",
  "version": "0",
  "startLat": 0,
  "startLon": 0,
  "startZoom": 1,
  "widenFactor": 1.5,
  "customCss": "./assets/themes/climbing/climbing.css",
  "layers": [
    {
      "builtin": [
        "climbing_club",
        "climbing_gym",
        "climbing_route",
        "climbing_area",
        "climbing_opportunity"
      ],
      "override": {
        "allowMove": {
          "enableRelocation": false,
          "enableImproveAccuracy": true
        },
        "+titleIcons": [
          {
            "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~*"
          },
          {
            "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>"
          },
          {
            "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=feat.overlapWith('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=feat.get('_embedding_feature_properties')?.filter(p => p.access !== undefined)?.at(0)",
          "_embedding_feature_with_rock=feat.get('_embedding_feature_properties')?.filter(p => p.rock !== undefined)?.at(0)",
          "_embedding_features_with_rock:rock=feat.get('_embedding_feature_with_rock')?.rock",
          "_embedding_features_with_rock:id=feat.get('_embedding_feature_with_rock')?.id",
          "_embedding_feature:access=feat.get('_embedding_features_with_access')?.access",
          "_embedding_feature:access:description=(feat.get('_embedding_features_with_access')??{})['access:description']",
          "_embedding_feature:id=feat.get('_embedding_features_with_access')?.id",
          "__difficulty_max= feat.properties['climbing:grade:french:max'] ?? feat.properties['_difficulty_max']",
          "__difficulty_min= feat.properties['climbing:grade:french:min'] ?? feat.properties['_difficulty_min']",
          "__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= feat.get('climbing:bolts:max') ?? feat.get('climbing:bolts') ?? feat.get('_bolts_max')"
        ],
        "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",
                  "eo": " metro",
                  "it": " metri",
                  "ru": " метр",
                  "ca": " metre",
                  "nb_NO": " meter",
                  "es": " metro"
                },
                "default": true
              },
              {
                "canonicalDenomination": "ft",
                "alternativeDenomination": [
                  "feet",
                  "voet"
                ],
                "human": {
                  "en": " feet",
                  "nl": " voet",
                  "fr": " pieds",
                  "de": " Fuß",
                  "eo": " futo",
                  "it": " piedi",
                  "ca": " peus",
                  "nb_NO": " fot",
                  "es": " pies"
                }
              }
            ]
          }
        ],
        "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}"
                }
              },
              {
                "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 d’accè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 un’autorizzazione 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}"
                }
              },
              {
                "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> l’accè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}"
                }
              },
              {
                "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> l’accè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}"
                }
              },
              {
                "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í?"
            },
            "mappings": [
              {
                "if": "access=yes",
                "then": {
                  "en": "Publicly accessible to anyone",
                  "fr": "Libre d’accè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": "Accesible públicamente a cualquiera"
                }
              },
              {
                "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 un’autorizzazione per entrare",
                  "nl": "Je hebt een vergunning nodig om hier toegang te kregen",
                  "es": "Necesitas un permiso para acceder aquí"
                }
              },
              {
                "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"
                }
              },
              {
                "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 miembros del club"
                }
              },
              {
                "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"
            }
          },
          "questions",
          "reviews"
        ]
      }
    }
  ]
}