{"id":5498,"date":"2025-09-15T08:44:22","date_gmt":"2025-09-15T06:44:22","guid":{"rendered":"https:\/\/toppenafdanmark.dk\/?page_id=5498"},"modified":"2025-11-24T10:24:26","modified_gmt":"2025-11-24T09:24:26","slug":"oplev-toppen-af-danmark","status":"publish","type":"page","link":"https:\/\/toppenafdanmark.dk\/de\/oplev-toppen-af-danmark\/","title":{"rendered":"Entdecken Sie den Gipfel von D\u00e4nemark"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5498\" class=\"elementor elementor-5498\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-607a729 e-flex e-con-boxed e-con e-parent\" data-id=\"607a729\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_offset&quot;:123,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4b17dda elementor-widget elementor-widget-html\" data-id=\"4b17dda\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"da\">\n<head>\n<meta charset=\"utf-8\" \/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\n<title>3D Button Ribbon<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;600&display=swap\" rel=\"stylesheet\">\n<style>\n  :root{\n    --txt:#445A5C;\n    --btn-bg:#F4F7F7;\n    --btn-border:#D6DFDF;\n    --btn-hover-hi:#ffffff;\n    --btn-hover-lo:#E3EBEB;\n    --shadow-dark:#C1C9C9;\n    --shadow-light:#FFFFFF;\n    --focus:#9cc;\n\n    \/* knobs *\/\n    --icon: clamp(22px, 3.2vw, 30px); \/* icon size *\/\n  }\n  *{box-sizing:border-box}\n  html,body{margin:0}\n  body{font-family:'Poppins',sans-serif;background:#fff;color:var(--txt)}\n\n  \/* ==== WRAPPER + ARROWS ==== *\/\n  .scroll-menu-wrapper{\n    position:relative;\n    padding:.4rem 2.2rem; \/* space for arrows *\/\n  }\n  .scroll-arrow{\n    position:absolute; top:50%; transform:translateY(-50%);\n    width:1.6rem;height:1.6rem;border:none;border-radius:50%;\n    background:#fffffff2; box-shadow:0 2px 6px rgba(0,0,0,.12);\n    color:#6f8185; font-size:1rem; line-height:1.6rem; text-align:center;\n    cursor:pointer; z-index:5; opacity:0; pointer-events:none; transition:opacity .15s ease;\n    display:flex; align-items:center; justify-content:center; padding:0;\n  }\n  .scroll-left {left:.4rem}\n  .scroll-right{right:.4rem}\n  .scroll-menu-wrapper.show-left  .scroll-left {opacity:1; pointer-events:auto}\n  .scroll-menu-wrapper.show-right .scroll-right{opacity:1; pointer-events:auto}\n\n  \/* ==== STRIP ==== *\/\n  .scroll-menu{\n    display:flex; align-items:center; gap:.5rem;\n    justify-content:center;             \/* center when content fits *\/\n    overflow-x:auto; overflow-y:hidden; scroll-behavior:smooth;\n    -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;\n    flex-wrap:nowrap !important; width:100%; min-width:0;\n  }\n  .scroll-menu::-webkit-scrollbar{height:6px}\n  .scroll-menu::-webkit-scrollbar-thumb{background:#d3d9da;border-radius:8px}\n  .scroll-menu::-webkit-scrollbar-track{background:transparent}\n\n  .focus-ribbon{\n    display:flex; gap:.5rem; padding:0 .1rem;\n    flex-wrap:nowrap !important; width:max-content; flex-shrink:0;\n  }\n\n  \/* ==== COMPACT RECTANGULAR BUTTONS (same height, auto width) ==== *\/\n  .category-button{\n    -webkit-tap-highlight-color:transparent;\n    appearance:none;\n    border:1px solid var(--btn-border);\n    background:var(--btn-bg);\n    border-radius:.7rem;\n    box-shadow:0 1px 0 rgba(0,0,0,.03);\n    cursor:pointer;\n\n    \/* row: icon + text (no extra gap) *\/\n    display:flex; align-items:center; gap:0;\n\n    \/* controls HEIGHT (same for all) *\/\n    padding:.32rem .6rem;\n    line-height:1.2;\n    font-size:clamp(.68rem, 1.05vw, .82rem);\n    font-weight:600; color:var(--txt);\n\n    \/* auto WIDTH per content *\/\n    width:auto; flex:0 0 auto;\n\n    \/* keep row height consistent even if fonts render slightly different *\/\n    min-height:2.1rem;\n\n    transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease, color .15s ease;\n    white-space:nowrap; \/* keep one line so height stays uniform *\/\n  }\n  .category-button img{\n    width:var(--icon); height:var(--icon); object-fit:contain; display:block; flex:0 0 auto;\n    margin-left:-4px;    \/* trim typical SVG left padding; adjust -2..-6 if needed *\/\n    margin-right:.22rem; \/* tiny space between icon and text *\/\n  }\n  .category-button span{\n    overflow:hidden; text-overflow:ellipsis; \/* safe if a label is huge *\/\n  }\n\n  \/* Hover \/ Focus *\/\n  .category-button:hover,\n  .category-button:focus-visible{\n    transform:translateY(-2px);\n    background:linear-gradient(145deg,var(--btn-hover-hi),var(--btn-hover-lo));\n    border-color:#cdd7d7;\n    box-shadow:3px 3px 6px var(--shadow-dark), -3px -3px 6px var(--shadow-light);\n    outline:none;\n  }\n  \/* Active \/ Selected *\/\n  .category-button:active,\n  .category-button[aria-pressed=\"true\"],\n  .category-button.is-selected{\n    transform:translateY(1px);\n    background:linear-gradient(145deg,#d0dadb,#f5fafa);\n    box-shadow:inset 2px 2px 4px var(--shadow-dark), inset -2px -2px 4px var(--shadow-light);\n    border-color:#c6d0d0; color:#1e2b2c;\n  }\n  .category-button[aria-pressed=\"true\"] img,\n  .category-button.is-selected img{ filter:none; }\n\n  @media (max-width:767px){\n    .scroll-menu-wrapper{padding:.35rem 2rem}\n    .scroll-arrow{width:1.5rem;height:1.5rem;font-size:.95rem;line-height:1.5rem}\n  }\n  @media (prefers-reduced-motion:reduce){\n    .category-button{transition:none}\n    .scroll-menu{scroll-behavior:auto}\n  }\n<\/style>\n<\/head>\n<body>\n\n<div class=\"scroll-menu-wrapper\" id=\"ribbonWrap\">\n  <button class=\"scroll-arrow scroll-left\" aria-label=\"Scroll left\" type=\"button\">\u2039<\/button>\n\n  <div class=\"scroll-menu\" id=\"categoryMenu\" role=\"tablist\" aria-label=\"Kategorier\">\n    <div class=\"focus-ribbon\">\n\n      <button class=\"category-button\" type=\"button\" aria-pressed=\"false\" data-category=\"oplevelser\">\n        <img decoding=\"async\" src=\"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/07\/Oplevelser-13.svg\" alt=\"\"><span>Oplevelser<\/span>\n      <\/button>\n\n      <button class=\"category-button\" type=\"button\" aria-pressed=\"false\" data-category=\"museer\">\n        <img decoding=\"async\" src=\"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Museer.svg\" alt=\"\"><span>Museer<\/span>\n      <\/button>\n\n      <button class=\"category-button\" type=\"button\" aria-pressed=\"false\" data-category=\"restauranter\">\n        <img decoding=\"async\" src=\"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Restauranter.svg\" alt=\"\"><span>Restauranter<\/span>\n      <\/button>\n\n      <button class=\"category-button\" type=\"button\" aria-pressed=\"false\" data-category=\"natteliv\">\n        <img decoding=\"async\" src=\"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Natteliv.svg\" alt=\"\"><span>Natteliv<\/span>\n      <\/button>\n\n      <button class=\"category-button\" type=\"button\" aria-pressed=\"false\" data-category=\"butikker\">\n        <img decoding=\"async\" src=\"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Butikker.svg\" alt=\"\"><span>Butikker<\/span>\n      <\/button>\n\n      <button class=\"category-button\" type=\"button\" aria-pressed=\"false\" data-category=\"hotel\">\n        <img decoding=\"async\" src=\"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Hotel.svg\" alt=\"\"><span>Hotel<\/span>\n      <\/button>\n\n      <button class=\"category-button\" type=\"button\" aria-pressed=\"false\" data-category=\"camping\">\n        <img decoding=\"async\" src=\"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Campingpladser.svg\" alt=\"\"><span>Camping<\/span>\n      <\/button>\n\n      <button class=\"category-button\" type=\"button\" aria-pressed=\"false\" data-category=\"gratisoplevelser\">\n        <img decoding=\"async\" src=\"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/08\/gratisoplevelser.svg\" alt=\"\"><span>Gratis Oplevelser<\/span>\n      <\/button>\n\n    <\/div>\n  <\/div>\n\n  <button class=\"scroll-arrow scroll-right\" aria-label=\"Scroll right\" type=\"button\">\u203a<\/button>\n<\/div>\n\n<div id=\"mapAnchor\" style=\"height:1px;\"><\/div>\n\n<script>\n(function(){\n  const wrap  = document.getElementById('ribbonWrap');\n  const menu  = document.getElementById('categoryMenu');\n  const left  = wrap.querySelector('.scroll-left');\n  const right = wrap.querySelector('.scroll-right');\n\n  function notifySelection(category){\n    if (typeof window.showCategory === 'function'){ try { window.showCategory(category); } catch(e){} }\n    if (typeof window.onCategorySelect === 'function'){ try { window.onCategorySelect(category); } catch(e){} }\n    try { window.dispatchEvent(new CustomEvent('category:select', { detail:{ category } })); } catch(e){}\n    try { window.dataLayer && window.dataLayer.push({ event:'category_select', category }); } catch(e){}\n  }\n\n  function selectCategoryButton(btn){\n    const cat = btn?.dataset?.category || null;\n    if (!cat) return;\n    menu.querySelectorAll('.category-button').forEach(b=>{\n      b.setAttribute('aria-pressed','false'); b.classList.remove('is-selected');\n    });\n    btn.setAttribute('aria-pressed','true'); btn.classList.add('is-selected');\n    notifySelection(cat);\n\n    if (window.innerWidth < 768){\n      const y = (document.getElementById('mapAnchor')?.offsetTop || 0) - wrap.offsetHeight;\n      window.scrollTo({ top:y, behavior:'smooth' });\n    }\n  }\n\n  menu.addEventListener('click', e=>{\n    const btn = e.target.closest('.category-button');\n    if (btn) selectCategoryButton(btn);\n  });\n\n  menu.addEventListener('keydown', (e)=>{\n    const current = document.activeElement.closest('.category-button');\n    if (!current) return;\n    const buttons = Array.from(menu.querySelectorAll('.category-button'));\n    const i = buttons.indexOf(current);\n\n    if (e.key === 'Enter' || e.key === ' '){\n      e.preventDefault(); selectCategoryButton(current);\n    } else if (e.key === 'ArrowRight'){\n      e.preventDefault(); (buttons[i+1]||buttons[i]).focus({preventScroll:false});\n      menu.scrollBy({ left: Math.max(120, current.offsetWidth), behavior:'smooth' });\n    } else if (e.key === 'ArrowLeft'){\n      e.preventDefault(); (buttons[i-1]||buttons[i]).focus({preventScroll:false});\n      menu.scrollBy({ left: -Math.max(120, current.offsetWidth), behavior:'smooth' });\n    }\n  });\n\n  function refreshArrows(){\n    const max = menu.scrollWidth - menu.clientWidth;\n    const atStart = menu.scrollLeft <= 0;\n    const atEnd   = menu.scrollLeft >= Math.max(0, max - 1);\n    wrap.classList.toggle('show-left',  max > 0 && !atStart);\n    wrap.classList.toggle('show-right', max > 0 && !atEnd);\n  }\n  left.addEventListener('click', ()=> menu.scrollBy({ left: -menu.clientWidth*0.6, behavior:'smooth' }));\n  right.addEventListener('click',()=> menu.scrollBy({ left:  menu.clientWidth*0.6, behavior:'smooth' }));\n  menu.addEventListener('scroll', refreshArrows);\n  window.addEventListener('resize', refreshArrows);\n\n  if (document.fonts && document.fonts.ready){ document.fonts.ready.then(refreshArrows); }\n  const imgs = menu.querySelectorAll('img');\n  let pending = imgs.length;\n  if (pending === 0) refreshArrows();\n  imgs.forEach(img=>{\n    if (img.complete) { if(--pending===0) refreshArrows(); }\n    else img.addEventListener('load', ()=>{ if(--pending===0) refreshArrows(); }, {once:true});\n  });\n\n  refreshArrows();\n})();\n<\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-479ac71 e-con-full e-flex e-con e-parent\" data-id=\"479ac71\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8dcb6c6 elementor-widget elementor-widget-html\" data-id=\"8dcb6c6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<head>\n  <title>Oplevelser i Nordjylland | Toppen af Danmark <\/title>\n  <meta name=\"description\" content=\"Kort over oplevelser i Nordjylland: gallerier, antik, genbrug og kunsth\u00e5ndv\u00e6rk i Vendsyssel\">\n  <script type=\"application\/ld+json\">\n  {\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"WebPage\",\n    \"name\": \"Oplevelser i Nordjylland\",\n    \"description\": \"Kort over oplevelser i Nordjylland: gallerier, genbrugsbutikker, antik & kunsth\u00e5ndv\u00e6rk i Vendsyssel\",\n    \"hasMap\": \"https:\/\/slowguide.dk\/\u2026\"\n  }\n  <\/script>\n<\/head>\n\n\n\n<div id=\"search-container\" style=\"position:absolute; top:4rem; left:1rem; transform:none; z-index:2000; width:calc(100% - 2rem); max-width:400px;\">\n  <div class=\"flex items-center bg-white rounded shadow\">\n    <input id=\"search-input\" type=\"text\" class=\"flex-1 p-3 outline-none\" placeholder=\"S\u00f8g\u2026\" \/>\n    <button id=\"search-btn\" class=\"p-3\"><i class=\"fa fa-search\"><\/i><\/button>\n  <\/div>\n  <ul id=\"search-results\" class=\"bg-white rounded-b overflow-auto max-h-60 hidden\"><\/ul>\n<\/div>\n<!-- Map -->\n<div id=\"map\"><\/div>\n\n<!-- Info panel -->\n<div id=\"info-panel\"><\/div>\n\n<!-- Chat toggle bubble -->\n<div id=\"chat-toggle-btn\"><i class=\"fa fa-comments\"><\/i><\/div>\n\n<!-- Chat widget -->\n<div id=\"chat-widget\" class=\"notranslate\" translate=\"no\">\n  <div class=\"close-btn\" onclick=\"document.getElementById('chat-widget').classList.remove('open')\">\n    &times;\n  <\/div>\n\n  <div id=\"chat-log\">\n    <div class=\"msg ai\"><span>Hej! Hvad kan jeg hj\u00e6lpe dig med?<\/span><\/div>\n  <\/div>\n\n  <div id=\"chat-input-wrapper\" class=\"flex items-center border-t border-gray-200\">\n    <input\n      id=\"chat-input\"\n      class=\"flex-1 p-3 outline-none\"\n      placeholder=\"Skriv din besked\u2026\"\n      enterkeyhint=\"send\"\n      onkeydown=\"if(event.key==='Enter') sendChat()\"\n    \/>\n    <button\n      id=\"chat-send-btn\"\n      class=\"w-12 h-12 flex-shrink-0 flex items-center justify-center text-xl text-white bg-blue-600 hover:bg-blue-700\"\n      title=\"Send besked\"\n    >\n      <i class=\"fa fa-paper-plane\"><\/i>\n    <\/button>\n  <\/div>\n\n<!-- Tailwind for styling (optional) -->\n<script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n\n<!-- FontAwesome -->\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins&display=swap\" rel=\"stylesheet\">\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.0\/css\/all.min.css\" integrity=\"sha512-...\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\" \/>\n\n<!-- Style-->\n<style>\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 MAP \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#map {\n  height: 100svh;\n  padding-bottom: 80px;\n  box-sizing: border-box;\n  width: 100%;\n}\n\n\n\n\n\/* Mobile override for map height *\/\n@media (max-width: 1024px) {\n  #map {\n    height: 100svh;\n  }\n}\n\n\n\/* Mobile override for map height *\/\n@media (max-width: 768px) {\n  #map {\n    height: 100svh;\n  }\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 INFO PANEL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n\n\/* MOBILE (bottom pop-up) *\/\n#info-panel {\n  position: fixed;\n  bottom: 250%;\n  left: 50%;\n  transform: translateX(-50%);\n  width: 90%;\n  max-width: 400px;\n  height: 200px;\n  background: white;\n  padding: 1rem;\n  border-radius: 20px 20px 0 0;\n  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.25);\n  overflow-y: auto;\n  transition: bottom 0.3s ease;\n  z-index: 2000;\n}\n\n#info-panel.open {\n  bottom: 200px;\n  padding-bottom: 220px;\n}\n\n\/* DESKTOP (side panel) *\/\n@media (min-width: 780px) {\n  #info-panel {\n    top: 40%;\n    bottom: 80px;\n    left: -400px;\n    transform: none;\n    width: 360px;\n    height: 600px;\n    max-height: calc(100vh - 160px);\n    \n    border-radius: 0px 20px 20px 0px;  \/* \u2190 fixes your screenshot issue *\/\n    box-shadow: 4px 0 16px rgba(0, 0, 0, 0.25);\n    overflow-y: auto;\n    transition: left 0.3s ease;\n    scrollbar-gutter: stable;\n  }\n\n  #info-panel.open {\n    left: 0;\n  }\n\n  #info-panel::-webkit-scrollbar {\n    width: 8px;\n  }\n\n  #info-panel::-webkit-scrollbar-thumb {\n    background: rgba(0, 0, 0, 0.3);\n    border-radius: 4px;\n  }\n}\n\n\n\/* add at the bottom of your <style> block *\/\n\n#info-panel img {\n  width: 100%;\n  height: 180px;        \/* fixed height *\/\n  object-fit: cover;    \/* crop to fill *\/\n  border-top-left-radius: 20px;\n  border-top-right-radius: 20px;\n}\n\n#info-panel .category-badge {\n  position: absolute;\n  top: 1rem;\n  right: 1rem;\n  display: flex;\n  align-items: center;\n  background: rgba(255,255,255,0.9);\n  padding: 0.25rem 0.5rem;\n  border-radius: 1rem;\n  font-size: 0.875rem;\n}\n\n#info-panel .category-badge img {\n  width: 1rem;\n  height: 1rem;\n  margin-left: 0.3rem;\n}\n\n\n\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 CHAT TOGGLE BUBBLE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#chat-toggle-btn {\n  position: fixed;\n  bottom: 12rem;\n  right: 1rem;\n  width: 56px;\n  height: 56px;\n  background: #007bff;\n  color: white;\n  border-radius: 50%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  font-size: 24px;\n  z-index: 2000;\n  cursor: pointer;\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);\n}\n\n\/* CHAT WIDGET *\/\n#chat-widget {\n  position: fixed;\n  bottom: 16rem;\n  right: 1rem;\n  width: 320px;\n  max-width: 90%;\n  background: #fff;\n  border-radius: 12px;\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\n  display: none;\n  flex-direction: column;\n  z-index: 2000;\n  font-family: sans-serif;\n}\n\n#chat-widget.open {\n  display: flex;\n}\n\n#chat-widget .close-btn {\n  position: absolute;\n  top: 0.5rem;\n  right: 0.75rem;\n  font-size: 1.5rem;\n  color: #333;\n  cursor: pointer;\n  z-index: 2000;\n}\n\n#chat-log {\n  flex: 1;\n  max-height: 200px;\n  overflow-y: auto;\n  padding: 0.75rem;\n  background: #f0f4f8;\n  border-bottom: 1px solid #e2e8f0;\n}\n\n#chat-input {\n  border: none;\n  border-top: 1px solid #e2e8f0;\n  padding: 0.75rem 1rem;\n  font-size: 1rem;\n  outline: none;\n  width: 100%;\n}\n\n\/* CHAT MESSAGE BUBBLES *\/\n.msg {\n  margin: 0.5rem 0;\n  max-width: 80%;\n}\n.msg.user {\n  margin-left: auto;\n  text-align: right;\n}\n.msg.ai {\n  margin-right: auto;\n  text-align: left;\n}\n.msg span {\n  display: inline-block;\n  padding: 0.5rem 0.75rem;\n  border-radius: 1rem;\n}\n.msg.user span {\n  background: #007bff;\n  color: white;\n  border-bottom-right-radius: 0;\n}\n.msg.ai span {\n  background: #e2e8f0;\n  color: #111;\n  border-bottom-left-radius: 0;\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 MOBILE CHAT POSITION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@media (max-width: 767px) {\n  #chat-toggle-btn {\n    position: absolute;\n    top: 10rem;\n    right: 0.5rem;\n    bottom: auto;\n    left: auto;\n    transform: none;\n    z-index: 3000;\n  }\n\n  #chat-widget {\n    top: 200px;\n    bottom: auto;\n    right: 0.5rem;\n    left: auto;\n    width: 90vw;\n    max-width: 340px;\n     z-index: 4000;\n  }\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 MAP MARKER LABEL (OPTIONAL) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.marker-label {\n  background: rgba(0, 0, 0, 0.7);\n  padding: 2px 6px;\n  border-radius: 4px;\n  transform: translateY(-10px);\n  white-space: nowrap;\n}\n\n\/* \u2500\u2500\u2500 MOBIL: st\u00f8rre \u00e5bent POI-panel + swipe-hint \u2500\u2500\u2500\u2500\u2500 *\/\n@media (max-width: 767px) {\n  \/* Tillad auto-h\u00f8jde op til 50vh, s\u00e5 titel og tekst ogs\u00e5 vises *\/\n  #info-panel {\n    height: auto;\n    max-height: 50vh;\n  }\n  #info-panel.open {\n    bottom: 0;\n    height: auto;\n    max-height: 50vh;\n  }\n\n\n \/* only show when panel has overflow *\/\n#info-panel.has-overflow::after {\n  content: '\u2b06\ufe0f Swipe for mere';\n  position: absolute;\n  bottom: 8px;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(255,255,255,0.9);\n  padding: 4px 8px;\n  border-radius: 12px;\n  font-size: 0.75rem;\n  pointer-events: none;\n}\n\n  \/* G\u00f8r X-knappen lettere at ramme *\/\n  #info-panel .close-btn {\n    width: 32px;\n    height: 32px;\n    padding: 8px;\n    font-size: 1.75rem;\n  }\n    \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 POI LABEL STYLING \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .poi-label {\n    transform: translateY(-25px);\n    white-space: nowrap;\n    text-shadow: 0 0 2px rgba(0,0,0,0.6);\n  }\n}\n\n#chat-input-wrapper {\n  background: #fff;\n}\n\n#chat-input-wrapper input {\n  \/* fjern browser-specifik margin\/padding p\u00e5 mobil *\/\n  margin: 0;\n}\n\n#chat-send-btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n<\/style>\n\n\n<style>\n\/* Scoped search bar styling *\/\n#search-container {\n  position: absolute !important;\n  top: 2rem !important;\n  left: 1rem !important;\n  width: calc(100% - 2rem) !important;\n  max-width: 400px !important;\n  transform: none !important;\n  z-index: 2000 !important;\n}\n\n\n\/* Mobile override for map height *\/\n@media (max-width: 768px) {\n #search-container {\n  top: 2rem !important;\n\n}\n}\n\n#search-container .flex.items-center {\n  background: white !important;\n  border: none !important;\n  box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;\n}\n#search-container #search-input {\n  flex: 1 !important;\n  padding: 0.75rem !important;\n  outline: none !important;\n  border: none !important;\n  box-sizing: border-box !important;\n}\n#search-container #search-btn {\n  padding: 0.75rem !important;\n  border: none !important;\n  background: none !important;\n  cursor: pointer !important;\n}\n#search-container #search-results {\n  background: white !important;\n  border: 1px solid #ddd !important;\n  border-top: none !important;\n  max-height: 60vh !important;\n  overflow: auto !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  list-style: none !important;\n}\n#search-container #search-results.hidden {\n  display: none !important;\n}\n#search-container #search-results li {\n  padding: 0.5rem 1rem !important;\n  cursor: pointer !important;\n}\n#search-container #search-results li:hover {\n  background: #f0f0f0 !important;\n}\n<\/style>\n\n<style>\n@media (max-width: 768px) {\n  #search-container {\n    top: 2rem;\n    left: 1rem;\n    right: auto;\n    width: calc(100% - 2rem);\n    max-width: none;\n    transform: none;\n  }\n}\n<\/style>\n\n\n\n<style>\n\/* Carousel slides *\/\n.info-carousel, .review-carousel {\n  position: relative;\n  overflow: hidden;\n  border-radius: 12px;\n  margin-bottom: 1rem;\n}\n.carousel-slide {\n  display: none;\n  width: 100%;\n}\n.carousel-slide.active {\n  display: block;\n}\n.carousel-nav {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  font-size: 1.5rem;\n  background: rgba(255,255,255,0.8);\n  border-radius: 50%;\n  width: 32px;\n  height: 32px;\n  text-align: center;\n  line-height: 32px;\n  cursor: pointer;\n}\n.carousel-nav.prev { left: 8px; }\n.carousel-nav.next { right: 8px; }\n\n\/* Hide arrows on the review carousel *\/\n.review-carousel .carousel-nav {\n  display: none;\n}\n\n\/* Icon buttons *\/\n.btn-route, .btn-website {\n  width: 40px; height: 40px; border-radius: 50%;\n  display: inline-flex; justify-content: center; align-items: center;\n  margin-right: 0.5rem; cursor: pointer; border: none;\n}\n.btn-route { background: #cceeff; color: #0077cc; }\n.btn-website { background: #ffddee; color: #cc0066; }\n\n\/* Opening hours list spacing *\/\n.opening-hours li {\n  font-size: 0.875rem;\n  line-height: 1.4;\n  color: #333;\n  margin-bottom: 0.25rem;\n}\n\n\/* More breathing room under section headings *\/\n.p-4 h2 {\n  margin-bottom: 1rem;\n}\n\/* Rating buttons *\/\n.rating { margin-top: 0.5rem; display: flex; gap: 0.5rem; }\n.rate-btn { background: transparent; border: none; font-size: 1.2rem; cursor: pointer; }\n<\/style>\n\n\n\n<script>\n    const categories = [\n  \n  \n  \/* Gallerier *\/\n  \n  {\n    id: \"galleri\",\n    label: \"Gallerier\",\n    items: [\n          {\n  name: \"Dot Keramik\",\n  categoryId: \"galleri\",\n  lat: 57.4941089,\n  lng: 10.4594661,\n  addr: \"Skagensvej 270, 9970 Strandby\",\n  photo: \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Dot-Keramik-Frederikshavn-3.jpg\",\n  desc: \"Unikke keramiske v\u00e6rker og kunsth\u00e5ndv\u00e6rk \u2013 skabt med omhu i natursk\u00f8nne Strandby.\"\n},\n\n  \/* Insert new galleri here *\/\n  \n  \n{\n  name: \"Galleri Bo\",\n  categoryId: \"galleri\",\n  lat: 57.72139655307935,\n  lng: 10.589188200895048,\n  addr: \"Havnevej 10, 9990 Skagen\",\n  photo: \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Galleri-BO-Skagen-1.jpg\",\n  desc: \"Galleri med moderne kunst og malerier inspireret af Skagens lys og landskab.\"\n},\n\n  \n{\n  name: \"Glashuset\",\n  categoryId: \"galleri\",\n  lat: 57.3313029,\n  lng: 10.5264821,\n  addr: \"Gasv\u00e6rksvej 40B, 9300 S\u00e6by\",\n  photo: \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Glashuset-Saeby-3.jpg\",\n  desc: \"H\u00e5ndlavet glaskunst i alverdens former og farver \u2013 bes\u00f8g det kreative v\u00e6rksted i S\u00e6by.\"\n},\n{\n  name: \"Rav-v\u00e6rkstedet\",\n  categoryId: \"galleri\",\n  lat: 57.5411431,\n  lng: 10.0857488,\n  addr: \"H\u00f8jtvedvej 7, Mygdal, 9800 Hj\u00f8rring\",\n  photo: \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Rav-vaerkstedet-3.jpg\",\n  desc: \"Autentisk ravv\u00e6rksted i Mygdal \u2013 smykker og skulpturer skabt af \u00e6gte dansk rav.\"\n},\n{\n  name: \"&Os\",\n  categoryId: \"galleri\",\n  lat: 57.46043784519593,\n  lng: 9.986736540264282,\n  addr: \"Str\u00f8mgade 2A, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Art by Line Elliott\",\n  categoryId: \"galleri\",\n  lat: 57.46492290814697,\n  lng: 9.979398897935045,\n  addr: \"Aldersh\u00f8jvej 5, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Art Caf\u00e9 - Tolne Gj\u00e6stgivergaard\",\n  categoryId: \"galleri\",\n  lat: 57.485764044637364,\n  lng: 10.31440445560667,\n  addr: \"Kirkevej 300, 9870 Sindal\",\n},\n{\n  name: \"Art VisTen's Galleri-have og kunsth\u00e5ndv\u00e6rk\",\n  categoryId: \"galleri\",\n  lat: 57.4575512852623,\n  lng: 9.92901609608775,\n  addr: \"L\u00f8kkensvej 335, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Artbreak Hotel\",\n  categoryId: \"galleri\",\n  lat: 57.04516964379072,\n  lng: 9.922493524901908,\n  addr: \"Danmarksgade 62, 9000 Aalborg\",\n},\n{\n  name: \"Art-Lui\",\n  categoryId: \"galleri\",\n  lat: 57.16724646609905,\n  lng: 9.41971624024925,\n  addr: \"Strandvejen 143A, 1., Tranum, 9460 Brovst\",\n},\n{\n  name: \"Atelier Annipe\",\n  categoryId: \"galleri\",\n  lat: 57.08604308963863,\n  lng: 9.259784926750894,\n  addr: \"Godth\u00e5bsvej 37, 9690 Fjerritslev\",\n},\n{\n  name: \"Atelier Jane Aagot\",\n  categoryId: \"galleri\",\n  lat: 57.25916033594808,\n  lng: 9.6470016690892,\n  addr: \"F\u00e5rupvej 190, 9493 Saltum\",\n},\n{\n  name: \"Atelier Olsson\",\n  categoryId: \"galleri\",\n  lat: 57.047535178469154,\n  lng: 9.916371282572614,\n  addr: \"Jernbanegade 10, 1 sal, 9000 Aalborg\",\n},\n{\n  name: \"Betina Jung Art Studio\",\n  categoryId: \"galleri\",\n  lat: 57.04792857673872,\n  lng: 9.937363540243167,\n  addr: \"\u00d8stre Havnegade 26, 9000 Aalborg\",\n},\n{\n  name: \"Boutique Cornelius\",\n  categoryId: \"galleri\",\n  lat: 57.30768560292903,\n  lng: 11.146539640256481,\n  addr: \"Gammel \u00d8sterbyvej 33, 9940 L\u00e6s\u00f8\",\n},\n{\n  name: \"Bruunsatelier\",\n  categoryId: \"galleri\",\n  lat: 56.99421300305456,\n  lng: 10.307076042087258,\n  addr: \"Torvet 9, 9370 Hals\",\n},\n{\n  name: \"by Ravbjerg v\/Annemette Madsen\",\n  categoryId: \"galleri\",\n  lat: 57.33463584126791,\n  lng: 10.516140355598948,\n  addr: \"Vestergade 9, 9300 S\u00e6by\",\n},\n{\n  name: \"Colours of Kattegat\",\n  categoryId: \"galleri\",\n  lat: 57.02029127687936,\n  lng: 10.23092321140646,\n  addr: \"M\u00f8lholtvej 4, 9370 Hals\",\n},\n{\n  name: \"Det grafiske v\u00e6rksted - Hj\u00f8rring\",\n  categoryId: \"galleri\",\n  lat: 57.46332997460933,\n  lng: 9.982420496088109,\n  addr: \"N\u00f8rregade 35A, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Det Gr\u00e5 Fyr\",\n  categoryId: \"galleri\",\n  lat: 57.735739821259365,\n  lng: 10.630478855619545,\n  addr: \"Fyrvej 36, 9990 Skagen\",\n},\n{\n  name: \"Det lille galleri v\/ Anna Maria Kornum\",\n  categoryId: \"galleri\",\n  lat: 57.137462471382094,\n  lng: 9.3475403954646,\n  addr: \"Hjortdalvej 121, Hjortdal, 9690 Fjerritslev\",\n},\n{\n  name: \"Dethsg\u00e5rd \/ L\u00e6s\u00f8 Artes\",\n  categoryId: \"galleri\",\n  lat: 57.26906409017795,\n  lng: 11.069183384430792,\n  addr: \"Stoklundvejen 28, Byrum, 9940 L\u00e6s\u00f8\",\n},\n{\n  name: \"DETTE FORM Studio\",\n  categoryId: \"galleri\",\n  lat: 57.31995067125134,\n  lng: 11.126146053751262,\n  addr: \"\u00d8sterby Havnegade 2B, 9940 L\u00e6s\u00f8\",\n},\n{\n  name: \"Dronninglund Kunstcenter\",\n  categoryId: \"galleri\",\n  lat: 57.16765090369774,\n  lng: 10.257900664976082,\n  addr: \"Thorup Hedevej 1, 9330 Dronninglund\",\n},\n{\n  name: \"Ena Strand\",\n  categoryId: \"galleri\",\n  lat: 57.72523922122524,\n  lng: 10.596702455212393,\n  addr: \"Sankt Laurentii Vej 4b, 9990 Skagen\",\n},\n{\n  name: \"Galerie Provence\",\n  categoryId: \"galleri\",\n  lat: 57.112933136951405,\n  lng: 9.853715742093364,\n  addr: \"Charles Lindberghs Vej 5, 9430 Vadum\",\n},\n{\n  name: \"Galleri 7\",\n  categoryId: \"galleri\",\n  lat: 57.448968173837926,\n  lng: 10.527332706604506,\n  addr: \"Constantiavej 7, 9900 Frederikshavn\",\n},\n{\n  name: \"Galleri A\",\n  categoryId: \"galleri\",\n  lat: 57.47270566546677,\n  lng: 9.79784024296614,\n  addr: \"Strandvejen 94, L\u00f8nstrup, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Galleri Anne Julie\",\n  categoryId: \"galleri\",\n  lat: 57.259906921951064,\n  lng: 10.895726549977233,\n  addr: \"Sdr. Kirkevej 8, 9940 L\u00e6s\u00f8\",\n},\n{\n  name: \"Galleri B \/ Lenettes Galleri\",\n  categoryId: \"galleri\",\n  lat: 57.01112197025057,\n  lng: 8.585626674823338,\n  addr: \"Lien 12, Vester Vandet, 7700 Thisted\",\n},\n{\n  name: \"Galleri Bl\u00e6st - For the Joy of Art\",\n  categoryId: \"galleri\",\n  lat: 57.02917531798466,\n  lng: 9.67591952531084,\n  addr: \"Klithusevej 25, 9240 Nibe\",\n},\n\n{\n  name: \"Galleri Baand\",\n  categoryId: \"galleri\",\n  lat: 57.15958748507958,\n  lng: 10.292622847325399,\n  addr: \"Slotsgade 53, 9330 Dronninglund\",\n},\n{\n  name: \"Galleri Dorte Friis\",\n  categoryId: \"galleri\",\n  lat: 57.47097425279127,\n  lng: 9.796654935340781,\n  addr: \"Strandvejen 71, L\u00f8nstrup, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Galleri Engen 5\",\n  categoryId: \"galleri\",\n  lat: 56.7609504272137,\n  lng: 8.324320417212,\n  addr: \"Engen 5, 7770 Vestervig\",\n},\n{\n  name: \"Galleri Flyvsand\",\n  categoryId: \"galleri\",\n  lat: 57.463099619143335,\n  lng: 9.79715908170154,\n  addr: \"Rubjergvej 51, L\u00f8nstrup, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Galleri Friis V\/Nina Charlotte F Christiansen\",\n  categoryId: \"galleri\",\n  lat: 57.370826824869,\n  lng: 9.709786419299997,\n  addr: \"Sdr. Strandvej 3, 9480 L\u00f8kken\",\n},\n{\n  name: \"Galleri Glocal Art\",\n  categoryId: \"galleri\",\n  lat: 57.17961481024797,\n  lng: 10.335239637600237,\n  addr: \"Dorfvej 28, 9330 Dronninglund\",\n},\n{\n  name: \"Galleri Gloria\",\n  categoryId: \"galleri\",\n  lat: 57.443062366413066,\n  lng: 9.99926270653056,\n  addr: \"Poppelvej 4, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Galleri Grenen\",\n  categoryId: \"galleri\",\n  lat: 57.73975142373286,\n  lng: 10.633979602554176,\n  addr: \"Fyrvej 40 - 9990 Skagen\",\n},\n{\n  name: \"Galleri Hou\",\n  categoryId: \"galleri\",\n  lat: 57.05950333070075,\n  lng: 10.37242025892765,\n  addr: \"N\u00f8rregade 19, Hou, 9370 Hals\",\n},\n{\n  name: \"Galleri Jensby\",\n  categoryId: \"galleri\",\n  lat: 57.730923710791025,\n  lng: 10.546719430062094,\n  addr: \"Skagbanke 30, 9990 Skagen\",\n},\n{\n  name: \"Galleri K Larsen\",\n  categoryId: \"galleri\",\n  lat: 57.46660966012946,\n  lng: 9.797555115851956,\n  addr: \"Rubjergvej 21, 9800 L\u00f8nstrup\",\n},\n{\n  name: \"Galleri Karin \u00d8\",\n  categoryId: \"galleri\",\n  lat: 56.90046664506975,\n  lng: 8.6282880315244,\n  addr: \"\u00c5svej 43, 7700 Thisted\",\n},\n{\n  name: \"Galleri Kronens Hede\",\n  categoryId: \"galleri\",\n  lat: 56.99545022519175,\n  lng: 8.534235334028075,\n  addr: \"Kronens Hede Vej 12, 7700 Thisted\",\n},\n{\n  name: \"Galleri Kunstlade Gj\u00f8l\",\n  categoryId: \"galleri\",\n  lat: 57.067666331118254,\n  lng: 9.71417324032674,\n  addr: \"Limfjordsgade 69, Gj\u00f8l, 9440 Aabybro\",\n},\n{\n  name: \"Galleri Lien\",\n  categoryId: \"galleri\",\n  lat: 57.14279710458231,\n  lng: 9.362724119066705,\n  addr: \"Slettestrandvej 82, Slettestrand, 9690 Fjerritslev\",\n},\n{\n  name: \"Galleri L\u00f8kken\",\n  categoryId: \"galleri\",\n  lat: 57.37059489579692,\n  lng: 9.711940586654704,\n  addr: \"Vrenstedvej 4, 9480 L\u00f8kken\",\n},\n{\n  name: \"Galleri L\u00f8nstrup\",\n  categoryId: \"galleri\",\n  lat: 57.470472073810164,\n  lng: 9.796885420284918,\n  addr: \"Strandvejen 64, L\u00f8nstrup, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Galleri Marlene\",\n  categoryId: \"galleri\",\n  lat: 57.28728292572022,\n  lng: 10.09486802078184,\n  addr: \"Ly\u00f8gade 8, 9740 Jerslev J\",\n},\n{\n  name: \"Galleri Matique\",\n  categoryId: \"galleri\",\n  lat: 57.45985288300288,\n  lng: 9.983932581581962,\n  addr: \"Dronningensgade 2, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Galleri Mlh\",\n  categoryId: \"galleri\",\n  lat: 57.364649458851346,\n  lng: 9.838325077860176,\n  addr: \"Vr\u00e5vej 510, B\u00f8rglum, 9760 Vr\u00e5\",\n},\n{\n  name: \"Galleri Molevit\",\n  categoryId: \"galleri\",\n  lat: 57.72236326197504,\n  lng: 10.592103338502218,\n  addr: \"Jens Klarupsvej 1, 9990 Skagen\",\n},\n{\n  name: \"Galleri Munk\",\n  categoryId: \"galleri\",\n  lat: 57.71527281896815,\n  lng: 10.58146697567879,\n  addr: \"Vestkajen 6, 9990 Skagen\",\n},\n{\n  name: \"Galleri Munkholm\",\n  categoryId: \"galleri\",\n  lat: 57.22222529119868,\n  lng: 9.675400302663014,\n  addr: \"Korsgade 4, 9490 Pandrup\",\n},\n{\n  name: \"Galleri Pallisgaard\",\n  categoryId: \"galleri\",\n  lat: 57.051520153456266,\n  lng: 10.178126704009417,\n  addr: \"Gl. Kongevej 32, 9362 Gandrup\",\n},\n{\n  name: \"Galleri PondCottage Art\",\n  categoryId: \"galleri\",\n  lat: 57.34991532583588,\n  lng: 9.780947166385527,\n  addr: \"Munkebrovej 48, Vrensted, 9480 L\u00f8kken\",\n},\n{\n  name: \"Galleri Quistgaard\",\n  categoryId: \"galleri\",\n  lat: 57.46660549911582,\n  lng: 9.79755402716655,\n  addr: \"Rubjergvej 21, L\u00f8nstrup, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Galleri R\u00f8dhusgaarden\",\n  categoryId: \"galleri\",\n  lat: 57.21821163728851,\n  lng: 9.572244125721252,\n  addr: \"Kystvejen 91, R\u00f8dhus, 9490 Pandrup\",\n},\n{\n  name: \"Galleri Salshus\",\n  categoryId: \"galleri\",\n  lat: 57.03890522778157,\n  lng: 8.65688201919942,\n  addr: \"D\u00f8jholtvej 15, 7700 Thisted\",\n},\n{\n  name: \"Galleri Sandl\u00f8beren\",\n  categoryId: \"galleri\",\n  lat: 57.252083697328445,\n  lng: 9.584689285058385,\n  addr: \"Torvet 3, 9492 Blokhus + Kalstrup Livsstilshus 1. sal\",\n},\n\n{\n  name: \"Galleri Skovklovnen i R\u00f8dhus\",\n  categoryId: \"galleri\",\n  lat: 57.21824276968425,\n  lng: 9.572285830939846,\n  addr: \"R\u00f8dhusvej 245, R\u00f8dhus, 9490 Pandrup\",\n},\n{\n  name: \"Galleri Stender\",\n  categoryId: \"galleri\",\n  lat: 57.05425273673624,\n  lng: 10.366819612227378,\n  addr: \"Havblink 1, 9370 Hals\",\n},\n{\n  name: \"Galleri Stentoft\",\n  categoryId: \"galleri\",\n  lat: 57.124041727671354,\n  lng: 9.449896057823755,\n  addr: \"Hjortdalvej 385, Tranum, 9460 Brovst\",\n},\n{\n  name: \"Galleri Strid\",\n  categoryId: \"galleri\",\n  lat: 57.191406262836935,\n  lng: 10.104722819317413,\n  addr: \"Bj\u00f8rnb\u00e6kvej 50, 9320 Hjallerup\",\n},\n{\n  name: \"Galleri Tobar\",\n  categoryId: \"galleri\",\n  lat: 57.334676277930775,\n  lng: 10.51866358271398,\n  addr: \"Vestergade 28, 9300 S\u00e6by\",\n},\n{\n  name: \"Galleri Tornby\",\n  categoryId: \"galleri\",\n  lat: 57.57793699968789,\n  lng: 10.16340797278351,\n  addr: \"Skagensvej 53B, 9881 Bindslev\",\n},\n{\n  name: \"Galleri Tronsmark\",\n  categoryId: \"galleri\",\n  lat: 57.549192547176766,\n  lng: 10.174417425981519,\n  addr: \"Hirtshalsvej 11, Bindslev, 9881 Bindslev\",\n},\n{\n  name: \"Galleri T\u00f8rvejr\",\n  categoryId: \"galleri\",\n  lat: 57.29188989383234,\n  lng: 10.923791673154163,\n  addr: \"Vester\u00f8 Havnegade 25, 9940 L\u00e6s\u00f8\",\n},\n{\n  name: \"Galleri Uggerby v\/Erik Jacobsen\",\n  categoryId: \"galleri\",\n  lat: 57.57065305599974,\n  lng: 10.107273286538321,\n  addr: \"Tolstrupvej 1, Uggerby, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Galleri Unika Kunst\",\n  categoryId: \"galleri\",\n  lat: 57.327933031336116,\n  lng: 9.701629524680374,\n  addr: \"Trudslevvej 45, 9480 L\u00f8kken\",\n},\n{\n  name: \"Galleri Valdemar\",\n  categoryId: \"galleri\",\n  lat: 57.33373062121091,\n  lng: 10.515310260528805,\n  addr: \"Gr\u00f8nnegade 6A, 9300 S\u00e6by\",\n},\n{\n  name: \"Galleri Vand\",\n  categoryId: \"galleri\",\n  lat: 57.46839432473193,\n  lng: 9.796259617799551,\n  addr: \"Rubjergvej 8, L\u00f8nstrup, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Galleri Virak\",\n  categoryId: \"galleri\",\n  lat: 57.44158756502751,\n  lng: 10.536935548067738,\n  addr: \"Danmarksgade 44, 9900 Frederikshavn\",\n},\n{\n  name: \"Galleri Visby\",\n  categoryId: \"galleri\",\n  lat: 57.463466370151835,\n  lng: 9.787404511040734,\n  addr: \"M\u00e5rup Kirkevej 62, L\u00f8nstrup, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Galleributikken Kystens Kunst og H\u00e5ndv\u00e6rk\",\n  categoryId: \"galleri\",\n  lat: 57.15329822023769,\n  lng: 9.364339726364237,\n  addr: \"Slettestrandvej 162, Slettestrand, 9690 Fjerritslev\",\n},\n{\n  name: \"Gallerie Rasmus\",\n  categoryId: \"galleri\",\n  lat: 57.724651993773186,\n  lng: 10.595887039889117,\n  addr: \"Sct. Laurentii Vej 13, 9990 Skagen\",\n},\n{\n  name: \"Gallerie Wolfsen\",\n  categoryId: \"galleri\",\n  lat: 57.047996639112185,\n  lng: 9.91625956868909,\n  addr: \"Tiendeladen 6, 9000 Aalborg + Sct. Laurentii Vej 80, 9990 Skagen\",\n},\n{\n  name: \"Gr\u00f8nfelt V\u00e6rksted og Galleri\",\n  categoryId: \"galleri\",\n  lat: 57.59031777988085,\n  lng: 9.95523596871704,\n  addr: \"Hj\u00f8rringgade 7, 9850 Hirtshals\",\n},\n{\n  name: \"G\u00f8gsigs Pakhus Sindal\",\n  categoryId: \"galleri\",\n  lat: 57.47239667030185,\n  lng: 10.201440326380697,\n  addr: \"Torvegade 22, 9870 Sindal\",\n},\n{\n  name: \"HAGD Contemporary ApS\",\n  categoryId: \"galleri\",\n  lat: 57.04411488346504,\n  lng: 9.918181139853996,\n  addr: \"Boulevarden 42, st., 9000 Aalborg\",\n},\n{\n  name: \"Hanstholm Kunstforening - Kunstbygningen\",\n  categoryId: \"galleri\",\n  lat: 57.11783662191747,\n  lng: 8.601928068692642,\n  addr: \"Roshagevej 20, 7730 Hanstholm\",\n},\n{\n  name: \"Havneatelier v\/Sonja Hansen\",\n  categoryId: \"galleri\",\n  lat: 56.96893255581589,\n  lng: 9.25051775334548,\n  addr: \"Fjordgade 25, 9670 L\u00f8gst\u00f8r\",\n},\n{\n  name: \"Holms Skulpturgalleri\",\n  categoryId: \"galleri\",\n  lat: 57.490893898391114,\n  lng: 9.941514782207268,\n  addr: \"Dalsmarkvej 27, 9800 Hj\u00f8rring\",\n},\n{\n  name: \"Joan Slotved\",\n  categoryId: \"galleri\",\n  lat: 57.15941970290533,\n  lng: 9.7489739398599,\n  addr: \"Bl\u00e5b\u00e6rvej 24, 9440 Aabybro\",\n},\n{\n  name: \"Karina Meedom Atelier\",\n  categoryId: \"galleri\",\n  lat: 57.72679416254216,\n  lng: 10.60098121289852,\n  addr: \"F\u00e6lledvej 15, 9990 Skagen\",\n},\n{\n  name: \"KIRK Gallery ApS\",\n  categoryId: \"galleri\",\n  lat: 57.045859751932944,\n  lng: 9.916660882184317,\n  addr: \"Danmarksgade 8, st. tv, 9000 Aalborg\",\n},\n{\n  name: \"Kunst for dig\",\n  categoryId: \"galleri\",\n  lat: 57.721683276295536,\n  lng: 10.586342368723846,\n  addr: \"Sct. Laurentii Vej 64, 9990 Skagen\",\n},\n{\n  name: \"Kunst uden rammer\",\n  categoryId: \"galleri\",\n  lat: 56.98257977266175,\n  lng: 9.638219439850829,\n  addr: \"Mellemgade 7b, 9240 Nibe\",\n},\n{\n  name: \"KUNSTART20\",\n  categoryId: \"galleri\",\n  lat: 57.28278055786018,\n  lng: 9.689773924526767,\n  addr: \"Saltum Strandvej 20, 9493 Saltum\",\n},\n{\n  name: \"Kunsthal Thy\",\n  categoryId: \"galleri\",\n  lat: 56.724247885674465,\n  lng: 8.445141712846858,\n  addr: \"Doveroddevej 3, 7760 Hurup Thy\",\n},\n{\n  name: \"Kunstmaler Mogens Andersen\",\n  categoryId: \"galleri\",\n  lat: 57.4836362800419,\n  lng: 9.86908381104175,\n  addr: \"N\u00f8rrem\u00f8llevej 269, Skallerup, 9800 Hj'rring\",\n},\n{\n  name: \"L\u00f8kken Kunstpavillion\",\n  categoryId: \"galleri\",\n  lat: 57.37101184816365,\n  lng: 9.70857702637541,\n  addr: \"Sdr. Strandvej 16A, 9480 L\u00f8kken\",\n},\n{\n  name: \"Mylund Keramik og Galleri\",\n  categoryId: \"galleri\",\n  lat: 57.24509835056401,\n  lng: 9.968214226368938,\n  addr: \"\u00c5lborgvej 187, 9700 Br\u00f8nderslev\",\n},\n{\n  name: \"Rakugalleriet i Slettestrand\",\n  categoryId: \"galleri\",\n  lat: 57.14478425895061,\n  lng: 9.369201039859167,\n  addr: \"Under Lien 51, Slettestrand, 9690 Fjerritslev\",\n},\n{\n  name: \"R\u00f8nne's Atelier og Udstilling\",\n  categoryId: \"galleri\",\n  lat: 57.57788829679412,\n  lng: 10.265819697551263,\n  addr: \"Europavej 11, 9881 Bindslev\",\n},\n{\n  name: \"Skagen Kunsthal\",\n  categoryId: \"galleri\",\n  lat: 57.71628066917265,\n  lng: 10.579924128237415,\n  addr: \"V\u00e6rftsvej 2, 9990 Skagen\",\n},\n{\n  name: \"Skulpturparken Blokhus \/ Park Galleriet\",\n  categoryId: \"galleri\",\n  lat: 57.24860205878876,\n  lng: 9.612274839864517,\n  addr: \"Vesterhavsvej 6, Hune, 9492 Blokhus\",\n},\n{\n  name: \"Slothsgalleriet\",\n  categoryId: \"galleri\",\n  lat: 57.012942828045226,\n  lng: 10.066257768687262,\n  addr: \"St\u00e6revej 1, 9270 Klarup\",\n},\n{\n  name: \"TILGANG\",\n  categoryId: \"galleri\",\n  lat: 57.047077528694714,\n  lng: 9.910188453349516,\n  addr: \"Hasserisgade 10, 9000 Aalborg\",\n},\n{\n  name: \"Tranum Strand Kunst- og Kulturcenter\",\n  categoryId: \"galleri\",\n  lat: 57.16721738082552,\n  lng: 9.419769884034746,\n  addr: \"Strandvejen 143, Tranum Strand, 9460 Brovst\",\n},\n{\n  name: \"Vavasgaard \/ Galleri Valeur\",\n  categoryId: \"galleri\",\n  lat: 57.58723968201612,\n  lng: 10.240450768716867,\n  addr: \"Skagensvej 88, Tversted, 9881 Bindslev\",\n},\n{\n  name: \"V\u00c6G Gallery\",\n  categoryId: \"galleri\",\n  lat: 57.04632528684373,\n  lng: 9.915571124514567,\n  addr: \"Jernbanegade 20A, 9000 Aalborg\",\n},\n{\n  name: \"WORK ON ART \/ Galleri Nordenvind\",\n  categoryId: \"galleri\",\n  lat: 57.33422721668462,\n  lng: 10.523169833750146,\n  addr: \"Algade 14, 9300 S\u00e6by\",\n},\n{\n  name: \"Galleri Vetro\",\n  categoryId: \"galleri\",\n  lat: 57.592396773849856,\n  lng: 9.953994139882296,\n  addr: \"Nordvestkajen 3, 9850 Hirtshals\",\n},\n\n    ]\n  },\n  \n  \n  \n  \n  \n  \n   \/*  Kunsthandvaerk*\/\n  \n  \n  {\n    id: \"kunsthandvaerk\",\n    label: \"Kunsth\u00e5ndv\u00e6rk\",\n    items: [\n       {\n    \"name\": \"Keramikkunst\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.333452836975724,\n    \"lng\": 10.526849997538669,\n    \"addr\": \"Algade 46D, 9300 S\u00e6by\"\n},\n\n  \/*  Insert new kunsthandvaerk here*\/\n  \n  \n{\n    \"name\": \"Billedkunstner John Laursen\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.27862786561118,\n    \"lng\": 9.956250955205572,\n    \"addr\": \"Abelsgade 18, 9700 Br\u00f8nderslev\"\n},\n{\n    \"name\": \"Brammer Design\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.27406037809403,\n    \"lng\": 9.94062191287513,\n    \"addr\": \"Sveavej 15-17, 9700 Br\u00f8nderslev\"\n},\n{\n    \"name\": \"byVogn\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.57873999978549,\n    \"lng\": 10.162839751532772,\n    \"addr\": \"Bettevej 9, Vogn, 9881 Bindslev\"\n},\n{\n    \"name\": \"Dorthe Hansen Keramik\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.590755578085854,\n    \"lng\": 10.185888255221702,\n    \"addr\": \"Gl Skovvej 1B, 9881 Bindslev\"\n},\n{\n    \"name\": \"DOT Keramik\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.49422175314078,\n    \"lng\": 10.462329539877217,\n    \"addr\": \"Skagensvej 270, 9970 Strandby\"\n},\n{\n    \"name\": \"Etly Klarborg - Butik Gammelbo\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.182419664375665,\n    \"lng\": 9.62156111102622,\n    \"addr\": \"R\u00f8dhusvej 201, Moseby, 9490 Pandrup\"\n},\n{\n    \"name\": \"Giebelhausen Keramik\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.46869366059015,\n    \"lng\": 9.796696697545606,\n    \"addr\": \"Rubjergvej 5, 9800 Hj\u00f8rring\"\n},\n{\n    \"name\": \"Glasg\u00e5rden i Thise\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.3087422797473,\n    \"lng\": 9.805174539867604,\n    \"addr\": \"Vrenstedej 16, 9700 Br\u00f8nderslev\"\n},\n{\n    \"name\": \"Glashuset L\u00f8nstrup\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.47102485744377,\n    \"lng\": 9.796955297545738,\n    \"addr\": \"Strandvejen 68, 9800 Hj\u00f8rring\"\n},\n{\n    \"name\": \"Glashuset S\u00e6by\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.33115168615822,\n    \"lng\": 10.528916126373424,\n    \"addr\": \"Gasv\u00e6rksvej 40B, 9300 S\u00e6by\"\n},\n{\n    \"name\": \"Glaspusteriet Rikke Precht\",\n    \"categoryId\":\"kunsthandvaerk\",\n    \"lat\": 57.46900505528964,\n    \"lng\": 9.796930811041,\n    \"addr\": \"Strandvejen 49, 9800 Hj\u00f8rring\"\n},\n{\n    \"name\": \"Gr\u00f8nfeldt V\u00e6rkstedsgalleri v\/Joan Gr\u00f8nfeldt Kristensen\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.59030052889143,\n    \"lng\": 9.955289612891438,\n    \"addr\": \"Hj\u00f8rringgade 7, 9850 Hirtshals\"\n},\n{\n    \"name\": \"HANDMADE by Christine Thuesen\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.088224956936344,\n    \"lng\": 9.265220124516741,\n    \"addr\": \"Vestergade 3, 9690 Fjerritslev\"\n},\n{\n    \"name\": \"Hapeli Keramik og Smykker\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.087389317893376,\n    \"lng\": 9.483191955195688,\n    \"addr\": \"Sandgade 6, Skovsg\u00e5rd, 9460 Brovst\"\n},\n{\n    \"name\": \"Havekunst\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.18684695320582,\n    \"lng\": 10.052737112870599,\n    \"addr\": \"Tylstrupvej 63, 9320 Hjallerup\"\n},\n{\n    \"name\": \"Janice Hunter, Tornby Gl Skole Keramik V\u00e6rksted\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.53137646684264,\n    \"lng\": 9.950254168713979,\n    \"addr\": \"Gl. Skolevej 4A, Tornby, 9850 Hirtshals\"\n},\n{\n    \"name\": \"Jobi Glas i Bedsted Thy\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 56.80683340999293,\n    \"lng\": 8.405838295667415,\n    \"addr\": \"Thylandsgade 18, 7755 Bedsted Thy\"\n},\n{\n    \"name\": \"Kali glas og brugskunst\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.371946376311584,\n    \"lng\": 9.81208456870575,\n    \"addr\": \"Christiandalsvej 8, 9760 Vr\u00e5\"\n},\n{\n    \"name\": \"Kaosfabrikken\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.37263515135426,\n    \"lng\": 9.713074839870906,\n    \"addr\": \"N\u00f8rregade 20, L\u00f8kken\"\n},\n{\n    \"name\": \"Keramik v\/ Cathrine Collart\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.23801899211582,\n    \"lng\": 9.73240023986394,\n    \"addr\": \"Rendb\u00e6kvej 112, 9493 Saltum\"\n},\n{\n    \"name\": \"Keramiker Finn Bukhave\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 56.9274823040288,\n    \"lng\": 8.519345595673617,\n    \"addr\": \"Dybdalsgave 10, Hundborg, 7700 Thisted\"\n},\n{\n    \"name\": \"Keramiker Jette Abildg\u00e5rd\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.20062393894999,\n    \"lng\": 10.154738411027136,\n    \"addr\": \"Hornsh\u00f8jvej 36, 9320 Hjallerup\"\n},\n{\n    \"name\": \"Keramoda\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.469521667934245,\n    \"lng\": 9.79658353987591,\n    \"addr\": \"Strandvejen 56, L\u00f8nstrup, 9800 Hj\u00f8rring\"\n},\n{\n    \"name\": \"Kunst Biksen\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.25361401869875,\n    \"lng\": 11.004562026369404,\n    \"addr\": \"Byrum Hovedhade 66, 9940 L\u00e6s\u00f8\"\n},\n{\n    \"name\": \"Lange Kunsth\u00e5ndv\u00e6rk\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.046449506213946,\n    \"lng\": 9.922833726358705,\n    \"addr\": \"Hjelmerstald 15, 9000 Aalborg\"\n},\n{\n    \"name\": \"L\u00e6se Kunsthal\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.32021696124213,\n    \"lng\": 11.125526012877494,\n    \"addr\": \"Smedievejen 2, 9940 L\u00e6s\u00f8\"\n},\n{\n    \"name\": \"L\u00e6s\u00f8 H\u00e5ndarbejde\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.277915567874196,\n    \"lng\": 10.935270597535792,\n    \"addr\": \"Kongevejen 2, 9940 L\u00e6s\u00f8\"\n},\n{\n    \"name\": \"L\u00e6s\u00f8 Mohair\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.27494817502244,\n    \"lng\": 11.029380955205363,\n    \"addr\": \"Skovvej 8, 9940 L\u00e6s\u00f8\"\n},\n{\n    \"name\": \"L\u00e6s\u00f8 Smykker\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.29635951812577,\n    \"lng\": 10.92282006870181,\n    \"addr\": \"Havnepladsen 1E, 9940 L\u00e6s\u00f8\"\n},\n{\n    \"name\": \"L\u00e6s\u00f8 Uldstue\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.25374641498,\n    \"lng\": 11.005526753360108,\n    \"addr\": \"Byrum Hovedgade 87, 9940 L\u00e6s\u00f8\"\n},\n{\n    \"name\": \"Molevejens Kunsth\u00e5ndv\u00e6rk\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 56.954446179560165,\n    \"lng\": 8.686649082179624,\n    \"addr\": \"Frederiksgade 4a, 7700 Thisted\"\n},\n{\n    \"name\": \"Museum for Papirkunst\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.247872761085425,\n    \"lng\": 9.622014884038855,\n    \"addr\": \"Ilsigvej 2, Hune, 9492 Blokhus\"\n},\n{\n    \"name\": \"Mygdalhus\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.54149200263789,\n    \"lng\": 10.091357511044764,\n    \"addr\": \"Skagen Landevej 658, 9800 Hj\u00f8rring\"\n},\n{\n    \"name\": \"Rakugalleriet v\/Jens Hostrup\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.14485992649996,\n    \"lng\": 9.369211768694047,\n    \"addr\": \"Under Lien 51, Slettestrand, 9690 Fjerritslev\"\n},\n{\n    \"name\": \"Rigmor Horsevad Pottemager\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.589898530663085,\n    \"lng\": 9.953562653377512,\n    \"addr\": \"Hj\u00f8rringgade 16B, 9850 Hirtshals\"\n},\n{\n    \"name\": \"R\u00f8nnes Atelier og Udstilling\",\n    \"categoryId\":\"kunsthandvaerk\",\n    \"lat\": 57.57792281053717,\n    \"lng\": 10.265841155221022,\n    \"addr\": \"Europavej 11, Tuen, 9881 Bindslev\"\n},\n{\n    \"name\": \"Skagen Glaspusterbl\u00e6ser\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.72487596071017,\n    \"lng\": 10.540087176807509,\n    \"addr\": \"Engklitvej 40, 9990 Skagen\"\n},\n{\n    \"name\": \"Skagen Glaspusteri\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.718667034227494,\n    \"lng\": 10.584575139888795,\n    \"addr\": \"Fiskergangen 12c, 9990 Skagen\"\n},\n{\n    \"name\": \"Skagen Potteri\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.72397635772489,\n    \"lng\": 10.593871711054184,\n    \"addr\": \"Sct. Laurentiivej 27, 9990 Skagen\"\n},\n{\n    \"name\": \"Skulpturhaven Thy\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 56.847055851083695,\n    \"lng\": 8.361542926348509,\n    \"addr\": \"Hvidbjergg\u00e5rdsvej 5, Svank\u00e6r, 7755 Bedsted Thy\"\n},\n{\n    \"name\": \"Smykker v\/ Susanne Lang\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.72897827144836,\n    \"lng\": 10.524474697559091,\n    \"addr\": \"Niels Ottesensvej 5, 9990 Skagen\"\n},\n{\n    \"name\": \"Stenskulpt\u00f8r Palle M\u00f8rk\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.25586722031643,\n    \"lng\": 9.968820724525372,\n    \"addr\": \"Aalborgvej 121, 9700 Br\u00f8nderslev\"\n},\n{\n    \"name\": \"S\u00e6by Glaspusteri\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.33330897366812,\n    \"lng\": 10.527155726373476,\n    \"addr\": \"Algade 46E, 9300 S\u00e6by\"\n},\n{\n    \"name\": \"S\u00e6by Porcel\u00e6n\",\n    \"categoryId\": \"kunsth\u00e5ndv\u00e6rk\",\n    \"lat\": 57.33524079519277,\n    \"lng\": 10.521461368703843,\n    \"addr\": \"Algade 4, 9300 S\u00e6by\"\n},\n{\n    \"name\": \"S\u00f8mod & Leg\u00e5rd ApS\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.054192156777475,\n    \"lng\": 9.90482799752429,\n    \"addr\": \"Dannebrogsgade 61, 2. th, 9000 Aalborg\"\n},\n{\n    \"name\": \"Tranum Lys og Glas\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.12934629592509,\n    \"lng\": 9.44952096869327,\n    \"addr\": \"Ejstrupvej 11, Tranum, 9460 Brovst\"\n},\n{\n    \"name\": \"Vandkantshuset\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.11521990277257,\n    \"lng\": 8.613121239857655,\n    \"addr\": \"Chr. Hansens Vej 1, 7730 Hanstholm\"\n},\n{\n    \"name\": \"Your Art Caf\u00e9\",\n    \"categoryId\": \"kunsthandvaerk\",\n    \"lat\": 57.33420405365609,\n    \"lng\": 10.522847968703768,\n    \"addr\": \"Algade 14, 9300 S\u00e6by\"\n}\n    ]\n  },\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n \n  \n  {\n    id: \"feriehuse\",\n    label: \"Feriehuse\",\n    items: [\n       {\n        \"name\": \"S\u00e6by Turistbureau \",\n        \"categoryId\": \"feriehuse\",\n        \"lat\": 57.33514558224197,\n        \"lng\": 10.520680337855302,\n        \"addr\": \"S\u00f8ndergade 5B, 9300 S\u00e6by\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/07\/IMG_2961.jpg\",\n        \"desc\": \"Her finder du kontaktoplysninger, telefontider og alt du beh\u00f8ver at vide om n\u00f8gleudlevering til dit feriehus i S\u00e6by.\"\n    }\n    ]\n  },\n  \n  \n  \n  \n  \n  \n    \/*  Antik *\/\n  \n  \n  {\n    id: \"antik\",\n    label: \"Antik\",\n    items: [\n         {\n    \"name\": \"Almuen Antik\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.04535238944198,\n    \"lng\": 9.918132768688949,\n    \"addr\": \"Boulevarden 26, 9000 Aalborg\"\n  },\n  \n    \/*  Insert new antik here*\/\n  \n  \n  {\n    \"name\": \"Antik Gaarden\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.35218974443101,\n    \"lng\": 9.706564868704666,\n    \"addr\": \"Redningsvejen Nord 2, 9480 L\u00f8kken\"\n  },\n  {\n    \"name\": \"Antik og gammelt  v\/Von Otto\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.60106495744397,\n    \"lng\": 10.417954555222222,\n    \"addr\": \"Industrivej Nord 3A, 9982 Aalb\u00e6k\"\n  },\n  {\n    \"name\": \"Antiquis\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.05194543104754,\n    \"lng\": 9.906394774221754,\n    \"addr\": \"Helgolandsgade 7A, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Art F v\/Martin Frederiksen\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.46370107712076,\n    \"lng\": 9.813638297545369,\n    \"addr\": \"L\u00f8nstrupvej 54C, Vennebjerg, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"Bellevue Vintage\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.72369643696374,\n    \"lng\": 10.59211515522857,\n    \"addr\": \"Sct. Laurentii Vej 22, 9990 Skagen\"\n  },\n  {\n    \"name\": \"Boutique De Limage\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.42119141305133,\n    \"lng\": 10.046426168708269,\n    \"addr\": \"Illbro Byvej 106-108, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"Brocante og Gammelt i Blokhus\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.24871012873678,\n    \"lng\": 9.614844997534277,\n    \"addr\": \"Vestergha\u00b4vsvej 16, 9492 Blokhus\"\n  },\n  {\n    \"name\": \"Butik Genfund\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.44272850482465,\n    \"lng\": 10.537822953369906,\n    \"addr\": \"Danmarksgade 31, 9900 Frederikshavn\"\n  },\n  {\n    \"name\": \"Det gamle bageri - \u00c5lb\u00e6k\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.59404122101599,\n    \"lng\": 10.412440726386968,\n    \"addr\": \"Skagensvej 35, 99821 \u00c5lb\u00e6k\"\n  },\n  {\n    \"name\": \"Gammelt Guld\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.36571637552972,\n    \"lng\": 10.190318584045,\n    \"addr\": \"S\u00e6by Landevej 413, 9830 T\u00e5rs\"\n  },\n  {\n    \"name\": \"Glashuset Antik & Design\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.249591926931764,\n    \"lng\": 9.988418855204102,\n    \"addr\": \"Cypresvej 6, 9700 Br\u00f8nderslev\"\n  },\n  {\n    \"name\": \"Gule L\u00e6nge Antik\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.462567925199636,\n    \"lng\": 9.814570082205767,\n    \"addr\": \"L\u00f8nstrupvej 58, L\u00f8nstrup, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"G\u00e5rdbutik, Skagen Antik og Design\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.59561771529492,\n    \"lng\": 10.306541041726595,\n    \"addr\": \"Skagensvej 122, Tuen\"\n  },\n  {\n    \"name\": \"Habengutt\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.457905428778645,\n    \"lng\": 9.993527912884568,\n    \"addr\": \"\u00d8stergade 49, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"Ingstrup Antik og Moderne\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.34304340368098,\n    \"lng\": 9.776120011034518,\n    \"addr\": \"Vrenstedvej 465, 9480 L\u00f8kken\"\n  },\n  {\n    \"name\": \"Jensen Antik & Secondhand\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.40422972640787,\n    \"lng\": 9.803037824533012,\n    \"addr\": \"L\u00f8kkenvej 779, 9480 L\u00f8kken\"\n  },\n  {\n    \"name\": \"Kilo Vintage Sale\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.04686672939015,\n    \"lng\": 9.924826955193687,\n    \"addr\": \"Bredegade 7, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Kinnerup Antik og Porcel\u00e6n\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.06495913816956,\n    \"lng\": 9.90508362635973,\n    \"addr\": \"Strand Alle 2, 9400 N\u00f8rresundby\"\n  },\n  {\n    \"name\": \"Lange's Loppefund\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.117507421985614,\n    \"lng\": 9.858134884032184,\n    \"addr\": \"Rugmarken 3, 9430 Vadum\"\n  },\n  {\n    \"name\": \"L\u00e6sehesten\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.04931892959383,\n    \"lng\": 9.914030811019392,\n    \"addr\": \"Reberbansgade 7, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"L\u00e6sehesten Frederikshavn\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.44308373044247,\n    \"lng\": 10.538112911039649,\n    \"addr\": \"Danmarksgade 25, 9900 Frederikshavn\"\n  },\n  {\n    \"name\": \"N\u00f8rh\u00e5 Antik og Retro\",\n    \"categoryId\": \"antik\",\n    \"lat\": 56.89886204342847,\n    \"lng\": 8.444958639846552,\n    \"addr\": \"Stenbjergvej 38, 7752 Snedsted\"\n  },\n  {\n    \"name\": \"Pilegaards Antikvariat og M\u00f8nthandel\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.04830559542233,\n    \"lng\": 9.916369897523957,\n    \"addr\": \"Algade 65, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Pops of the Galaxy\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.03841609459784,\n    \"lng\": 9.930887295679295,\n    \"addr\": \"\u00d8stre Alle 102, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Skagen Antik og Design\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.724184652909024,\n    \"lng\": 10.594578755228582,\n    \"addr\": \"Sct. Laurentii Vej 21D, 9990 Skagen\"\n  },\n  {\n    \"name\": \"Skagen Antik og Genbrug\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.72608877785187,\n    \"lng\": 10.564652455228684,\n    \"addr\": \"Kattegatvej 6, 9990 Skagen\"\n  },\n  {\n    \"name\": \"S\u00f8r\u00f8verkisten\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.08768202846819,\n    \"lng\": 9.966335670535273,\n    \"addr\": \"Hj\u00f8rringvej 186, 9400 N\u00f8rresundby\"\n  },\n  {\n    \"name\": \"Thisted Antik og Retro\",\n    \"categoryId\": \"antik\",\n    \"lat\": 56.95511643031306,\n    \"lng\": 8.694348384023813,\n    \"addr\": \"H\u00e5ndv\u00e6rker Torv 1, 7700 Thisted\"\n  },\n  {\n    \"name\": \"Tinsoldaten Military-Antique\",\n    \"categoryId\": \"antik\",\n    \"lat\": 57.045462144288166,\n    \"lng\": 9.923677684028407,\n    \"addr\": \"Niels Ebbesens Gade 6, 9000 Aalborg\"\n  }\n    ]\n  },\n  \n  \n  \n \n  \n    \/*  Genbrug *\/\n  \n  \n  {\n    id: \"genbrug\",\n    label: \"Genbrug\",\n    items: [\n    \n  {\n    \"name\": \"Abb\u00e9 Pierres Klunsere\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.18953476337999,\n    \"lng\": 10.002394253356806,\n    \"addr\": \"Hjallerupvej 70, 9382 Tylstrup\"\n  },\n  \n    \/*  Insert Genbrug here*\/\n    \n    \n  {\n    \"name\": \"Alice in Secondhand\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.04737544038077,\n    \"lng\": 9.924057468689014,\n    \"addr\": \"Slotsgade 9, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Bl\u00e5 Kors Bindslev\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.536401238917136,\n    \"lng\": 10.196307126384022,\n    \"addr\": \"S\u00f8nderbro 26, 9881 Bindslev\"\n  },\n  {\n    \"name\": \"Bl\u00e5 Kors Frederikshavn\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.436492917159136,\n    \"lng\": 10.53461719754396,\n    \"addr\": \"L\u00e6s\u00f8gade 16, 9900 Frederikshavn\"\n  },\n  {\n    \"name\": \"Bl\u00e5 Kors Genbrug N\u00f8rresundby\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.05920021839783,\n    \"lng\": 9.922311926359402,\n    \"addr\": \"Vestergade 1, 9400 N\u00f8rresundby\"\n  },\n  {\n    \"name\": \"Bl\u00e5 Kors Hj\u00f8rring\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.45753320079928,\n    \"lng\": 9.994901782205561,\n    \"addr\": \"\u00d8stergade 61, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"Bl\u00e5 Kors M\u00f8bler S\u00e6by\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.33329011919561,\n    \"lng\": 10.512701311034,\n    \"addr\": \"S\u00e6byg\u00e5rdvej 2, 9300 S\u00e6by\"\n  },\n  {\n    \"name\": \"Bl\u00e5 Kors N\u00f8rre Uttrup\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.07488934736108,\n    \"lng\": 9.950828912864814,\n    \"addr\": \"Amalienborgvej 19, 9400 N\u00f8rresundby\"\n  },\n  {\n    \"name\": \"Bl\u00e5 Kors Skagen\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.722214433823254,\n    \"lng\": 10.578555582219229,\n    \"addr\": \"Chr. Xs Vej 71, 9990 Skagen\"\n  },\n  {\n    \"name\": \"Bl\u00e5 Kors Thisted\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 56.96052296633187,\n    \"lng\": 8.715255626354335,\n    \"addr\": \"Ringvej 1G, 7700 Thisted\"\n  },\n  {\n    \"name\": \"Bl\u00e5 Kors Aabybro\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.15335594681857,\n    \"lng\": 9.741256939859664,\n    \"addr\": \"Fristrupvej 1, 9440 Aabybro\"\n  },\n  {\n    \"name\": \"Bl\u00e5 KorsT\u00f8j S\u00e6by\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.332731456673464,\n    \"lng\": 10.511385339868836,\n    \"addr\": \"Gl. Aalborgvej 2, 9300 S\u00e6by\"\n  },\n  {\n    \"name\": \"Butik Next\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.43833336323099,\n    \"lng\": 10.533198997544044,\n    \"addr\": \"Rimmensgade 11, 9900 Frederikshavn\"\n  },\n  {\n    \"name\": \"B\u00e6redygtige B\u00f8rn\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.44493796648105,\n    \"lng\": 10.509197739874635,\n    \"addr\": \"Suensonsvej 71B, 9900 Frederikshavn\"\n  },\n  {\n    \"name\": \"B\u00f8rneloppen\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 56.99868658334997,\n    \"lng\": 9.870323839851642,\n    \"addr\": \"Stenbukken 8, 9200 Aalborg\"\n  },\n  {\n    \"name\": \"Danmission Dronninglund\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.16037471835235,\n    \"lng\": 10.288909297529758,\n    \"addr\": \"N\u00f8rregade 7, 9330 Dronninglund\"\n  },\n  {\n    \"name\": \"Danmission Dybvad\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.275417874284834,\n    \"lng\": 10.358069370544916,\n    \"addr\": \"\u00c5lborgvej 450, 9352 Dybvad\"\n  },\n  {\n    \"name\": \"Danmission Frederikshavn\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.431903579463686,\n    \"lng\": 10.52645329754371,\n    \"addr\": \"S\u00f8ndergade 87, 9900 Frederikshavn\"\n  },\n  {\n    \"name\": \"Danmission Hjallerup\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.168200659628916,\n    \"lng\": 10.147172326365023,\n    \"addr\": \"Hjallerup Centret 20C, 9320 Hjallerup\"\n  },\n  {\n    \"name\": \"Danmission Hj\u00f8rring\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.453226821657495,\n    \"lng\": 10.017478926379667,\n    \"addr\": \"Far\u00f8vej 3A, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"Danmission N\u00f8rresundby\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.058395912803626,\n    \"lng\": 9.924640968689573,\n    \"addr\": \"Skr\u00e5gade 31, 9400 N\u00f8rresundby\"\n  },\n  {\n    \"name\": \"Danmission Aalborg\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.04458280973298,\n    \"lng\": 9.92327929752378,\n    \"addr\": \"Niels Ebbesens Gade 10, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Dansk Folkehj\u00e6lp Hj\u00f8rring\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.44857566463851,\n    \"lng\": 9.996094055214325,\n    \"addr\": \"Bispensgade 91, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"FDF Genbrugsbutik Skagen\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.731875604764674,\n    \"lng\": 10.575613711054585,\n    \"addr\": \"Fritidsvej 2, 9990 Skagen\"\n  },\n  {\n    \"name\": \"Folkekirkens N\u00f8dhj\u00e6lp Br\u00f8nderslev\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.49167225818309,\n    \"lng\": 10.4959122245375,\n    \"addr\": \"P. M\u00f8llers Plads 12, 9700 Br\u00f8nderslev\"\n  },\n  {\n    \"name\": \"Folkekirkens N\u00f8dhj\u00e6lp Hals\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 56.9982821406141,\n    \"lng\": 10.306779966842376,\n    \"addr\": \"Midtergade 45, 9370 Hals\"\n  },\n  {\n    \"name\": \"Folkekirkens N\u00f8dhj\u00e6lp Hals\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 56.996266956847215,\n    \"lng\": 10.307558653346886,\n    \"addr\": \"Midtergade 16, 9370 Hals\"\n  },\n  {\n    \"name\": \"Folkekirkens N\u00f8dhj\u00e6lp Hj\u00f8rring\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.456793288056815,\n    \"lng\": 10.012384153370602,\n    \"addr\": \"Hestk\u00e6rvej 4, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"Folkekirkens N\u00f8dhj\u00e6lp Hj\u00f8rring\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.458051370971006,\n    \"lng\": 9.992303211040374,\n    \"addr\": \"\u00d8stergade 38, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"Folkekirkens N\u00f8dhj\u00e6lp L\u00e6s\u00f8\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.25398941793033,\n    \"lng\": 11.004632624525273,\n    \"addr\": \"Byrum Hovedgade 83C, 9940 L\u00e6s\u00f8\"\n  },\n  {\n    \"name\": \"Folkekirkens N\u00f8dhj\u00e6lp L\u00f8kken\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.37241315163426,\n    \"lng\": 9.712512655210409,\n    \"addr\": \"N\u00f8rregade 18C, 9480 L\u00f8kken\"\n  },\n  {\n    \"name\": \"Folkekirkens N\u00f8dhj\u00e6lp L\u00f8kken M\u00f8bler\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.370481979313055,\n    \"lng\": 9.711361555210301,\n    \"addr\": \"M\u00f8stingvej 4C, 9480 L\u00f8kken\"\n  },\n  {\n    \"name\": \"Folkekirkens N\u00f8dhj\u00e6lp S\u00e6by\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.33278842954269,\n    \"lng\": 10.518835282199046,\n    \"addr\": \"S\u00f8ndergade 38, 9300 S\u00e6by\"\n  },\n  {\n    \"name\": \"Folkekirkens N\u00f8dhj\u00e6lp Aalborg\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.05089726854794,\n    \"lng\": 9.915207211019471,\n    \"addr\": \"Holberggade 1, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Frelsens H\u00e6r Br\u00f8nderslev\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.26380999224113,\n    \"lng\": 9.95232908219553,\n    \"addr\": \"\u00d8stergade 73, 9700 Br\u00f8nderslev\"\n  },\n  {\n    \"name\": \"Genbrugsbanken\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.110231342142505,\n    \"lng\": 9.586899841701525,\n    \"addr\": \"Aalborgvej 15, 9460 Brovst\"\n  },\n  {\n    \"name\": \"Genbrugsbutikken Sindal\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.4759771629544,\n    \"lng\": 10.190859868711108,\n    \"addr\": \"Danmarksgade 30, 9870 Sindal\"\n  },\n  {\n    \"name\": \"Genbrugsbutikken Tusindfryd\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.28526455086703,\n    \"lng\": 10.093096868701291,\n    \"addr\": \"Pal\u00e6gade 6,8,9, 9740 Br\u00f8nderslev\"\n  },\n  {\n    \"name\": \"Genbrugsen Frederikshavn\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.44054266567622,\n    \"lng\": 10.535928226379038,\n    \"addr\": \"Danmarksgade 56, 9900 Frederikshavn\"\n  },\n  {\n    \"name\": \"Gita og Gundhild\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.047045090319976,\n    \"lng\": 9.909239840644402,\n    \"addr\": \"Hasserisgade 14, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Guld og rod Br\u00f8nderslev\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.2688172940377,\n    \"lng\": 9.946865468700436,\n    \"addr\": \"Mejlstedgade 9, 9700 Br\u00f8nderslev\"\n  },\n  {\n    \"name\": \"Guldloppen Genbrug\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.27031758786282,\n    \"lng\": 9.940562353361006,\n    \"addr\": \"Vestergade 69, 9700 Br\u00f8nderslev\"\n  },\n  {\n    \"name\": \"Guld og rod Thisted\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 56.9606247183889,\n    \"lng\": 8.715687753345058,\n    \"addr\": \"Ringvej 1E, 7700 Thisted\"\n  },\n  {\n    \"name\": \"HappyHand\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.04278785965428,\n    \"lng\": 9.918899041698058,\n    \"addr\": \"John F. Kennedys Pl. 45, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"IM-genbrug\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.09716506675663,\n    \"lng\": 9.526802784031098,\n    \"addr\": \"\u00d8stergade 30, 9460 Brovst\"\n  },\n  {\n    \"name\": \"IM-genbrug Tornby\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.53649521526726,\n    \"lng\": 9.948736055218905,\n    \"addr\": \"Gl.Landevej 51, 9850 Hirtshals\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Biersted\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.15119408700704,\n    \"lng\": 9.803721755199016,\n    \"addr\": \"Haldagervej 39, 9440 Aabybro\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Br\u00f8nderslev\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.26219960959757,\n    \"lng\": 9.958072997534963,\n    \"addr\": \"\u00d8stergade 111, 9700 Br\u00f8nderslev\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Fjerritslev\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.08724057000971,\n    \"lng\": 9.268198855195735,\n    \"addr\": \"S\u00f8gade 11, 9690 Fjerritslev\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Frederikshavn\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.445874044192266,\n    \"lng\": 10.509206341718812,\n    \"addr\": \"Hj\u00f8rringvej 143K, 9900 Frederikshavn\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Gandrup\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.05398983149616,\n    \"lng\": 10.17942444169864,\n    \"addr\": \"Aalborgvej 326, 9362 Gandrup\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Hirtshals\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.590621379017,\n    \"lng\": 9.95869585522164,\n    \"addr\": \"J\u00f8rgen Fibigersgade 14-16, 9850 Hirtshals\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Sindal\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.47022775996044,\n    \"lng\": 10.195696112885233,\n    \"addr\": \"Ved Banen 4, 9870 Sindal\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r S\u00e6by\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.3328058024849,\n    \"lng\": 10.518964028217598,\n    \"addr\": \"S\u00f8ndergade 38, 9300 S\u00e6by\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Vodskov\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.102161419592726,\n    \"lng\": 10.023102639857004,\n    \"addr\": \"F\u00f8lfodvej 29, 9310 Vodskov\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Vr\u00e5\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.35414420042486,\n    \"lng\": 9.940406168704813,\n    \"addr\": \"Vestergade 10, 9760 Vr\u00e5\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Aabybro\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.16011788273806,\n    \"lng\": 9.731211912869203,\n    \"addr\": \"\u00d8stergade 30A, 9440 Aabybro\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Aalborg\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.049756764442265,\n    \"lng\": 9.91101811286357,\n    \"addr\": \"Reberbansgade 29, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Kirkens Korsh\u00e6r Aalb\u00e6k\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.59999055948195,\n    \"lng\": 10.417438739882641,\n    \"addr\": \"Industrivej 24-26, 9982 Aalb\u00e6k\"\n  },\n  {\n    \"name\": \"Kirppu Frederikshavn\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.44587145895024,\n    \"lng\": 10.499180197544451,\n    \"addr\": \"Hj\u00f8rringvej 171B, 9900 Frederikshavn\"\n  },\n  {\n    \"name\": \"Kirppu Hj\u00f8rring\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.456655631588944,\n    \"lng\": 10.018301153370606,\n    \"addr\": \"Hvidevold 2F, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"Kirppu Aalborg\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 56.998724413938874,\n    \"lng\": 9.870616697521408,\n    \"addr\": \"Stenbukken 10, 9200 Aalborg\"\n  },\n  {\n    \"name\": \"Knudepunktet\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.4453454652592,\n    \"lng\": 10.492850282204856,\n    \"addr\": \"Suderbovej 2, 9900 Frederikshavn\"\n  },\n  {\n    \"name\": \"Kr\u00e6ftens Bek\u00e6mpelse Aalborg\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.033451530714856,\n    \"lng\": 9.922448755192903,\n    \"addr\": \"Hattemagervej 26, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Loppehuset\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.12165333709773,\n    \"lng\": 9.620675912867274,\n    \"addr\": \"Thyvej 20, 9460 Brovst\"\n  },\n  {\n    \"name\": \"Lopper mod EU\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.196319610897234,\n    \"lng\": 9.671515168696684,\n    \"addr\": \"Langgade 9, 9490 Pandrup\"\n  },\n  {\n    \"name\": \"Mission Afrika Genbrug\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.0410094010405,\n    \"lng\": 9.95141558218404,\n    \"addr\": \"Hadsundvej 42, 9000 Aalborg\"\n  },\n {\n    \"name\": \"Mission Afrika Genbrug Hune\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.24846925398126,\n    \"lng\":  9.6167961029309,\n    \"addr\": \"Vesterhavsvej 26B, 9492 Blokhus\"\n  },\n  {\n    \"name\": \"Mission Afrika Genbrug Aalborg\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.0464603143645,\n    \"lng\": 9.928785784028515,\n    \"addr\": \"N\u00f8rregade 30, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Nordv\u00e6rks Genbrugsbutik\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.45157811301686,\n    \"lng\": 10.029687411040136,\n    \"addr\": \"Mand\u00f8vej 4, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"Promissio Genbrug Skagen\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.72367888319236,\n    \"lng\": 10.589672911054155,\n    \"addr\": \"Chr. X's Vej 8, 9990 Skagen\"\n  },\n  {\n    \"name\": \"Promissio Genbrug Hj\u00f8rring\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.46181234523481,\n    \"lng\": 9.986566857059147,\n    \"addr\": \"Sct Olia Pl. 1, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"Reden Genbrug\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.04532688079946,\n    \"lng\": 9.920884912863315,\n    \"addr\": \"Danmarksgade 21, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Reusers Aalborg\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 56.99895362628345,\n    \"lng\": 9.872565712860968,\n    \"addr\": \"Stenbutikken 3B, 9200 Aalborg\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Br\u00f8nderslev\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.263756209182404,\n    \"lng\": 9.952142455204772,\n    \"addr\": \"\u00d8stergade 71B, 9700 Br\u00f8nderslev\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Dronninglund\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.15960724756461,\n    \"lng\": 10.28916496869479,\n    \"addr\": \"Slotsgade 37, 9330 Dronninglund\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Frederikshavn\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.44539499893382,\n    \"lng\": 10.492396668709562,\n    \"addr\": \"Suderbovej 2C, 9900 Frederikshavn\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Handsundvej\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.0405058544097,\n    \"lng\": 9.951746311018947,\n    \"addr\": \"Hadsundvej 48, 2th, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Hanstholm\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.11548475081916,\n    \"lng\": 8.608264326362333,\n    \"addr\": \"Centervej 2, 7730 Hanstholm\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Hirtshals\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.588901281643224,\n    \"lng\": 9.959685511047166,\n    \"addr\": \"Svinget 8, 9850 Hirtshals\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Hjallerup\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.17626314567741,\n    \"lng\": 10.155359912870043,\n    \"addr\": \"Navervej 1, 9320 Hjallerup\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Hj\u00f8rring\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.45780355662392,\n    \"lng\": 9.993833397545052,\n    \"addr\": \"\u00d8stergade 55, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors N\u00f8rresundby\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.05880925349984,\n    \"lng\": 9.923231970533779,\n    \"addr\": \"Torvet 3, 9400 N\u00f8rresaundby\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Pandrup\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.22341452986984,\n    \"lng\": 9.676622884037597,\n    \"addr\": \"Bredgade 14 st., 9490 Pandrup\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Sindal\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.470878481049716,\n    \"lng\": 10.202402126380628,\n    \"addr\": \"N\u00f8rregade 2A, 9870 Sindal\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Skagen\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.72734162353499,\n    \"lng\": 10.569259957669757,\n    \"addr\": \"Buttervej 33, 9990 Skagen\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors S\u00e6by\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.33452095300701,\n    \"lng\": 10.51915013986895,\n    \"addr\": \"Krystalgade 3, 9300 S\u00e6by\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Thisted\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 56.966432302864256,\n    \"lng\": 8.731129711015141,\n    \"addr\": \"Tigervej 1, 7700 Thisted\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Tversted\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.58534994288492,\n    \"lng\": 10.18817421289115,\n    \"addr\": \"Tannisbugtvej 44, Tversted, 9881 Bindslev\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Vejgaard\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.042024477803466,\n    \"lng\": 9.94887086868877,\n    \"addr\": \"Vejg\u00e5rd Bymidte 8, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Vestbyen Aalborg\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.05322112844204,\n    \"lng\": 9.905381511019549,\n    \"addr\": \"Kastetvej 35, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Vr\u00e5\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.35295045180151,\n    \"lng\": 9.940998684044288,\n    \"addr\": \"Mejerigade 15 st, 9760 Vr\u00e5\"\n  },\n  {\n    \"name\": \"R\u00f8de Kors Aabybro\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.16263982261824,\n    \"lng\": 9.730779526364747,\n    \"addr\": \"Kattedamsvej 6, 9440 Aabybro\"\n  },\n  {\n    \"name\": \"R\u00e5d og D\u00e5d Genbrug\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.09732389804512,\n    \"lng\": 9.516805297526485,\n    \"addr\": \"Vestergade 62-64, 9460 Brovst\"\n  },\n  {\n    \"name\": \"Tylstrup Genbrug\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.1957987118671,\n    \"lng\": 9.947153412871042,\n    \"addr\": \"Luneborgvej 62, 9382 Tylstrup\"\n  },\n  {\n    \"name\": \"Vodskov Genbrugsbutik\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.10167586635248,\n    \"lng\": 10.023521826361595,\n    \"addr\": \"F\u00f8lfodvej 27, 9310 Vodskov\"\n  },\n  {\n    \"name\": \"Your 2Hand Closet\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.049037536986326,\n    \"lng\": 9.91753049567985,\n    \"addr\": \"Gravensgade 3, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Vild med genbrug\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.15619101801501,\n    \"lng\": 10.277558768694668,\n    \"addr\": \"Slotsgade 12A, 9330 Dronninglund\"\n  },\n  {\n    \"name\": \"Loppeamok\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.0642750391217,\n    \"lng\": 9.903988484029425,\n    \"addr\": \"Strand Alle 12, 9400 N\u00f8rresundby\"\n  },\n  {\n    \"name\": \"R\u00e5t og godt\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.035923314622934,\n    \"lng\": 9.91647371286285,\n    \"addr\": \"Hjulmagervej 58, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Little Recycle\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.037974171753206,\n    \"lng\": 9.92933254169786,\n    \"addr\": \"\u00d8stre Alle 102, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"M\u00f8drehj\u00e6lpen Thisted\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 56.95470888093154,\n    \"lng\": 8.686300368684272,\n    \"addr\": \"Vestergade 32, 7700 Thisted\"\n  },\n  {\n    \"name\": \"M\u00f8drehj\u00e6lpen Br\u00f8nderslev\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.269357789440186,\n    \"lng\": 9.949159639865563,\n    \"addr\": \"Bredgade 65, 9700 Br\u00f8nderslev\"\n  },\n  {\n    \"name\": \"M\u00f8drehj\u00e6lpen Aalborg\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.04567797149045,\n    \"lng\": 9.917449753349448,\n    \"addr\": \"Danmarksgade 14, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"TopLop Br\u00f8nderslev\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.26445240180107,\n    \"lng\": 9.950818711030418,\n    \"addr\": \"\u00d8stergade 63, 9700 Br\u00f8nderslev\"\n  },\n  {\n    \"name\": \"Lille Hjerte\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.26887738532391,\n    \"lng\": 9.94671075520507,\n    \"addr\": \"Nygade 16, 9700 Br\u00f8nderslev\"\n  },\n  {\n    \"name\": \"Hoppeloppen\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.45339715322502,\n    \"lng\": 10.017083782205324,\n    \"addr\": \"Far\u00f8gade 1A, 9800 Hj\u00f8rring\"\n  },\n  {\n    \"name\": \"Second Hand\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.04182768849522,\n    \"lng\": 9.935492726358545,\n    \"addr\": \"F\u00e6r\u00f8gade, 9000 Aalborg\"\n  },\n  {\n    \"name\": \"Butik Gejst\",\n    \"categoryId\": \"genbrug\",\n    \"lat\": 57.042409260605915,\n    \"lng\": 9.934935011019032,\n    \"addr\": \"Fyensgade 18, 9000 Aalborg\"\n  }\n    ]\n  },\n  \n  \n  \n  \n  {\n    id: \"oplevelser\",\n    label: \"Oplevelser\",\n    items: [\n     \n       { name: 'Riverside Voers\u00e5', \n       categoryId: 'oplevelser', lat: 57.20733878304331,\n       lng: 10.48562536517127, addr: '\u00d8stkystvejen 344, 9300 S\u00e6by',\n       photo: \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Riverside-Voersaa-2-1.jpg\",\n       desc: \"Riverside Voers\u00e5 \u2013 Natur, hygge og aktiviteter i hjertet af \u00d8stvendsyssel. Oplev en idyllisk oase, hvor Voer \u00c5 m\u00f8der Kattegat. Riverside Voers\u00e5 byder p\u00e5 familievenlige kano- og kajakture, frodige gr\u00f8nne omr\u00e5der til picnic og leg, samt fredelige stunder i den smukke natur. Et perfekt sted til b\u00e5de afslapning og eventyr \u2013 uanset alder.\",\n       link: 'https:\/\/visitvendsyssel.dk\/riverside-voersaa\/',\n\n       },\n       {\n        \"name\": \"Escape Room Skagen\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.7247288,\n        \"lng\": 10.5743411,\n        \"addr\": \"Trindelvej 19, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Escape-Skagen-3.jpg\",\n        \"desc\": \"Et sp\u00e6ndingsfyldt escape room i Skagens autentiske kommandobunker. V\u00e6lg mellem indend\u00f8rs bunker-oplevelser og udend\u00f8rs GPS-spil \u2013 perfekt til teambuilding og familieeventyr.\"\n    },\n    {\n        \"name\": \"Farm Fun\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.5813799,\n        \"lng\": 10.409876,\n        \"addr\": \"Jerupvej 155, 9982 \u00c5lb\u00e6k\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Farm-Fun-2.jpg\",\n        \"desc\": \"Familievenlig dyrepark n\u00e6r \u00c5lb\u00e6k med bondeg\u00e5rdsdyr, legepladser og natursk\u00f8n beliggenhed. Oplev over 500 dyr og sjove aktiviteter for b\u00f8rn i alle aldre.\"\n    },\n    {\n        \"name\": \"Langagergaard\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.6560053,\n        \"lng\": 10.4442859,\n        \"addr\": \"Kandestedvej 76, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Langagergaard-1.jpg\",\n        \"desc\": \"Autentisk ridecenter i Skagen med natursk\u00f8nne rideture gennem klitter og kystlandskab. Perfekt til b\u00e5de nybegyndere og \u00f8vede ryttere.\"\n    },\n    {\n        \"name\": \"Nords\u00f8en Oceanarium\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.5866348,\n        \"lng\": 9.9782651,\n        \"addr\": \"Willemoesvej 2, 9850 Hirtshals\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Nordsoen-Oceanarium-3.jpg\",\n        \"desc\": \"Danmarks st\u00f8rste akvarium i Hirtshals med fascinerende udstillinger af hajer, s\u00e6ler og dyreliv fra Nords\u00f8en \u2013 en l\u00e6rerig oplevelse for hele familien.\"\n    },\n    {\n        \"name\": \"Skagen Salmon\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.7390946,\n        \"lng\": 10.5606775,\n        \"addr\": \"Buttervej 49, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/skagensalmon.png\",\n        \"desc\": \"Moderne fiskeopdr\u00e6t i Skagen. Oplev produktionen af luksus\u00f8rreder med sp\u00e6ndende indblik i b\u00e6redygtigt havbrug og smagsoplevelser.\"\n    },\n    {\n        \"name\": \"\u00d8rneresevatet\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.6045307,\n        \"lng\": 10.3133215,\n        \"addr\": \"Skagensvej 107, 9881 Bindslev\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Ornereservatet-3.jpg\",\n        \"desc\": \"Oplev majest\u00e6tiske rovfugle t\u00e6t p\u00e5 i Bindslevs \u00f8rnereservat. Imponerende shows og naturoplevelser med fokus p\u00e5 bevaring og formidling.\"\n    },\n    {\n        \"name\": \"Aalborg Zoo\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.0370327,\n        \"lng\": 9.8954689,\n        \"addr\": \"M\u00f8lleparkvej 63, 9000 Aalborg\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Aalborg-Zoo-3.jpg\",\n        \"desc\": \"Aalborg Zoo byder p\u00e5 1.500 dyr fra hele verden. En sp\u00e6ndende og l\u00e6rerig destination for hele familien med fokus p\u00e5 naturbevarelse og formidling.\"\n    },\n     \n      {\n        \"name\": \"S\u00e6by Sv\u00f8mmebad\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.333853162570094,\n        \"lng\": 10.505154932320483,\n        \"addr\": \"R\u00e5dhuspladsen 3, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/saeby-svoemmehal\/\"\n      },\n      {\n        \"name\": \"Jensen Jordb\u00e6r\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.363322910972386,\n        \"lng\": 10.431105540080814,\n        \"addr\": \"Hestvangvej 6, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/jensen-jordbaer\/\"\n      },\n      {\n      \"name\": \"Strandby Lystb\u00e5dehavn\",\n      \"categoryId\": \"oplevelser\",\n      \"lat\": 57.49195198114826,\n      \"lng\": 10.504194022089804,\n      \"addr\": \"R\u00f8dsp\u00e6ttevej 5, 9970 Strandby, Denmark\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/strandby-lystbaadehavn\/\"\n    },\n    {\n      \"name\": \"Strandby Erhvervsnetv\u00e6rk\",\n      \"categoryId\": \"oplevelser\",\n      \"lat\": 57.499687191814694,\n      \"lng\": 10.493133740836418,\n      \"addr\": \"web\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/strandby-erhvervsnetvaerk\/\"\n    },\n     {\n        \"name\": \"Seadog\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.44015625948644,\n        \"lng\": 10.54953818245318,\n        \"addr\": \"Pier 5 2, 9900 Frederikshavn\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/seadog-frederikhavn\/\"\n      },\n      {\n        \"name\": \"Cloost\u00e5rnet\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.42123906788744,\n        \"lng\": 10.466656008118221,\n        \"addr\": \"Br\u00f8nderslevvej 61, 9900 Frederikshavn\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/cloostaarnet-frederikshavn\/\"\n      },\n      {\n        \"name\": \"Frederikshavn Sv\u00f8mmehal\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.4424198333586,\n        \"lng\": 10.534795506982467,\n        \"addr\": \"Parallelvej 8, 9900 Frederikshavn\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/frederikshavn-svoemmehal\/\"\n      },\n      {\n        \"name\": \"Vendsysselfodboldgolf\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.17290187609308,\n        \"lng\": 10.42904526968968,\n        \"addr\": \"Agerstedvej 5, 9340 Asaa\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/vendsysselfodboldgolf\/\"\n      },\n      {\n        \"name\": \"FUN House\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.46305106423442,\n        \"lng\": 10.526096978291594,\n        \"addr\": \"Apholmenvej 39, 9900 Frederikshavn, Denmark\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/fun-house\/\"\n      },\n      \n     \n       {\n        \"name\": \"Det Gr\u00e5 Fyr\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.73554042783666,\n        \"lng\": 10.63032054718721,\n        \"addr\": \"Fyrvej 36, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/det-graa-fyr\/\"\n      },\n      {\n        \"name\": \"Dino Golf\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.720528696914236,\n        \"lng\": 10.543646153081525,\n        \"addr\": \"Gl. Landevej 34, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/dino-golf\/\"\n      },\n     \n       {\n        \"name\": \"Maskinrummet\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.71522412604612,\n        \"lng\": 10.580634802815474,\n        \"addr\": \"Jollevej 4, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/maskinrummet\/\"\n      },\n       {\n        \"name\": \"Den Svenske S\u00f8mandskirke\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.71786098577741,\n        \"lng\": 10.582549227300968,\n        \"addr\": \"Vestre Strandvej 24, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/den-svenske-soemandskirke\/\"\n      },\n      {\n        \"name\": \"Sandormen\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.73924944472511,\n        \"lng\": 10.633678041625368,\n        \"addr\": \"Fyrvej, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/sandormen\/\"\n      },\n      {\n        \"name\": \"Skagen Fodboldgolf\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.73638470761603,\n        \"lng\": 10.58567026944489,\n        \"addr\": \"Nedre Mosevej 108, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-fodboldgolf\/\"\n      },\n      {\n        \"name\": \"Skagen Kirke\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.72147538110343,\n        \"lng\": 10.584986414490997,\n        \"addr\": \"Ved Kirken 2, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-kirke\/\"\n      },\n      {\n        \"name\": \"Your Art Caf\u00e9\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.33415438509261,\n        \"lng\": 10.523132956480039,\n        \"addr\": \"Algade 14, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/your-art-cafe\/\"\n      },\n      {\n        \"name\": \"Kulturhus Kappelborg\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.72267908714008,\n        \"lng\": 10.587714059876317,\n        \"addr\": \"Skolevej 5, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/kulturhus-kappelborg\/\"\n      },\n      \n      \n      {\n        \"name\": \"Skagen Odde Naturcenter\",\n        \"categoryId\": \"oplevelser\",\n        \"lat\": 57.7399746106913,\n        \"lng\": 10.595548866294818,\n        \"addr\": \"B\u00f8jlevejen 66, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-odde-naturcenter\/\"\n      },\n      \n    ]\n },\n  \n  \n \n \n  \n  \n  \n \n  \n  \n  {\n    id: \"museer\",\n    label: \"Museer\",\n    items: [\n    {\n        \"name\": \"Maskinrummet Skagen\",\n        \"categoryId\": \"museer\",\n        \"lat\": 57.7151932,\n        \"lng\": 10.5779552,\n        \"addr\": \"Jollevej 4, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Maskinrummet-2.jpg\",\n        \"desc\": \"Danmarks st\u00f8rste private samling af motorer og maskiner \u2013 oplev over 250 unikke motorer i drift og dyk ned i teknikkens historie i Skagen.\"\n    },\n    {\n        \"name\": \"Naturhistorisk Museum Skagen\",\n        \"categoryId\": \"museer\",\n        \"lat\": 57.7198898,\n        \"lng\": 10.535258,\n        \"addr\": \"Flagbakkevej 30, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Naturhistorisk-Museum-Skagen-1.jpg\",\n        \"desc\": \"Udforsk Skagens rige dyre- og planteliv gennem sp\u00e6ndende udstillinger og naturformidling i smukke omgivelser ved Grenen.\"\n    },\n    {\n        \"name\": \"Skagen Bamsemuseum & Iscaf\u00e9\",\n        \"categoryId\": \"museer\",\n        \"lat\": 57.7256653,\n        \"lng\": 10.5952298,\n        \"addr\": \"Oddevej 2A, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Skagen-Bamsemuseum-1.jpg\",\n        \"desc\": \"En hyggelig og nostalgisk oplevelse med over 1.000 bamser \u2013 ideel for familier. Nyd ogs\u00e5 l\u00e6kker is i den tilh\u00f8rende caf\u00e9.\"\n    },\n    {\n        \"name\": \"Skagen Bunkermuseum\",\n        \"categoryId\": \"museer\",\n        \"lat\": 57.7389808,\n        \"lng\": 10.6291941,\n        \"addr\": \"Fyrvej 59, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Skagen-Bunkermuseum-3.jpg\",\n        \"desc\": \"Tr\u00e6d ind i historien i en \u00e6gte tysk bunker fra 2. verdenskrig. Se autentiske uniformer, v\u00e5ben og udstyr i unikke omgivelser.\"\n    },\n    {\n        \"name\": \"Skagen Kunstmuseum\",\n        \"categoryId\": \"museer\",\n        \"lat\": 57.7248099,\n        \"lng\": 10.5943515,\n        \"addr\": \"Br\u00f8ndumsvej 4, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Skagens-Museum-fiskeren.jpg\",\n        \"desc\": \"Oplev v\u00e6rker af Skagensmalerne som Kr\u00f8yer, Ancher og Tuxen i dette anerkendte museum med historiske og moderne kunstsamlinger.\"\n    },\n    {\n        \"name\": \"Skagen Odde Naturcenter\",\n        \"categoryId\": \"museer\",\n        \"lat\": 57.7399501,\n        \"lng\": 10.5929653,\n        \"addr\": \"B\u00f8jlevejen 66, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Skagen-Odde-Naturcenter-2.jpg\",\n        \"desc\": \"Et arkitektonisk mesterv\u00e6rk af J\u00f8rn Utzon \u2013 interaktive udstillinger om vind, sand, hav og lys i Skagens barske natur.\"\n    },\n    {\n        \"name\": \"Voergaard Slot\",\n        \"categoryId\": \"museer\",\n        \"lat\": 57.2425349,\n        \"lng\": 10.3328531,\n        \"addr\": \"Voergaard 6, 9330 Dronninglund\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Voergaard-Slot-1.jpg\",\n        \"desc\": \"Et af Danmarks smukkeste ren\u00e6ssanceslotte med imponerende kunstsamlinger, historiske rundvisninger og kulturelle arrangementer.\"\n    },\n   \n  \n    ]\n  },\n  \n  {\n    id: \"restauranter\",\n    label: \"Restauranter\",\n    items: [\n       {\n        \"name\": \"Restaurant Asia\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.7216098,\n        \"lng\": 10.5852201,\n        \"addr\": \"Sct. Laurentiivej 63 A, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Restaurant-Asia-facade.jpg\",\n        \"desc\": \"Autentiske asiatiske retter midt i Skagen \u2013 nyd sushi, wok og vietnamesiske specialiteter i moderne omgivelser.\"\n    },\n    {\n        \"name\": \"Bodilles Kro\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.7212497,\n        \"lng\": 10.5886952,\n        \"addr\": \"\u00d8stre Strandvej 11, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Bodilles-Kro-Skagen-1.jpg\",\n        \"desc\": \"Hyggelig dansk kro med klassiske retter, sm\u00f8rrebr\u00f8d og hjemmelavede desserter \u2013 t\u00e6t p\u00e5 havn og centrum.\"\n    },\n    {\n        \"name\": \"Dit Sm\u00f8rrebr\u00f8d\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.7207961,\n        \"lng\": 10.5874138,\n        \"addr\": \"\u00d8stre Strandvej 1, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Dit-Smorrebrod-Skagen-3.jpg\",\n        \"desc\": \"Specialiseret i h\u00f8jtbelagt sm\u00f8rrebr\u00f8d med friske r\u00e5varer \u2013 en \u00e6gte skagensk frokostoplevelse ved havnefronten.\"\n    },\n    {\n        \"name\": \"Frk. Madsens Spisehus\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.3347612,\n        \"lng\": 10.5140686,\n        \"addr\": \"Pindborggade 1B, 9300 S\u00e6by\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Frk-Madsens-Spisehus-Saeby-1.jpg\",\n        \"desc\": \"Charmerende spisehus i hjertet af S\u00e6by \u2013 kendt for gode r\u00e5varer, lokale retter og personlig betjening.\"\n    },\n    {\n        \"name\": \"Jakobs Caf\u00e9 & Bar\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.7219764,\n        \"lng\": 10.5837954,\n        \"addr\": \"Havnevej 4 A, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Jakobs-Cafe-Bar-1.jpg\",\n        \"desc\": \"Livlig caf\u00e9 og bar med god stemning og bredt udvalg af retter, vine og cocktails \u2013 et popul\u00e6rt m\u00f8dested i Skagen.\"\n    },\n    {\n        \"name\": \"Jerry\u00b4s Restaurant & Bryghus\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.4386614,\n        \"lng\": 10.5334627,\n        \"addr\": \"Amaliegade 2, 9900 Frederikshavn\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Jerrys-Restaurant-og-Bryghus-2.jpg\",\n        \"desc\": \"Bryghus og restaurant med hjemmelavet \u00f8l og solide m\u00e5ltider \u2013 en lokal favorit i Frederikshavn.\"\n    },\n    {\n        \"name\": \"McKnudsen\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.7220146,\n        \"lng\": 10.5846873,\n        \"addr\": \"Sct. Laurentiivej 56, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/McKnudsens-Skagen-2.jpg\",\n        \"desc\": \"Afslappet og moderne madoplevelse i centrum af Skagen \u2013 kendt for brunch, burgere og hyggelig atmosf\u00e6re.\"\n    },\n    {\n        \"name\": \"Moby Dick\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.4360649,\n        \"lng\": 10.533328,\n        \"addr\": \"Boensgade, 9900 Frederikshavn\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/skaermbillede_2018-01-18_kl._22.21.22_183.png\",\n        \"desc\": \"Frederikshavns maritimt inspirerede restaurant med fisk, skaldyr og udsigt over havet \u2013 ideel til en aften ude.\"\n    },\n    {\n        \"name\": \"Pakhuset\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.7185845,\n        \"lng\": 10.5843623,\n        \"addr\": \"R\u00f8dsp\u00e6ttevej 6, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Pakhuset-Skagen-2.jpg\",\n        \"desc\": \"Skagens ikoniske havnerestaurant med fokus p\u00e5 fisk, skaldyr og lokale r\u00e5varer \u2013 klassisk og stemningsfuldt.\"\n    },\n    {\n        \"name\": \"Restaurant Hyttefadet\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.7280288,\n        \"lng\": 10.5228371,\n        \"addr\": \"Jens Bergs Vej 2a, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Restaurant-Hyttefadet-Gl.-Skagen-1.jpg\",\n        \"desc\": \"Maritim restaurant n\u00e6r havnen i Skagen \u2013 kendt for frisk fisk og \u00e6gte dansk hygge.\"\n    },\n    {\n        \"name\": \"Skagen Fiskerestaurant\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.7193015,\n        \"lng\": 10.5861965,\n        \"addr\": \"Fiskehuskajen 13, 9990 Skagen\",\n        \"photo\": \"https:\/\/slowguide.dk\/wp-content\/uploads\/2025\/06\/Skagen-Fiskerestaurant-2.jpg\",\n        \"desc\": \"Havudsigt, skaldyr og gourmetfisk: oplev den originale Skagen Fiskerestaurant med kvalitet og tradition i h\u00f8js\u00e6det.\"\n    },\n    {\n        \"name\": \"Highway 69 S\u00e6by\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.343995633357274,\n        \"lng\": 10.514034919700228,\n        \"addr\": \"Frederikshavnsvej 69, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/highway-69-saeby\/\"\n      },\n       {\n        \"name\": \"Bistro V\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.33428226921842,\n        \"lng\": 10.528000152154553,\n        \"addr\": \"Havnen 2, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/bistro-v\/\"\n      },\n      {\n        \"name\": \"S\u00e6by Svogers Spiseri\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.3350010477688,\n        \"lng\": 10.52012384892445,\n        \"addr\": \"Vestergade 51, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/saeby-svogers-spiseri\/\"\n      },\n      {\n        \"name\": \"Caf\u00e9 Mathilde\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.334790414754444,\n        \"lng\": 10.518849911185706,\n        \"addr\": \"Vestergade 29, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/cafe-mathilde\/\"\n      },\n      {\n        \"name\": \"Oste Fruen\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.334341215777286,\n        \"lng\": 10.51801910344969,\n        \"addr\": \"Gr\u00f8nnegade 26, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/oste-fruen\/\"\n      },\n      {\n        \"name\": \"S\u00e6by Bryghus\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.33300587982599,\n        \"lng\": 10.5313932151707,\n        \"addr\": \"Havnen 12b, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/saeby-bryghus\/\"\n      },\n      {\n        \"name\": \"Vinuniverset\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.33478994307606,\n        \"lng\": 10.519579695200207,\n        \"addr\": \"Vestergade 32, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/vinuniverset\/\"\n      },\n        {\n      \"name\": \"Mimis Bistro\",\n      \"categoryId\": \"restauranter\",\n      \"lat\": 57.49448188530688,\n      \"lng\": 10.501308627381588,\n      \"addr\": \"VAuktionskaj 1, 9970 Strandby, Denmark\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/mimis-bistro\/\"\n    },\n    {\n      \"name\": \"Den Bl\u00e5 Caf\u00e9 i Strandby\",\n      \"categoryId\": \"restauranter\",\n      \"lat\": 57.49246241340273,\n      \"lng\": 10.502795606746155,\n      \"addr\": \"S\u00f8ndre Havnevej 27, 9970 Strandby, Denmark\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/den-blaa-cafe\/\"\n    },\n    {\n        \"name\": \"Burger King\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.44502925868774,\n        \"lng\": 10.539916804001846,\n        \"addr\": \"Danmarksgade 3, 9900 Frederikshavn\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/burger-king\/\"\n      },\n      {\n        \"name\": \"Burger King\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.455566967121044,\n        \"lng\": 10.015592599106242,\n        \"addr\": \"Frederikshavnsvej 86, 9800 Hj\u00f8rring\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/burger-king\/\"\n      },\n       {\n        \"name\": \"Restaurant Moby Dick\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.43606132854884,\n        \"lng\": 10.535952164372096,\n        \"addr\": \"Boensgade 6 , 9900 Frederikshavn\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/restaurant-moby-dick\/\"\n      },\n       {\n        \"name\": \"Aalb\u00e6k Badehotel\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.594081062064205,\n        \"lng\": 10.413978559183695,\n        \"addr\": \"Skagensvej 42, 9982 Aalb\u00e6k\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/aalbaek-badehotel\/\"\n      },\n      {\n        \"name\": \"Hjorths Badehotel\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.66010902043799,\n        \"lng\": 10.389861672516261,\n        \"addr\": \"Kandebakkevej 17, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/hjorths-badehotel\/\"\n      },\n      {\n        \"name\": \"Plesners Badehotel\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.72238597429572,\n        \"lng\": 10.59300991300038,\n        \"addr\": \"Holstvej 4-8, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/plesners-badehotel\/\"\n      },\n      {\n        \"name\": \"Ruths Hotel\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.7271250722674,\n        \"lng\": 10.521350859509994,\n        \"addr\": \"Hans Ruths Vej 1, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/ruths-hotel\/\"\n      },\n      {\n        \"name\": \"Skagen Hotel\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.723524973427246,\n        \"lng\": 10.592762194146266,\n        \"addr\": \"Sct. Laurentii Vej 35, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-hotel\/\"\n      },\n       {\n        \"name\": \"Green\u2019s Pub og Caf\u00e9\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.721837102530934,\n        \"lng\": 10.589186755658115,\n        \"addr\": \"Havnevej 3, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/greens-pub-og-cafe\/\"\n      },\n      {\n        \"name\": \"Restaurant De 2 Have\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.73972433756743,\n        \"lng\": 10.634124469128066,\n        \"addr\": \"Fyrvej 42, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/restaurant-de-2-have\/\"\n      },\n      {\n        \"name\": \"J\u00f8rgens Spisehus\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.717546236845436,\n        \"lng\": 10.584547831290264,\n        \"addr\": \"Sardinvej 7, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/joergens-spisehus\/\"\n      },\n      {\n        \"name\": \"T\u00d8RST Cocktailbar\",\n        \"categoryId\": \"restauranter\",\n        \"lat\": 57.721093868338215,\n        \"lng\": 10.589674245163637,\n        \"addr\": \"Havnen 11, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/toerst\/\"\n      }\n      \n ]\n  },\n  \n  \n  {\n    id: \"butikker\",\n    label: \"Butikker\",\n    items: [\n    \n    {\n        \"name\": \"Botex\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.4438299,\n        \"lng\": 10.5360901,\n        \"addr\": \"Danmarksgade 24, 9900 Frederikshavn\"\n    },\n    \n    {\n        \"name\": \"Brinck Isenkram\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.720787,\n        \"lng\": 10.5830547,\n        \"addr\": \"Sct. Laurentii Vej 81, 9990 Skagen\"\n    },\n    {\n        \"name\": \"Bygma\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7258986,\n        \"lng\": 10.5607873,\n        \"addr\": \"Kattegatvej 4, 9990 Skagen\"\n    },\n    {\n        \"name\": \"Mopshop\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7218091,\n        \"lng\": 10.5852831,\n        \"addr\": \"Sct. Laurentiivej 61, 9990 Skagen\"\n    },\n    \n    {\n        \"name\": \"Fri Bikeshop Skagen\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7188516,\n        \"lng\": 10.5816916,\n        \"addr\": \"Fiskergangen 10, 9990 Skagen\"\n    },\n    {\n        \"name\": \"HJ Kontorcenter\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.4538298,\n        \"lng\": 10.4882649,\n        \"addr\": \"Virksomhedsvej 2, 9900 Fr.havn\"\n    },\n   \n    {\n        \"name\": \"Jensen Jordb\u00e6r\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.3632159,\n        \"lng\": 10.4285521,\n        \"addr\": \"Hestvangvej 6, 9300 S\u00e6by\"\n    },\n    {\n        \"name\": \"Sport 24\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.722508,\n        \"lng\": 10.5872244,\n        \"addr\": \"Sct. Laurentii Vej 38, 9990 Skagen\"\n    },\n    {\n        \"name\": \"Ishj\u00f8rnet\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7222275,\n        \"lng\": 10.5860147,\n        \"addr\": \"Sct. Laurentiivej 46A, 9990 Skagen\"\n    },\n    \n    {\n        \"name\": \"Laurentius\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7238343,\n        \"lng\": 10.5910554,\n        \"addr\": \"Sct. Laurentii Vej 29, 9990 Skagen\"\n    },\n    {\n        \"name\": \"Matas - Mholding\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7227879,\n        \"lng\": 10.5884046,\n        \"addr\": \"Sct. Laurentii Vej 45, 9990 Skagen\"\n    },\n    \n    {\n        \"name\": \"Ny Form\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.722289,\n        \"lng\": 10.5870341,\n        \"addr\": \"Sct. Laurentii Vej 51 C, 9990 Skagen\"\n    },\n   \n    {\n        \"name\": \"Skagen Apotek\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7223058,\n        \"lng\": 10.586407,\n        \"addr\": \"Sct. Laurentii Vej 44, 9990 Skagen\"\n    },\n   \n    {\n        \"name\": \"Skagen Boghandel\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7231875,\n        \"lng\": 10.5887322,\n        \"addr\": \"Sct. Laurentii Vej 26C, 9990 Skagen\"\n    },\n    {\n        \"name\": \"Skagen Frisk\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7215643,\n        \"lng\": 10.589409,\n        \"addr\": \"Isvej 1, 9990 Skagen\"\n    },\n    {\n        \"name\": \"Skagen Toys\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7214022,\n        \"lng\": 10.5839842,\n        \"addr\": \"Sct. Laurentii Vej 71, 9990 Skagen\"\n    },\n    {\n        \"name\": \"Skoringen\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7218618,\n        \"lng\": 10.5822541,\n        \"addr\": \"Sct. Laurentii Vej 58, 9990 Skagen\"\n    },\n    \n    {\n        \"name\": \"Slagter Munch\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7252467,\n        \"lng\": 10.5925697,\n        \"addr\": \"Sct. Laurentii Vej 1, 9990 Skagen\"\n    },\n    \n    {\n        \"name\": \"Super Brugsen\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7231487,\n        \"lng\": 10.5878644,\n        \"addr\": \"Sct. Laurentii Vej 28, 9990 Skagen\"\n    },\n    {\n        \"name\": \"S\u00e6by Apotek\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.3349378,\n        \"lng\": 10.5155481,\n        \"addr\": \"S\u00f8ndergade 7, 9300 S\u00e6by\"\n    },\n   \n   \n    {\n        \"name\": \"Tonny's Blomster\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7224618,\n        \"lng\": 10.5862605,\n        \"addr\": \"Skr\u00e5vej 6 E, 9990 Skagen\"\n    },\n    \n    {\n        \"name\": \"Vinspecialisten\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.720662,\n        \"lng\": 10.5801676,\n        \"addr\": \"Sct. Laurentii vej 43, 9990 Skagen\"\n    },\n    {\n        \"name\": \"Aavangs Fiskehus\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7192831,\n        \"lng\": 10.5855273,\n        \"addr\": \"Fiskehuskajen 1, 9990 Skagen\"\n    },\n    {\n        \"name\": \"Ravv\u00e6rkstedet\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.54115835033085,\n        \"lng\": 10.08832068448713,\n        \"addr\": \"H\u00f8jtvedvej 7 Mygdal, 9800 Hj\u00f8rring\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/ravvaerkstedet\/\"\n      },\n      {\n        \"name\": \"Kjoleg\u00e5rden S\u00e6by\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.357721760268994,\n        \"lng\": 10.42569673558205,\n        \"addr\": \"Karupvej 51, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/kjolegaarden-i-saeby\/\"\n      },\n      {\n        \"name\": \"Glashus S\u00e6by\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.33131656031861,\n        \"lng\": 10.529063741020181,\n        \"addr\": \"Gasv\u00e6rksvej 40A, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/glashuset\/\"\n      },\n      {\n        \"name\": \"S\u00e6by Cykler\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.346076257773014,\n        \"lng\": 10.510766539209339,\n        \"addr\": \"Boelsmindevej 5, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/saeby_cykler\/\"\n      },\n      {\n        \"name\": \"Torvets Kaffe og Chokolade\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.33432878544417,\n        \"lng\": 10.517954761881262,\n        \"addr\": \"Gr\u00f8nnegade 26, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/torvets-kaffe-og-chokolade\/\"\n      },\n      {\n        \"name\": \"Fru B\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.334143,\n        \"lng\": 10.518808,\n        \"addr\": \"Laurits Christensens Vej 53, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/fru-b\/\"\n      },\n      {\n        \"name\": \"Thiele S\u00e6by\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.334004,\n        \"lng\": 10.516663,\n        \"addr\": \"Gr\u00f8nnegade 14, 9300 S\u00e6by, Denmark\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/thiele-saeby\/\"\n      },\n      {\n        \"name\": \"Annette\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.33487011009921,\n        \"lng\": 10.518270195813598,\n        \"addr\": \"Vestergade 23, 9300 S\u00e6by, Denmark\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/annette-butik\/\"\n      },\n      {\n        \"name\": \"Super Brugsen S\u00e6by\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.333260277513254,\n        \"lng\": 10.51500091838788,\n        \"addr\": \"Chr Pedersensvej 4, 9300 S\u00e6by, Denmark\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/super-brugsen-saeby\/\"\n      },\n      {\n        \"name\": \"Slagter Tranholm\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.33480952673388,\n        \"lng\": 10.519687116948793,\n        \"addr\": \"Vestergade 32 A, 9300 S\u00e6by, Denmark\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/da_dk\/slagter-tranholm\/\"\n      },\n      {\n        \"name\": \"Vinuniverset\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.33478994307606,\n        \"lng\": 10.519579695200207,\n        \"addr\": \"Vestergade 32, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/vinuniverset\/\"\n      },\n      {\n        \"name\": \"Kon-tur\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.33456656482843,\n        \"lng\": 10.517081203837778,\n        \"addr\": \"Vestergade 15, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/kontur\/\"\n      },\n       {\n      \"name\": \"Brugsen Strandby\",\n      \"categoryId\": \"butikker\",\n      \"lat\": 57.494435385136,\n      \"lng\": 10.500952344183982,\n      \"addr\": \"Havnevej 29, 9970 Strandby, Denmark\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/brugsen-strandby\/\"\n    },\n    {\n      \"name\": \"Knud Thomsen Fiskeeksport\",\n      \"categoryId\": \"butikker\",\n      \"lat\": 57.494839348286014,\n      \"lng\": 10.501731735697092,\n      \"addr\": \"Hyttefadsvej 6, 9970 Strandby , Denmark\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/knud-thomsen-fiskeeksport\/\"\n    },\n\n      {\n        \"name\": \"K\u00e6re B\u00f8rn\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.446312,\n        \"lng\": 10.507822,\n        \"addr\": \"Hj\u00f8rringvej 143F, 9900 Frederikshavn\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/kaere-boern-coolshop\/\"\n      },\n      {\n        \"name\": \"THIELE Frederikshavn\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.43932724403455,\n        \"lng\": 10.535507752946074,\n        \"addr\": \"Danmarksgade 70 A, 9900 Frederikshavn\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/thiele-frederikshavn\/\"\n      },\n      {\n        \"name\": \"HUSET HOLST A\/S\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.72315384663844,\n        \"lng\": 10.588167532934769,\n        \"addr\": \"Chr. Xs Vej 16, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/huset-holst-a-s\/\"\n      },\n      {\n        \"name\": \"Stenbroen Guld & Ure\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.722182214474266,\n        \"lng\": 10.58822094617874,\n        \"addr\": \"Sct. Laurentii Vej 48, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/stenbroen-guld-og-ure\/\"\n      },\n       {\n        \"name\": \"BySKAGEN\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.72240421044665,\n        \"lng\": 10.58521492601584,\n        \"addr\": \"Sct. Laurentii Vej 62A, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/byskagen\/\"\n      },\n        {\n        \"name\": \"Skagen Bageri og Caf\u00e9\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.72000368741943,\n        \"lng\": 10.583961407175575,\n        \"addr\": \"Sct. Laurentiivej 82, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-bageri-og-cafe\/\"\n      },\n      \n      {\n        \"name\": \"Pier 1\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.718380208869526,\n        \"lng\": 10.586615639923037,\n        \"addr\": \"Nordkajen 2, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/pier-1\/\"\n      },\n       {\n        \"name\": \"Showroom ved Galleri Bo\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.72141158515958,\n        \"lng\": 10.589198068392417,\n        \"addr\": \"Havnevej 10, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/galleri-skagen\/\"\n      },\n      {\n        \"name\": \"Meny\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.729720146401675,\n        \"lng\": 10.54956073750628,\n        \"addr\": \"Doggerbanke 2, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/meny\/\"\n      },\n      {\n        \"name\": \"North Coast\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.72241899849636,\n        \"lng\": 10.589214227551352,\n        \"addr\": \"Sct. Laurentii Vej 42, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/north-coast\/\"\n      },\n      {\n        \"name\": \"Sko\u00e6sken\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.72219647223281,\n        \"lng\": 10.588445933342777,\n        \"addr\": \"Sct. Laurentii Vej 46c, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/skoaesken\/\"\n      },\n      {\n        \"name\": \"THIELE Skagen\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.721502571816565,\n        \"lng\": 10.58674062023989,\n        \"addr\": \"Sct. Laurentii Vej 69, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/thiele-skagen\/\"\n      },\n      {\n        \"name\": \"Your Art Caf\u00e9\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.33415438509261,\n        \"lng\": 10.523132956480039,\n        \"addr\": \"Algade 14, 9300 S\u00e6by\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/your-art-cafe\/\"\n      },\n      {\n        \"name\": \"Butik Skagen\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.722067336899386,\n        \"lng\": 10.587255895891877,\n        \"addr\": \"Sct. Laurentii Vej 56, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/butik-skagen\/\"\n      },\n      {\n        \"name\": \"FF Handel Skagen\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.71960880389519,\n        \"lng\": 10.595667034097191,\n        \"addr\": \"Havnevagtvej 12, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/ff-handel-skagen\/\"\n      },\n      {\n        \"name\": \"Skagen FRISK \u2013 Fisk & Skaldyr\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.721534632484804,\n        \"lng\": 10.594187348470465,\n        \"addr\": \"Isvej 1, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-frisk-fisk-skaldyr\/\"\n      },\n      {\n        \"name\": \"Skagen Ostehus\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.7208676008143,\n        \"lng\": 10.589616927639804,\n        \"addr\": \"Havnevej 14, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-ostehus\/\"\n      },\n      {\n        \"name\": \"Vinoble Skagen\",\n        \"categoryId\": \"butikker\",\n        \"lat\": 57.72013210751105,\n        \"lng\": 10.588930444207914,\n        \"addr\": \"Vestre Strandvej 4, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/vinoble-skagen\/\"\n      }\n\n    ]\n  },\n  \n  \n  \n  \n  \n  \n   {\n    id: \"camping\",\n    label: \"Camping\",\n    items: [\n     {\n      \"name\": \"Nordstrand Camping\",\n      \"categoryId\": \"camping\",\n      \"lat\": 57.464425558925065,\n      \"lng\": 10.527762712336868,\n      \"addr\": \"Apholmenvej 40, 9900 Frederikshavn\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/nordstrand-camping-frederikhavn\/\"\n     },\n      {\n      \"name\": \"First Camp Grenen Strand\",\n      \"categoryId\": \"camping\",\n      \"lat\": 57.731251,\n      \"lng\": 10.613962,\n      \"addr\": \"Fyrvej 16, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/first-camp-grenen-strand\/\"\n    },\n    {\n      \"name\": \"First Camp R\u00e5bjerg Mile\",\n      \"categoryId\": \"camping\",\n      \"lat\": 57.653700,\n      \"lng\": 10.452270,\n      \"addr\": \"Kandestedvej 55, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/first-camp-raabjerg-mile\/\"\n    },\n    {\n      \"name\": \"Skagen Sydstrand Camping\",\n      \"categoryId\": \"camping\",\n      \"lat\": 57.644351,\n      \"lng\": 10.462200,\n      \"addr\": \"\u00c5lb\u00e6kvej 288, 9982 \u00c5lb\u00e6k\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-sydstrand-camping\/\"\n    },\n    {\n      \"name\": \"Skiveren Camping\",\n      \"categoryId\": \"camping\",\n      \"lat\": 57.616404,\n      \"lng\": 10.279277,\n      \"addr\": \"Niels Skiverens Vej 5-7, 9982 \u00c5lb\u00e6k\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/skiveren-camping\/\"\n    },\n    {\n      \"name\": \"Poul Eeg Camping\",\n      \"categoryId\": \"camping\",\n      \"lat\": 57.734494,\n      \"lng\": 10.604090,\n      \"addr\": \"B\u00f8jlevejen 21, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/poul-eeg-camping\/\"\n    }\n   \n    ]\n  },\n  \n  \n \n  \n  {\n    id: \"hotel\",\n    label: \"Hotel\",\n    items: [\n     {\n        \"name\": \"BB Hotels Frederikshavn (turisthotellet)\",\n        \"categoryId\": \"hotel\",\n        \"lat\": 57.4351225,\n        \"lng\": 10.5323018,\n        \"addr\": \"Margrethevej 5, 9900 Frederikshavn\"\n    },\n    \n    \n    \n    {\n        \"name\": \"Plesner Badehotel\",\n        \"categoryId\": \"hotel\",\n        \"lat\": 57.7222914,\n        \"lng\": 10.5880961,\n        \"addr\": \"Holstvej 8, 9990 Skagen\"\n    },\n    \n    \n   \n    \n    {\n        \"name\": \"Aalb\u00e6k Badehotel\",\n        \"categoryId\": \"hotel\",\n        \"lat\": 57.5940764,\n        \"lng\": 10.4113993,\n        \"addr\": \"Skagensvej 42, \u00c5lb\u00e6k By, 9982 \u00c5lb\u00e6k\"\n    },\n    {\n      \"name\": \"Strandby Badehotel\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.49414340870556,\n      \"lng\": 10.498784285833919,\n      \"addr\": \"Havnevej 11, 9970 Strandby, Denmark\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/strandby-badehotel\/\"\n    },\n    {\n      \"name\": \"Danhostel Frederikshavn\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.43669255371079,\n      \"lng\": 10.535033688037927,\n      \"addr\": \"L\u00e6s\u00f8gade 18, 9900 Frederikshavn\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/danhostel-frederikshavn-city\/\"\n    },\n    {\n      \"name\": \"Quality Hotel The Reef\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.439003155510285,\n      \"lng\": 10.53693045513972,\n      \"addr\": \"Tordenskjoldsgade 14, 9900 Frederikshavn\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/quality-hotel-the-reef\/\"\n    },\n    {\n      \"name\": \"Color Hotel Skagen\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.72329789856428,\n      \"lng\": 10.556616964793267,\n      \"addr\": \"Gl. Landevej 39, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/color-hotel-skagen\/\"\n    },\n    {\n      \"name\": \"Langagergaard\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.65604839323597,\n      \"lng\": 10.446817882483456,\n      \"addr\": \"Kandestedvej 76, Hulsig Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/langagergaard\/\"\n    },\n    {\n      \"name\": \"Br\u00f8ndums Hotel\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.72477832189682,\n      \"lng\": 10.598362838523878,\n      \"addr\": \"Anchersvej 3, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/broendums-hotel\/\"\n    },\n    {\n      \"name\": \"Danhostel Skagen\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.72179842360213,\n      \"lng\": 10.568323786423312,\n      \"addr\": \"Rolighedsvej 2, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/danhostel-skagen\/\"\n    },\n    {\n      \"name\": \"Foldens Hotel\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.7231028983197,\n      \"lng\": 10.59174909002715,\n      \"addr\": \"Sct. Laurentii Vej 41, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/foldens-hotel\/\"\n    },\n    {\n      \"name\": \"Aalb\u00e6k Badehotel\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.594081062064205,\n      \"lng\": 10.413978559183695,\n      \"addr\": \"Skagensvej 42, 9982 Aalb\u00e6k\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/aalbaek-badehotel\/\"\n    },\n    {\n      \"name\": \"Hjorths Badehotel\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.66010902043799,\n      \"lng\": 10.389861672516261,\n      \"addr\": \"Kandebakkevej 17, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/hjorths-badehotel\/\"\n    },\n    {\n      \"name\": \"H\u00f8jengran Time Share\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.72154061327354,\n      \"lng\": 10.528941853481173,\n      \"addr\": \"Flagbakkevej 28, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/hoejengran-time-share\/\"\n    },\n    {\n      \"name\": \"Plesners Badehotel\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.72238597429572,\n      \"lng\": 10.59300991300038,\n      \"addr\": \"Holstvej 4-8, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/plesners-badehotel\/\"\n    },\n    {\n      \"name\": \"Ruths Hotel\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.7271250722674,\n      \"lng\": 10.521350859509994,\n      \"addr\": \"Hans Ruths Vej 1, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/ruths-hotel\/\"\n    },\n    {\n      \"name\": \"Skagen Hotel\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.723524973427246,\n      \"lng\": 10.592762194146266,\n      \"addr\": \"Sct. Laurentii Vej 35, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-hotel\/\"\n    },\n    {\n      \"name\": \"Hotel Inger\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.6583774642392,\n      \"lng\": 10.461128538000253,\n      \"addr\": \"Hulsigvej 17, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/hotel-inger\/\"\n    },\n    {\n      \"name\": \"Hotel Marie\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.72046795090024,\n      \"lng\": 10.589085073890962,\n      \"addr\": \"Havneplads 6, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/hotel-marie\/\"\n    },\n    {\n      \"name\": \"Hotel Tannishus\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.59323968383357,\n      \"lng\": 10.184604021861302,\n      \"addr\": \"Tannisbugtvej 123, Tversted Strand, 9881 Bindslev\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/hotel-tannishus\/\"\n    },\n    {\n      \"name\": \"Skagen Strand Feriecenter\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.66052217344832,\n      \"lng\": 10.465401440105477,\n      \"addr\": \"Tranevej 108, Hulsig, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-strand-feriecenter\/\"\n    },\n    {\n      \"name\": \"Skagen Harbour Hotel\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.71759557882314,\n      \"lng\": 10.582007185929974,\n      \"addr\": \"Vestre Strandvej 28, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-harbour-hotel\/\"\n    },\n    {\n      \"name\": \"Skagen Motel\",\n      \"categoryId\": \"hotel\",\n      \"lat\": 57.722254790773704,\n      \"lng\": 10.573531315863042,\n      \"addr\": \"Frederikshavnsvej 8, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-motel\/\"\n    }\n  \n    ]\n  },\n  \n  \n   {\n    id: \"natteliv\",\n    label: \"Natteliv\",\n    items: [\n         {\n        \"name\": \"Buddy Holly\",\n        \"categoryId\": \"natteliv\",\n        \"lat\": 57.72079446586812,\n        \"lng\": 10.58964816097287,\n        \"addr\": \"Havnevej 16, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/buddy-holly\/\"\n      },\n      {\n        \"name\": \"Green\u2019s Pub og Caf\u00e9\",\n        \"categoryId\": \"natteliv\",\n        \"lat\": 57.721837102530934,\n        \"lng\": 10.589186755658115,\n        \"addr\": \"Havnevej 3, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/greens-pub-og-cafe\/\"\n      },\n       {\n        \"name\": \"T\u00d8RST Cocktailbar\",\n        \"categoryId\": \"natteliv\",\n        \"lat\": 57.721093868338215,\n        \"lng\": 10.589674245163637,\n        \"addr\": \"Havnen 11, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/toerst\/\"\n      },\n      {\n        \"name\": \"Jakobs Caf\u00e9 og Bar\",\n        \"categoryId\": \"natteliv\",\n        \"lat\": 57.721994868465565,\n        \"lng\": 10.5886677171461,\n        \"addr\": \"Havnegade 4A, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/jakobs-cafe-og-bar\/\"\n      },\n     \n    {\n        \"name\": \"Jollehuset\",\n        \"categoryId\": \"natteliv\",\n        \"lat\": 57.7189921,\n        \"lng\": 10.5865815,\n        \"addr\": \"Fiskehuskaj 25, 9990 Skagen\"\n    },\n    {\n        \"name\": \"Linie 74\",\n        \"categoryId\": \"natteliv\",\n        \"lat\": 57.7207716,\n        \"lng\": 10.5826395,\n        \"addr\": \"Sct. Laurentiivej 74, 9990 Skagen\"\n    },\n    {\n        \"name\": \"Tordenskjolds Kroen\",\n        \"categoryId\": \"natteliv\",\n        \"lat\": 57.4375482,\n        \"lng\": 10.5339634,\n        \"addr\": \"Lodsgade 12B, 9900 Frederikshavn\"\n    },\n    \n    {\n        \"name\": \"Wittco Fiskeeksport\",\n        \"categoryId\": \"natteliv\",\n        \"lat\": 57.7189614,\n        \"lng\": 10.5867188,\n        \"addr\": \"Fiskehuskajen 29 - 31, 9990 Skagen\"\n    }\n    ]\n  },\n  \n   {\n    \"id\": \"gratisoplevelser\",\n    \"label\": \"Gratis Oplevelser\",\n    \"items\": [\n      {\n        \"name\": \"Den Svenske S\u00f8mandskirke\",\n        \"categoryId\": \"gratisoplevelser\",\n        \"lat\": 57.71786098577741,\n        \"lng\": 10.582549227300968,\n        \"addr\": \"Vestre Strandvej 24, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/den-svenske-soemandskirke\/\"\n      },\n      {\n        \"name\": \"Skagen Kirke\",\n        \"categoryId\": \"gratisoplevelser\",\n        \"lat\": 57.72147538110343,\n        \"lng\": 10.584986414490997,\n        \"addr\": \"Ved Kirken 2, 9990 Skagen\",\n        \"link\": \"https:\/\/visitvendsyssel.dk\/skagen-kirke\/\"\n      },\n       {\n      \"name\": \"Grenen\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.738892737333835,\n      \"lng\": 10.633860055705311,\n      \"addr\": \"Fyrvej 38, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Vippefyret\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.726807,\n      \"lng\": 10.608249,\n      \"addr\": \"Fyrvej 1, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Lokalsamlingen Skagen\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.7236,\n      \"lng\": 10.5831,\n      \"addr\": \"Sct. Laurentii Vej 113, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Kompasrosen af Cronhammar (Solnedgangspladsen)\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.72940208397021,\n      \"lng\": 10.521759353703056,\n      \"addr\": \"Solnedgangen 2, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Den Tilsandede Kirke\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.713631,\n      \"lng\": 10.550506,\n      \"addr\": \"Gammel Landevej 63, 9990 Skagen\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"R\u00e5bjerg Mile\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.6542065979989,\n      \"lng\": 10.408176588261528,\n      \"addr\": \"R\u00e5bjerg Mile Vej 2, 9990 Skagen (p-pladsen ved milen)\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Palmestranden (sommeroplevelse)\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.462833,\n      \"lng\": 10.537488,\n      \"addr\": \"Nordre Strandvej, 9900 Frederikshavn\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Blaksh\u00f8j J\u00e6ttestue\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.395041,\n      \"lng\": 10.414991,\n      \"addr\": \"Blaksh\u00f8jg\u00e5rdsvej 6, 9900 Frederikshavn\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Bangsbo Botaniske Have\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.420027,\n      \"lng\": 10.5017654,\n      \"addr\": \"Dronning Margrethesv Vej 3, 9900 Frederikshavn\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Pikkerbakken (udsigtspunkt)\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.41603,\n      \"lng\": 10.513372,\n      \"addr\": \"Dronningestien, 9900 Frederikshavn\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Bindslev Gl. Elv\u00e6rk\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.53898,\n      \"lng\": 10.18692,\n      \"addr\": \"Sdr. Bindslevvej 2, 9881 Bindslev\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Tornby Gamle K\u00f8bmandsg\u00e5rd\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.5747,\n      \"lng\": 9.9396,\n      \"addr\": \"Hovedvejen 61, 9850 Hirtshals\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Bellevue Udsigtst\u00e5rn\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.4440,\n      \"lng\": 10.0245,\n      \"addr\": \"Toelh\u00f8jvej, 9800 Hj\u00f8rring\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Naturomr\u00e5det ved herreg\u00e5rden Odden\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.4485,\n      \"lng\": 9.9151,\n      \"addr\": \"Oddenvej 31, Mygdal, 9800 Hj\u00f8rring\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Eventyrstien\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.15691,\n      \"lng\": 10.27708,\n      \"addr\": \"Slotsgade 13, 9330 Dronninglund\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n     {\n      \"name\": \"Dorf M\u00f8lleg\u00e5rd\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.22139,\n      \"lng\": 10.28418,\n      \"addr\": \"Storskovvej 39, 9330 Dronninglund\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Porten til Jyske \u00c5s\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.21216,\n      \"lng\": 10.20741,\n      \"addr\": \"Landvadh\u00f8j 16, 9320 Hjallerup\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Hammer Bakker\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.13418951297661,\n      \"lng\": 10.023748502890124,\n      \"addr\": \"Gennem Bakkerne 44, 9310 Vodskov (G\u00e5tur hammerbakker)\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Gybels Plantage, S\u00e6by (Vandrerute, hundeskov, fysisk aktivitet)\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.320707830714774,\n      \"lng\": 10.504573049718577,\n      \"addr\": \"Kjeldgaardsparken 13, 9300 S\u00e6by\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"S\u00e6by Vandm\u00f8lle\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.336169,\n      \"lng\": 10.520482,\n      \"addr\": \"Frederikshavnsvej 1A, 9300 S\u00e6by\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Nellemanns Have\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.343973,\n      \"lng\": 10.504942,\n      \"addr\": \"Langtvedvej 23, 9300 S\u00e6by\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Svinkl\u00f8v Klitplantage\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.1726,\n      \"lng\": 9.2967,\n      \"addr\": \"Svinkl\u00f8vvej, 9690 Fjerritslev\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Vadbjerg Sande (smuk udsigt)\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.15825972258423,\n      \"lng\": 9.124868051237096,\n      \"addr\": \"Valbjergvej, 9690 Fjerritslev\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Thorup Strand\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.1397,\n      \"lng\": 9.1708,\n      \"addr\": \"Thorup Strandvej 223, 9690 Fjerritslev\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Tankested Vejlerne\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.047107014289516,\n      \"lng\": 9.10363036747677,\n      \"addr\": \"Bygholmvejlevej 640, 9690 Fjerritslev\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"R\u00f8verknolden\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 56.8269,\n      \"lng\": 9.8388,\n      \"addr\": \"Rebildvej 4, 9520 Sk\u00f8rping\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Gateway Blokhus\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.2505,\n      \"lng\": 9.5765,\n      \"addr\": \"Plesnersvej, 9492 Blokhus\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Gratis rundvisning hos Skotlander Rom & Gin\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.2084,\n      \"lng\": 9.5926,\n      \"addr\": \"Hjulmagervej 19, 9490 Pandrup\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Glarborgen\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.1193,\n      \"lng\": 9.5998,\n      \"addr\": \"Urbakken 14 C, 9460 Brovst\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Tranum-Fosdalen vandreruter\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.1748,\n      \"lng\": 9.4787,\n      \"addr\": \"Strandvejen 37, 9460 Brovst\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Troldemuseet\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.0884,\n      \"lng\": 9.7103,\n      \"addr\": \"Limfjordsgade 50, 9440 Gj\u00f8l\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"De syngende tr\u00e6er\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.041067,\n      \"lng\": 9.916003,\n      \"addr\": \"Kildeparken 9000 Aalborg\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Vestre Fjordpark\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.05789,\n      \"lng\": 9.88516,\n      \"addr\": \"Skydebanevej 14, 9000 Aalborg\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Aalborghus Slot\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 57.04939,\n      \"lng\": 9.92417,\n      \"addr\": \"Slotspladsen 1, 9000 Aalborg\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Trolden Ask fra Ash\u00f8j\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 56.8485,\n      \"lng\": 8.4168,\n      \"addr\": \"Ash\u00f8jgade 47, 7760 Hurup Thy\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    },\n    {\n      \"name\": \"Jernkysten\",\n      \"categoryId\": \"gratisoplevelser\",\n      \"lat\": 56.6278,\n      \"lng\": 8.2042,\n      \"addr\": \"Vejlby Klit 42, 7673 Harbo\u00f8re\",\n      \"link\": \"https:\/\/visitvendsyssel.dk\/gratis-oplevelser\/\"\n    }\n    ]\n  },\n\n  \n  \n  ];\n\n<\/script>\n\n\n\n<script>\n\/\/ \u2190 Add at the very top of your main script block\nlet userPosition = null;\n\n\/\/ Haversine distance (kilometres) \u2013 needed for proximity sorting\nfunction haversine(lat1, lon1, lat2, lon2) {\n  const toRad = v => v * Math.PI \/ 180;\n  const R = 6371;           \/\/ Earth radius in km\n  const dLat = toRad(lat2 - lat1);\n  const dLon = toRad(lon2 - lon1);\n  const a =\n    Math.sin(dLat \/ 2) ** 2 +\n    Math.cos(toRad(lat1)) *\n      Math.cos(toRad(lat2)) *\n      Math.sin(dLon \/ 2) ** 2;\n  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n  return R * c;\n}\n\n\/\/ Geolocation is now handled in initMap.\n<\/script>\n\n\n<script>\n  \/\/ \u2500\u2500 Chat widget element \u2500\u2500\n  const chatEl = document.getElementById('chat-widget');\n\n  \/* ---------- default map position (top of Denmark) -------------- *\/\n  const MAP_CENTER   = { lat: 57.73, lng: 10.59 };   \/\/ Skagen \/ Grenen\n  const IS_MOBILE    = window.innerWidth < 768;\n  const DEFAULT_ZOOM = IS_MOBILE ? 11 : 10;\n  \/* --------------------------------------------------------------- *\/\n\n  \/\/ Build a POI list for system instructions (if you use OpenAI functions)\n  const poiListText = categories\n    .flatMap(c => c.items.map(i => `${i.name} (${c.id}): ${i.lat},${i.lng}`))\n    .join(\"\\n\");\n\n  const systemInstructions = `POI LIST:\n  ${poiListText}\n\n  ===============  CORE RULES  ===============\n  1. Language\n     \u2013 Detect the user\u2019s language from their first message  \n     \u2013 Reply ONLY in that language  \n  2. POI focus \u2026\n  ===========================================`;\n\n  let chatHistory = [{ role: \"system\", content: systemInstructions }];\n\n\/\/ === Globals ===\nlet map, placesService, markers = [], dirService, dirRenderer;\n\/\/ Cache for category icons\nconst iconCache = {};\n\n\n\n\/\/ === initMap ===\nfunction initMap() {\n  const fallbackCenter = { lat: 57.55, lng: 10.00 }; \/\/ Vendsyssel\n  const zoomFallback = IS_MOBILE ? 6 : 8;\n  createMap(fallbackCenter, zoomFallback); \/\/ Show full region first\n\n  navigator.geolocation.getCurrentPosition(\n    pos => {\n      const userPos = {\n        lat: pos.coords.latitude,\n        lng: pos.coords.longitude\n      };\n      \/\/ Animate to user location after a short delay\n      setTimeout(() => {\n        map.panTo(userPos);\n        map.setZoom(12);\n      }, 1000);\n    },\n    err => {\n      console.warn(\"Geolocation failed:\", err.message);\n      \/\/ Do nothing, stays in fallback\n    },\n    {\n      enableHighAccuracy: true,\n      timeout: 5000,\n      maximumAge: 0\n    }\n  );\n  \/\/ --- Postnummer search (Google Maps) ---\n  const input   = document.getElementById('search-input');\n  const btn     = document.getElementById('search-btn');\n  const results = document.getElementById('search-results');\n\n  \/\/ Only Danish 4-digit postnumre\n  const isPostnr = q => \/^\\s*\\d{4}\\s*$\/.test(q);\n\n  \/\/ Layer to draw postnummer polygons\n  const postnrData = new google.maps.Data({ map });\n  postnrData.setStyle({\n    strokeColor: '#0b68ff',\n    strokeWeight: 2,\n    fillColor: '#0b68ff',\n    fillOpacity: 0.08\n  });\n\n  function clearPostnr() {\n    const feats = [];\n    postnrData.forEach(f => feats.push(f));\n    feats.forEach(f => postnrData.remove(f));\n  }\n\n  let abortCtrl;\n  async function suggestPostnr(q) {\n    try {\n      if (abortCtrl) abortCtrl.abort();\n      abortCtrl = new AbortController();\n      const url = `https:\/\/api.dataforsyningen.dk\/postnumre?nr=${encodeURIComponent(q)}`;\n      const res = await fetch(url, { signal: abortCtrl.signal });\n      if (!res.ok) return [];\n      const arr = await res.json(); \/\/ [{nr:\"9300\", navn:\"S\u00e6by\"}, ...]\n      return arr.map(p => ({ nr: p.nr, navn: p.navn }));\n    } catch {\n      return [];\n    }\n  }\n\n  function renderResults(items) {\n    if (!items.length) {\n      results.classList.add('hidden');\n      results.innerHTML = '';\n      return;\n    }\n    results.innerHTML = items\n      .map(it => `<li data-nr=\"${it.nr}\">Postnummer ${it.nr} \u2013 ${it.navn}<\/li>`)\n      .join('');\n    results.classList.remove('hidden');\n  }\n\n  async function zoomToPostnr(nr) {\n    const url = `https:\/\/api.dataforsyningen.dk\/postnumre\/${encodeURIComponent(nr)}?format=geojson`;\n    const res = await fetch(url);\n    if (!res.ok) { alert('Kunne ikke hente omr\u00e5det for postnummeret.'); return; }\n    const feature = await res.json(); \/\/ GeoJSON Feature\n\n    clearPostnr();\n    const added = postnrData.addGeoJson(feature); \/\/ array of features\n\n    \/\/ Fit bounds to geometry\n    const bounds = new google.maps.LatLngBounds();\n    added.forEach(f => f.getGeometry().forEachLatLng(latlng => bounds.extend(latlng)));\n    if (!bounds.isEmpty()) map.fitBounds(bounds, { padding: 30 });\n  }\n\n  \/\/ ---- Wire up UI ----\n  let lastQ = '';\n  input.addEventListener('input', async () => {\n    const q = input.value.trim();\n    if (q === lastQ) return;\n    lastQ = q;\n    if (isPostnr(q) || \/^\\d{1,4}$\/.test(q)) {\n      renderResults(await suggestPostnr(q));\n    } else {\n      results.classList.add('hidden');\n      results.innerHTML = '';\n    }\n  });\n\n  results.addEventListener('click', async (e) => {\n    const li = e.target.closest('li[data-nr]');\n    if (!li) return;\n    const nr = li.dataset.nr;\n    results.classList.add('hidden');\n    input.value = `Postnummer ${nr}`;\n    await zoomToPostnr(nr);\n  });\n\n  async function handleSubmit() {\n    const q = input.value.trim();\n    if (isPostnr(q)) {\n      const nr = q.match(\/\\d{4}\/)[0];\n      await zoomToPostnr(nr);\n    } else {\n      \/\/ TODO: call your existing non-postnr search here if you have one\n      \/\/ existingSearch(q);\n    }\n  }\n\n  btn.addEventListener('click', handleSubmit);\n  input.addEventListener('keydown', (e) => { if (e.key === 'Enter') handleSubmit(); });\n\n  \/\/ Optional niceties\n  document.addEventListener('click', (e) => {\n    if (!results.contains(e.target) && e.target !== input) {\n      results.classList.add('hidden');\n    }\n  });\n  input.addEventListener('blur', () => { if (!input.value.trim()) clearPostnr(); });\n\n  if (input && !input.placeholder.includes('postnr')) {\n    input.placeholder = 'S\u00f8g\u2026 (steder, postnr)';\n  }\n  \/\/ --- end Postnummer search ---\n}\n\n\nfunction createMap(center, zoom) {\n  map = new google.maps.Map(document.getElementById(\"map\"), {\n    center,\n    zoom,\n    mapTypeId: \"hybrid\",\n    gestureHandling: IS_MOBILE ? \"greedy\" : \"cooperative\",\n    streetViewControl: false,\n    fullscreenControl: false,\n    mapTypeControl: false,\n    styles: [\n      {\n        featureType: \"poi\",\n        stylers: [{ visibility: \"off\" }]\n      }\n    ]\n  });\n\n  dirService   = new google.maps.DirectionsService();\n  dirRenderer  = new google.maps.DirectionsRenderer({ map });\n  placesService = new google.maps.places.PlacesService(map);\n\n  \/\/ Wait until the map is fully loaded before adding markers\n  google.maps.event.addListenerOnce(map, 'idle', showAll);\n}\n\n\/\/ Fetch Google Place details by name and location\nfunction fetchPlaceDetails(name, lat, lng, callback) {\n  \/\/ First find the place via a nearby text search\n  const searchRequest = {\n    location: new google.maps.LatLng(lat, lng),\n    radius: 100,           \/\/ search within 100m of the marker\n    query: name\n  };\n  placesService.textSearch(searchRequest, (results, status) => {\n    if (status === google.maps.places.PlacesServiceStatus.OK && results[0]) {\n      const placeId = results[0].place_id;\n      \/\/ Now request detailed fields\n      const detailRequest = {\n        placeId: placeId,\n        fields: [\n          'photos',\n          'opening_hours',\n          'reviews',\n          'rating',\n          'user_ratings_total',\n          'formatted_address',\n          'formatted_phone_number',\n          'website'\n        ]\n      };\n      placesService.getDetails(detailRequest, (place, status2) => {\n        if (status2 === google.maps.places.PlacesServiceStatus.OK) {\n          callback(place);\n        } else {\n          console.warn('getDetails failed:', status2);\n        }\n      });\n    } else {\n      console.warn('textSearch failed:', status);\n    }\n  });\n}\n  \/\/ Build category buttons (if you have <div id=\"cat-bar\">)\n  function buildButtons() {\n    const bar = document.getElementById(\"cat-bar\");\n    categories.forEach(c => {\n      const btn = document.createElement(\"button\");\n      btn.className = \"px-3 py-1 rounded bg-red-600 text-white text-sm\";\n      btn.innerText = c.label;\n      btn.onclick = () => showCategory(c.id);\n      bar.appendChild(btn);\n    });\n    const all = document.createElement(\"button\");\n    all.className = \"px-3 py-1 rounded border text-sm\";\n    all.innerText = \"Vis alle\";\n    all.onclick = showAll;\n    bar.appendChild(all);\n  }\n\n\n\n  \/\/ Clear all markers and directions\n  function clearMarkers() {\n    markers.forEach(m => m.setMap(null));\n    markers = [];\n    dirRenderer.set(\"directions\", null);\n  }\n\n  \/\/ Show only one category\n  async function showCategory(id) {\n    clearMarkers();\n    \/\/ Preload icon for this category\n    await makeCategoryIcon(id);\n    const cat = categories.find(c => c.id === id);\n    await Promise.all(cat.items.map(i => addMarker(i)));\n    if (cat.items.length) {\n      const bounds = new google.maps.LatLngBounds();\n      cat.items.forEach(i => bounds.extend({ lat: i.lat, lng: i.lng }));\n      map.fitBounds(bounds);\n    } else {\n      map.setCenter({ lat: 57.55, lng: 10.00 });\n      map.setZoom(10);\n    }\n    panel.classList.remove(\"open\");\n  }\n\n  \/\/ Show all POIs\n  async function showAll() {\n    clearMarkers();\n    \/\/ Preload icons for all categories before adding markers\n    const categoryIds = [...new Set(categories.map(c => c.id))];\n    await Promise.all(categoryIds.map(id => makeCategoryIcon(id)));\n    await Promise.all(categories.flatMap(c => c.items).map(i => addMarker(i)));\n    panel.classList.remove(\"open\");\n  }\n\n\/\/ after opening, check if the content overflows\nsetTimeout(() => {\n  if (panel.scrollHeight > panel.clientHeight) {\n    panel.classList.add('has-overflow');\n  } else {\n    panel.classList.remove('has-overflow');\n  }\n}, 50);\n\n\n\n  \/\/ TranslatePress helper\n  function trpWrap(txt) {\n    const safe = txt.replace(\/\"\/g,'&quot;');\n    return `<span data-trpgettextoriginal=\"${safe}\">${txt}<\/span>`;\n  }\n\/\/ Info-panel container\nconst panel = document.getElementById(\"info-panel\");\n\n\/\/ TranslatePress dynamic scan\nfunction trpTranslateDynamic(node) {\n  if (window.trp?.translateNode)          \n    trp.translateNode(node);\n  else if (window.TRPMOFunction?.translateDomStrings) \n    TRPMOFunction.translateDomStrings(node);\n  else \n    window.dispatchEvent(new CustomEvent('trp_translate_dynamic_content',{detail:node}));\n}\n\n\/\/ \u2500\u2500\u2500 Open POI info panel \u2500\u2500\u2500\nasync function openPanel(i) {\n  \/\/ 1) Load icon definition\n  const iconDef = await makeCategoryIcon(i.categoryId);\n  \/\/ Always use .url, fallback.svg if none\n  const iconUrl = iconDef.url;\n\n  \/\/ 2) category labels\n  const labels = {\n    kunstgalleri:     'Kunstgalleri',\n    galleri:          'Kunstgalleri',\n    antik:             'Antik',\n    genbrug:           'Genbrug',\n    oplevelser:        'Oplevelser',\n    museer:            'Museer',\n    restauranter:      'Restauranter',\n    natteliv:          'Natteliv',\n    butikker:          'Butikker',\n    hotel:             'Hotel',\n    camping:           'Camping',\n    feriehuse:         'Feriehuse',\n    kunsthandvaerk:    'Kunsth\u00e5ndv\u00e6rk'\n  };\n  const label = labels[i.categoryId] || i.categoryId;\n\n  \/\/ 3) Build HTML with carousel and icon buttons\n  panel.innerHTML = `\n    <div id=\"close-panel\" style=\"position:absolute; top:1rem; right:1rem; font-size:1.75rem; cursor:pointer; z-index:10; padding:0.5rem;\">&times;<\/div>\n    <div style=\"position:relative;\">\n      <div class=\"info-carousel\">\n        ${i.photo ? `<div class=\"carousel-slide active\"><img decoding=\"async\" src=\"${i.photo}\" alt=\"${i.name}\" style=\"width:100%;\"\/><\/div>` : ''}\n        <div id=\"google-photos\"><\/div>\n        <div class=\"carousel-nav prev\">&#10094;<\/div>\n        <div class=\"carousel-nav next\">&#10095;<\/div>\n      <\/div>\n      <div class=\"category-badge\">\n        ${label}\n        <img decoding=\"async\" src=\"${iconUrl}\" alt=\"${label}\">\n      <\/div>\n    <\/div>\n    <div class=\"p-4\">\n      <h2 class=\"text-xl font-semibold mb-1\">${i.name}<\/h2>\n      <p class=\"text-sm text-gray-600 mb-4\">\n        <i class=\"fa fa-map-marker-alt\"><\/i> ${i.addr}\n      <\/p>\n      ${i.desc ? `<p class=\"text-sm mb-4\">${i.desc}<\/p>` : ''}\n      <div class=\"mb-4 flex items-center\">\n        <button class=\"btn-route\" onclick=\"routeTo(${i.lat}, ${i.lng}, '${i.addr.replace(\/'\/g,\"\\\\'\")}')\">\n          <i class=\"fa fa-directions\"><\/i>\n        <\/button>\n        ${i.link\n          ? `<button class=\"btn-website\" onclick=\"window.open('${i.link}','_blank')\">\n               <i class=\"fa fa-external-link-alt\"><\/i>\n             <\/button>`\n          : ``\n        }\n      <\/div>\n      <div id=\"google-info\" class=\"mb-6\"><\/div>\n      <div id=\"review-carousel\" class=\"review-carousel mt-4\"><\/div>\n    <\/div>\n  `;\n  \/\/ attach close handler\n  panel.querySelector('#close-panel').onclick = () => {\n    panel.classList.remove('open');\n    const VENDS_CENTER = { lat: 57.55, lng: 10.00 };\n    const FALLBACK_ZOOM = IS_MOBILE ? 8 : 10;\n    map.panTo(VENDS_CENTER);\n    map.setZoom(FALLBACK_ZOOM);\n  };\n\n  \/\/ 5) Show it\n  panel.classList.add('open');\n  map.panTo({ lat: i.lat, lng: i.lng });\n  map.setZoom(13);\n  trpTranslateDynamic(panel);\n\n  \/\/ fetch and inject Google data (robust: show panel even if fetch fails)\n  try {\n    fetchPlaceDetails(i.name, i.lat, i.lng, (place) => {\n      let html = '';\n\n      \/\/ Rating & total reviews\n      if (place.rating != null) {\n        html += `<div class=\"text-sm mb-2\"><strong>Bed\u00f8mmelse:<\/strong> ${place.rating} \u2b50 (${place.user_ratings_total || 0} anmeldelser)<\/div>`;\n      }\n\n      \/\/ Phone number\n      if (place.formatted_phone_number) {\n        html += `<div class=\"text-sm mb-1\"><strong>Telefon:<\/strong> ${place.formatted_phone_number}<\/div>`;\n      }\n\n      \/\/ Opening hours\n      if (place.opening_hours) {\n        html += `<div class=\"text-sm mb-2\"><strong>\u00c5bningstider:<\/strong><br>${place.opening_hours.weekday_text.join('<br>')}<\/div>`;\n      }\n\n      \/\/ inject Google photos into #google-photos carousel\n      if (place.photos) {\n        place.photos.forEach((p, idx) => {\n          const url = p.getUrl({ maxWidth:400 });\n          document.getElementById('google-photos').insertAdjacentHTML('beforeend',\n            `<div class=\"carousel-slide${idx? '' : ' active'}\"><img decoding=\"async\" src=\"${url}\" style=\"width:100%;\"\/><\/div>`);\n        });\n      }\n\n      document.getElementById('google-info').innerHTML = html;\n\n      \/\/ Reviews in carousel\n      if (place.reviews) {\n        place.reviews.slice(0,5).forEach((r, idx) => {\n          const snippet = r.text.length > 100 ? r.text.slice(0,100) + '...' : r.text;\n          document.getElementById('review-carousel').insertAdjacentHTML('beforeend',\n            `<div class=\"carousel-slide${idx? '' : ' active'}\">\n               <p><strong>${r.author_name}<\/strong> \u2b50${r.rating}<\/p>\n               <p>${snippet} ${r.text.length > 100 ? '<a href=\"#\" class=\"read-more\">Read more<\/a><span class=\"full-text\" style=\"display:none;\">' + r.text + '<\/span>' : ''}<\/p>\n             <\/div>`);\n        });\n        \/\/ add nav\n        const rc = document.getElementById('review-carousel');\n        rc.insertAdjacentHTML('beforeend','<div class=\"carousel-nav prev\">&#10094;<\/div><div class=\"carousel-nav next\">&#10095;<\/div>');\n        \/\/ initialize carousels dynamically now that content is injected\n        initCarousel(panel.querySelector('.info-carousel'));\n        initCarousel(rc);\n      }\n    });\n  } catch (e) {\n    console.error('Places fetch failed:', e);\n  }\n}\n\n\/\/ \u2500\u2500\u2500 Category icon loader (fixed) \u2500\u2500\u2500\nasync function makeCategoryIcon(categoryId) {\n  if (iconCache[categoryId]) return iconCache[categoryId];\n\n  console.log('[Debug] makeCategoryIcon called for categoryId:', categoryId);\n\n  \/\/ \u2705 Use correct WordPress upload path\n  const baseUrl = window.location.origin + '\/wp-content\/uploads\/2025\/09\/';\n  const fallback = baseUrl + 'fallback.svg';\n\n  const fileMap = {\n    galleri: 'Kunstgalleril-1.svg',\n    kunstgalleri: 'Kunstgalleril-1.svg',\n    antik: 'Antikl.svg',\n    genbrug: 'Genbrugsbutikkerl.svg',\n    oplevelser: 'Oplevelserl.svg',\n    museer: 'Museerl.svg',\n    restauranter: 'Restauranterl.svg',\n    feriehuse: 'Feriehusel.svg',\n    kunsthandvaerk: 'kunsthandvaerk.svg',\n    butikker: 'Butikkerl.svg',\n    camping: 'Campingl.svg',\n    hotel: 'Hotell.svg',\n    natteliv: 'Nattelivl.svg',\n    \/\/ absolute URL left as-is\n    gratisoplevelser: 'https:\/\/toppenafdanmark.dk\/wp-content\/uploads\/2025\/09\/gratisoplevelserl.svg'\n  };\n\n  \/\/ normalize key: lower-case + remove spaces\/diacritics -> safe lookup\n  function normalizeKey(k) {\n    return String(k || '')\n      .toLowerCase()\n      .normalize('NFKD')            \/\/ decompose accents\n      .replace(\/[\\u0300-\\u036f]\/g, '') \/\/ remove diacritic marks\n      .replace(\/[^a-z0-9]\/g, '');  \/\/ keep only alphanumerics\n  }\n\n  function getIconUrl(rawKey) {\n    const key = normalizeKey(rawKey);\n    const icon = fileMap[key] || null;\n    if (!icon) {\n      console.warn('[Debug] no mapping for key -> using fallback:', rawKey, 'normalized:', key);\n      return fallback;\n    }\n    return icon.startsWith('http') ? icon : baseUrl + icon;\n  }\n\n  const url = getIconUrl(categoryId);\n  console.log('[Debug] resolved icon url:', url);\n\n  \/\/ preload image to observe network \/ errors\n  const cssSize = window.innerWidth >= 768 ? 40 : 30;\n  const realPx = Math.round(cssSize * (window.devicePixelRatio || 1));\n\n  const dbgImg = new Image();\n  dbgImg.onload = () => console.log('[Debug] icon image loaded for', categoryId, url, 'size:', realPx);\n  dbgImg.onerror = (e) => console.error('[Debug] icon image failed to load for', categoryId, url, e);\n  dbgImg.src = url; \/\/ triggers network request\n\n  const iconObj = {\n    url,\n    size: new google.maps.Size(realPx, realPx),\n    scaledSize: new google.maps.Size(cssSize, cssSize),\n    anchor: new google.maps.Point(cssSize \/ 2, cssSize \/ 2),\n    optimized: false\n  };\n\n  iconCache[categoryId] = iconObj;\n  return iconObj;\n}\n\n\/\/ \u2500\u2500 Add a POI marker with hover\u2010bounce \u2500\u2500\nasync function addMarker(item) {\n  console.log('[Debug] addMarker called for item:', item.name, item.lat, item.lng);\n  const icon = await makeCategoryIcon(item.categoryId);\n  const m = new google.maps.Marker({\n    position: { lat: item.lat, lng: item.lng },\n    map: map,\n    title: item.name,\n    icon: icon,\n    optimized: false\n  });\n  \/\/ Ensure the loaded icon is applied\n  m.setIcon(icon);\n  console.log('[Debug] Marker created:', m, 'with icon:', icon);\n\n  \/\/ Hover\u2010effect: bounce on mouseover, stop on mouseout\n  m.addListener('mouseover', () => {\n    m.setAnimation(google.maps.Animation.BOUNCE);\n  });\n  m.addListener('mouseout', () => {\n    m.setAnimation(null);\n  });\n\n  \/\/ Click to open the info panel\n  m.addListener('click', () => openPanel(item));\n\n  markers.push(m);\n}\n\n\/\/ Optional: redraw on window resize\nwindow.addEventListener('resize', () => { clearMarkers(); showAll(); });\n\n\/\/ Open route in external Google Maps\nfunction routeTo(lat, lng, addr = null) {\n  const dest = addr ? encodeURIComponent(addr) : `${lat},${lng}`;\n  window.open(`https:\/\/www.google.com\/maps\/dir\/?api=1&destination=${dest}`, \"_blank\");\n}\n\n\/\/ \u2014\u2014 Search functionality \u2014\u2014 \nconst allPlaces = categories.flatMap(c => c.items);\nconst searchInput = document.getElementById('search-input');\nconst searchBtn = document.getElementById('search-btn');\nconst resultsList = document.getElementById('search-results');\nfunction renderResults(results) {\n  resultsList.innerHTML = results.map(r => `<li>${r.name}<\/li>`).join('');\n  resultsList.classList.toggle('hidden', results.length === 0);\n}\nsearchInput.addEventListener('input', () => {\n  const q = searchInput.value.trim().toLowerCase();\n  if (!q) { return renderResults([]); }\n  const matched = allPlaces.filter(p => p.name.toLowerCase().includes(q));\n  renderResults(matched.slice(0, 10));\n});\nresultsList.addEventListener('click', (e) => {\n  if (e.target.tagName === 'LI') {\n    const name = e.target.textContent;\n    const place = allPlaces.find(p => p.name === name);\n    if (place) {\n      openPanel(place);\n      map.panTo({ lat: place.lat, lng: place.lng });\n    }\n    renderResults([]);\n  }\n});\nsearchBtn.addEventListener('click', () => {\n  const q = searchInput.value.trim().toLowerCase();\n  const matched = allPlaces.filter(p => p.name.toLowerCase().includes(q));\n  if (matched[0]) {\n    openPanel(matched[0]);\n    map.panTo({ lat: matched[0].lat, lng: matched[0].lng });\n  }\n  renderResults([]);\n});\n\n<\/script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\n  \/\/ Global pendingPlaces for chat selection logic\n  let pendingPlaces = [];\n  \/\/ \u2500\u2500\u2500 Element refs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  const chatToggleBtn = document.getElementById('chat-toggle-btn');\n  const chatWidget    = document.getElementById('chat-widget');\n  const chatSendBtn   = document.getElementById('chat-send-btn');\n  const chatInput     = document.getElementById('chat-input');\n\n  \/\/ \u2500\u2500\u2500 UI helper \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function appendMsg(side, txt) {\n    const log = document.getElementById('chat-log');\n    const d = document.createElement('div');\n    d.className = `msg ${side}`;\n    d.innerHTML = `<span>${txt}<\/span>`;\n    log.appendChild(d);\n    log.scrollTop = log.scrollHeight;\n  }\n\n  \/\/ \u2500\u2500\u2500 Helper to append AI message with rating UI \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function appendAIMessage(text) {\n    const log = document.getElementById('chat-log');\n    const container = document.createElement('div');\n    container.className = 'msg ai';\n    container.innerHTML = `<span>${text}<\/span>\n      <div class=\"rating\">\n        <button class=\"rate-btn\" data-rating=\"1\">\ud83d\udc4d<\/button>\n        <button class=\"rate-btn\" data-rating=\"0\">\ud83d\udc4e<\/button>\n      <\/div>`;\n    log.appendChild(container);\n    log.scrollTop = log.scrollHeight;\n  }\n\n  \/\/ \u2500\u2500\u2500 AI Proxy helper \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  async function callChatAPI(messages) {\n    const res = await fetch('\/api\/chat', {\n      method: 'POST',\n      headers: {'Content-Type':'application\/json'},\n      body: JSON.stringify({ messages })\n    });\n    if (!res.ok) throw new Error(await res.text());\n    const { choices } = await res.json();\n    return choices[0].message.content;\n  }\n\n  \/\/ Custom system prompt for ChatGPT\n  const systemInstructions = `Du er en venlig, hj\u00e6lpsom AI-assistent. Hvis brugeren skriver med grammatiske fejl, fort\u00e6l venligt, at du ikke forstod, og bed om pr\u00e6cisering. Hvis du ikke har information lige nu, sig: \"Jeg har desv\u00e6rre ikke den information lige nu, men arbejder p\u00e5 at finde den.\" Stil opklarende sp\u00f8rgsm\u00e5l, n\u00e5r det er n\u00f8dvendigt. Svar altid p\u00e5 dansk i et klart og im\u00f8dekommende sprog.`;\n\n  \/\/ \u2500\u2500\u2500 Main chat function with local category\/search logic \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  async function sendChat() {\n    const raw = chatInput.value.trim();\n    if (!raw) return;\n    appendMsg('user', raw);\n    chatInput.value = '';\n    const q = raw.toLowerCase();\n\n    \/\/ --- Check if the user picked a pending place ---------------------\n    const numericChoice = parseInt(q, 10);\n    if (pendingPlaces.length && (!isNaN(numericChoice) || q.length > 2)) {\n      let chosen = null;\n      if (!isNaN(numericChoice) && numericChoice >= 1 && numericChoice <= pendingPlaces.length) {\n        chosen = pendingPlaces[numericChoice - 1];\n      } else {\n        chosen = pendingPlaces.find(p => p.name.toLowerCase().startsWith(q));\n      }\n      if (chosen) {\n        openPanel(chosen);\n        appendAIMessage(`Viser ${chosen.name} p\u00e5 kortet.`);\n        pendingPlaces = [];\n        return;\n      }\n    }\n\n    \/\/ 1) Exact category match or keyword-mapped category --------------\n    const allCats = Object.fromEntries(categories.map(c => [c.id, c]));\n    const keywordCategoryMap = {\n      fisk: 'restauranter', seafood: 'restauranter', restaurant: 'restauranter', caf\u00e9: 'restauranter',\n      kunst: 'galleri', gallery: 'galleri', oplevelse: 'oplevelser', museum: 'museer'\n    };\n    \/\/ try to resolve the user's query to a category id\n    let resolvedCatId = null;\n    if (allCats[q]) {\n      resolvedCatId = q;\n    } else if (Object.values(allCats).find(c => c.label.toLowerCase() === q)) {\n      resolvedCatId = Object.values(allCats).find(c => c.label.toLowerCase() === q).id;\n    } else {\n      resolvedCatId = keywordCategoryMap[Object.keys(keywordCategoryMap).find(k => q.includes(k))];\n    }\n\n    if (resolvedCatId) {\n      const cat = allCats[resolvedCatId];\n      \/\/ sort by distance if we know where the user is\n      let sorted = cat.items.slice();\n      if (userPosition) {\n        sorted = sorted\n          .map(it => ({ it, d: haversine(userPosition.lat, userPosition.lng, it.lat, it.lng) }))\n          .sort((a, b) => a.d - b.d)\n          .map(o => o.it);\n      }\n      pendingPlaces = sorted; \/\/ remember full list for follow-up\n      const top3 = sorted.slice(0, 3);\n      const bullets = top3.map((p, i) => {\n        let distTxt = '';\n        if (userPosition) {\n          const meters = haversine(userPosition.lat, userPosition.lng, p.lat, p.lng) * 1000;\n          distTxt = meters < 1000\n            ? ` \u2013 ${Math.round(meters)}\u202fm`\n            : ` \u2013 ${(meters \/ 1000).toLocaleString('da-DK', { minimumFractionDigits: 1, maximumFractionDigits: 1 })}\u202fkm`;\n        }\n        return `\u2022 ${p.name}${distTxt}`;\n      }).join('<br>');\n      appendAIMessage(\n        `Jeg fandt ${cat.items.length} ${cat.label.toLowerCase()} i n\u00e6rheden. Her er de 3 t\u00e6tteste:<br>${bullets}<br>` +\n        `Skriv navnet eller tallet p\u00e5 det sted du vil se, eller skriv \u201calle\u201d for hele listen.`\n      );\n      showCategory(cat.id);  \/\/ keep map in sync\n      return;\n    }\n\n    \/* 1\u2011bis) \u2014\u2014 City \/ location search \u2014\u2014 *\/\n    const queryTokens = q.split(\/\\s+\/).filter(t => t.length >= 3);   \/\/ ignore very short words\n    let locMatches = categories.flatMap(c => c.items)\n      .filter(item =>\n        item.addr && queryTokens.some(tok => item.addr.toLowerCase().includes(tok)));\n    if (locMatches.length) {\n      if (userPosition) {\n        locMatches = locMatches\n          .map(it => ({ it, d: haversine(userPosition.lat, userPosition.lng, it.lat, it.lng) }))\n          .sort((a, b) => a.d - b.d)\n          .map(o => o.it);\n      }\n      pendingPlaces = locMatches;                 \/\/ remember for follow\u2011ups\n      const top3 = locMatches.slice(0, 3);\n      const bullets = top3.map(p => `\u2022 ${p.name}`).join('<br>');\n      appendAIMessage(\n        `Jeg fandt ${locMatches.length} steder i omr\u00e5det. Her er de 3 t\u00e6tteste:<br>${bullets}<br>` +\n        `Skriv navnet eller tallet p\u00e5 det sted du vil se, eller skriv \u201calle\u201d for hele listen.`\n      );\n\n      \/\/ Show only these matches on the map\n      clearMarkers();\n      await Promise.all(locMatches.map(addMarker));\n      \/\/ --- Fit map to the matched POIs so the user instantly sees them ----\n      if (locMatches.length) {\n        const bounds = new google.maps.LatLngBounds();\n        locMatches.forEach(p => bounds.extend({ lat: p.lat, lng: p.lng }));\n        map.fitBounds(bounds);\n        \/\/ If all matches share the same coordinate, fallback to a sensible zoom\n        if (bounds.getNorthEast().equals(bounds.getSouthWest())) {\n          map.setZoom(13);\n        }\n      }\n      return;\n    }\n\n    \/\/ 2) Fuzzy search in names\/descriptions ---------------------------\n    let matches = categories.flatMap(c => c.items)\n      .filter(item =>\n        item.name.toLowerCase().includes(q) ||\n        (item.desc && item.desc.toLowerCase().includes(q))\n      );\n    if (userPosition) {\n      matches = matches\n        .map(item => ({ item, d: haversine(userPosition.lat, userPosition.lng, item.lat, item.lng) }))\n        .sort((a, b) => a.d - b.d)\n        .map(o => o.item);\n    }\n    if (matches.length) {\n      const pick = matches[0];\n      openPanel(pick);\n      appendAIMessage(`Jeg fandt \"${pick.name}\". Viser detaljer nu.`);\n      return;\n    }\n\n    \/\/ 3) Fallback to AI\n    try {\n      const reply = await callChatAPI([\n        { role: 'system', content: systemInstructions },\n        { role: 'user', content: raw }\n      ]);\n      appendAIMessage(reply);\n    } catch (err) {\n      appendAIMessage('Jeg forstod desv\u00e6rre ikke helt. Kan du pr\u00f8ve at sp\u00f8rge p\u00e5 en anden m\u00e5de?');\n      console.error(err);\n    }\n  }\n\n  \/\/ expose to inline onkeydown handler\n  window.sendChat = sendChat;\n\n  \/\/ \u2500\u2500\u2500 Wire events \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  chatToggleBtn.addEventListener('click', ()=>chatWidget.classList.toggle('open'));\n  chatSendBtn.addEventListener('click', sendChat);\n  chatInput.addEventListener('keydown', e => { if (e.key==='Enter') sendChat(); });\n});\n\n\/\/ \u2500\u2500\u2500 Feedback rating listener \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\ndocument.addEventListener('click', e => {\n  if (e.target.matches('.rate-btn')) {\n    const rating = e.target.dataset.rating;\n    const msgEl = e.target.closest('.msg.ai');\n    const message = msgEl.querySelector('span').innerText;\n    fetch('\/api\/feedback', {\n      method: 'POST',\n      headers: { 'Content-Type':'application\/json' },\n      body: JSON.stringify({ message, rating })\n    });\n    msgEl.querySelector('.rating').innerHTML = '<em>Tak for din feedback!<\/em>';\n  }\n});\n<\/script>\n\n\n\n<script async defer\n        src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyDCQ71JkJwYHfEm3us6JUxpOEDMnZbokzU&libraries=places&callback=initMap\">\n<\/script>\n\n<script>\nfunction initCarousel(container) {\n  let idx = 0;\n  const slides = container.querySelectorAll('.carousel-slide');\n  function show(i) {\n    slides.forEach((s, j)=> s.classList.toggle('active', j===i));\n  }\n  show(idx);\n  container.querySelector('.prev').onclick = ()=> { idx = (idx-1+slides.length)%slides.length; show(idx); };\n  container.querySelector('.next').onclick = ()=> { idx = (idx+1)%slides.length; show(idx); };\n  const navNext = container.querySelector('.next');\n  \/\/ auto-advance every 5 seconds\n  setInterval(() => navNext.click(), 5000);\n  \/\/ attach read-more handlers\n  container.querySelectorAll('.read-more').forEach(link => {\n    link.onclick = e => {\n      e.preventDefault();\n      const full = link.nextElementSibling;\n      link.style.display = 'none';\n      full.style.display = 'inline';\n    };\n  });\n}\ndocument.addEventListener('DOMContentLoaded',()=>{\n  document.querySelectorAll('.info-carousel').forEach(initCarousel);\n  document.querySelectorAll('.review-carousel').forEach(initCarousel);\n});\n<\/script>\n\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>3D Button Ribbon \u2039 Oplevelser Museer Restauranter Natteliv Butikker Hotel Camping Gratis Oplevelser \u203a Oplevelser i Nordjylland | Toppen af Danmark &times; Hej! Hvad kan jeg hj\u00e6lpe dig med?<\/p>","protected":false},"author":266444214,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","footnotes":""},"folder":[1367],"class_list":["post-5498","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PgDlef-1qG","_links":{"self":[{"href":"https:\/\/toppenafdanmark.dk\/de\/wp-json\/wp\/v2\/pages\/5498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/toppenafdanmark.dk\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/toppenafdanmark.dk\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/toppenafdanmark.dk\/de\/wp-json\/wp\/v2\/users\/266444214"}],"replies":[{"embeddable":true,"href":"https:\/\/toppenafdanmark.dk\/de\/wp-json\/wp\/v2\/comments?post=5498"}],"version-history":[{"count":67,"href":"https:\/\/toppenafdanmark.dk\/de\/wp-json\/wp\/v2\/pages\/5498\/revisions"}],"predecessor-version":[{"id":5911,"href":"https:\/\/toppenafdanmark.dk\/de\/wp-json\/wp\/v2\/pages\/5498\/revisions\/5911"}],"wp:attachment":[{"href":"https:\/\/toppenafdanmark.dk\/de\/wp-json\/wp\/v2\/media?parent=5498"}],"wp:term":[{"taxonomy":"folder","embeddable":true,"href":"https:\/\/toppenafdanmark.dk\/de\/wp-json\/wp\/v2\/folder?post=5498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}