{"id":6187,"date":"2026-06-02T17:39:01","date_gmt":"2026-06-02T15:39:01","guid":{"rendered":"https:\/\/www.ibo.guide\/znifr-karte\/"},"modified":"2026-06-02T18:26:03","modified_gmt":"2026-06-02T16:26:03","slug":"znifr-karte","status":"publish","type":"page","link":"https:\/\/www.ibo.guide\/de\/znifr-karte\/","title":{"rendered":"Znifr\u00ae-Karte"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Finden Sie hundefreundliche Orte \u00fcberall auf der Welt.<\/h2>\n\n<p class=\"wp-block-paragraph\">Suchen Sie nach Caf\u00e9s, Restaurants, Parks, Tier\u00e4rzten und weiteren Orten, an denen Ihr Hund willkommen ist \u2013 \u00fcberall auf der Welt. Geben Sie einfach eine Stadt oder Adresse ein \u2013 oder nutzen Sie Ihren aktuellen Standort. Die Daten stammen aus OpenStreetMap, der weltweit gr\u00f6\u00dften offenen Kartendatenbank, die fortlaufend von einer globalen Community erweitert wird. Filtern Sie nach Kategorien und entdecken Sie neue Orte, an die Sie Ihren vierbeinigen Begleiter mitnehmen k\u00f6nnen.<\/p>\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/leaflet@1.9.4\/dist\/leaflet.min.css\"\/>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/leaflet@1.9.4\/dist\/leaflet.min.js\"><\/script>\n<style>\n.dfm-tip {\n    background:#fff!important; border:1px solid #ddd!important; border-radius:10px!important;\n    padding:8px 11px!important; box-shadow:0 3px 10px rgba(0,0,0,.13)!important;\n    font-size:13px!important; line-height:1.5!important; min-width:160px!important;\n}\n.leaflet-tooltip.dfm-tip::before { display:none!important; }\n.dfm-loader {\n    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);\n    z-index:1000; pointer-events:none; display:none;\n}\n@keyframes dfm-spin { to { transform:rotate(360deg); } }\n<\/style>\n\n<div id=\"dfm-1-wrap\" style=\"font-family:inherit;width:100%;box-sizing:border-box;\">\n\n  <div style=\"display:flex;flex-direction:column;gap:8px;padding:10px 0 8px;\">\n\n    <div style=\"display:flex;gap:6px;align-items:center;\">\n      <button id=\"dfm-1-locate\"\n        title=\"Mein Standort\"\n        style=\"padding:0 12px;height:38px;border:1.5px solid #e63946;border-radius:8px;background:#fff;cursor:pointer;font-size:18px;flex-shrink:0;\">\ud83d\udccd<\/button>\n      <div style=\"position:relative;flex:1;\">\n        <input id=\"dfm-1-search\"\n          type=\"text\"\n          placeholder=\"Nach Stadt oder Adresse suchen\u2026\"\n          autocomplete=\"off\"\n          style=\"width:100%;padding:8px 12px 8px 34px;border:1.5px solid #ddd;border-radius:8px;font-size:14px;box-sizing:border-box;outline:none;\"\n          onfocus=\"this.style.borderColor='#e63946'\"\n          onblur=\"this.style.borderColor='#ddd'\"\/>\n        <span style=\"position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#aaa;\">\ud83d\udd0d<\/span>\n        <div id=\"dfm-1-suggestions\"\n          style=\"display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;\n                 border-top:none;border-radius:0 0 8px 8px;box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:9999;max-height:220px;overflow-y:auto;\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div style=\"display:flex;gap:6px;flex-wrap:wrap;justify-content:center;\">\n            <button class=\"dfm-btn\"\n        data-map=\"dfm-1\"\n        data-cat=\"cafe\"\n        data-color=\"#C04828\"\n        onclick=\"dfmToggle(this)\"\n        style=\"padding:6px 12px;border-radius:20px;border:2px solid #e63946;background:#fff;color:#333;font-size:12px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;transition:opacity 0.2s;\">\n        <span style=\"font-size:16px;line-height:1;\">\u2615<\/span><span style=\"margin-left:6px;\">Caf\u00e9s<\/span>      <\/button>\n            <button class=\"dfm-btn\"\n        data-map=\"dfm-1\"\n        data-cat=\"restaurant\"\n        data-color=\"#185FA5\"\n        onclick=\"dfmToggle(this)\"\n        style=\"padding:6px 12px;border-radius:20px;border:2px solid #e63946;background:#fff;color:#333;font-size:12px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;transition:opacity 0.2s;\">\n        <span style=\"font-size:16px;line-height:1;\">\ud83c\udf7d\ufe0f<\/span><span style=\"margin-left:6px;\">Restaurants<\/span>      <\/button>\n            <button class=\"dfm-btn\"\n        data-map=\"dfm-1\"\n        data-cat=\"park\"\n        data-color=\"#3B6D11\"\n        onclick=\"dfmToggle(this)\"\n        style=\"padding:6px 12px;border-radius:20px;border:2px solid #e63946;background:#fff;color:#333;font-size:12px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;transition:opacity 0.2s;\">\n        <span style=\"font-size:16px;line-height:1;\">\ud83c\udf33<\/span><span style=\"margin-left:6px;\">Parks<\/span>      <\/button>\n            <button class=\"dfm-btn\"\n        data-map=\"dfm-1\"\n        data-cat=\"boarding\"\n        data-color=\"#D4690A\"\n        onclick=\"dfmToggle(this)\"\n        style=\"padding:6px 12px;border-radius:20px;border:2px solid #e63946;background:#fff;color:#333;font-size:12px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;transition:opacity 0.2s;\">\n        <span style=\"font-size:16px;line-height:1;\">\ud83d\udc15\u200d\ud83e\uddba<\/span><span style=\"margin-left:6px;\">Hundehotels<\/span>      <\/button>\n            <button class=\"dfm-btn\"\n        data-map=\"dfm-1\"\n        data-cat=\"vet\"\n        data-color=\"#533AB7\"\n        onclick=\"dfmToggle(this)\"\n        style=\"padding:6px 12px;border-radius:20px;border:2px solid #e63946;background:#fff;color:#333;font-size:12px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;transition:opacity 0.2s;\">\n        <span style=\"font-size:16px;line-height:1;\">\ud83e\ude7a<\/span><span style=\"margin-left:6px;\">Tier\u00e4rzte<\/span>      <\/button>\n            <button class=\"dfm-btn\"\n        data-map=\"dfm-1\"\n        data-cat=\"shop\"\n        data-color=\"#0F6E56\"\n        onclick=\"dfmToggle(this)\"\n        style=\"padding:6px 12px;border-radius:20px;border:2px solid #e63946;background:#fff;color:#333;font-size:12px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;transition:opacity 0.2s;\">\n        <span style=\"font-size:16px;line-height:1;\">\ud83d\uded2<\/span><span style=\"margin-left:6px;\">Zoohandlungen<\/span>      <\/button>\n          <\/div>\n\n  <\/div>\n\n  <div style=\"position:relative;\">\n    <div id=\"dfm-1\"\n      style=\"width:100%;height:600px;border-radius:12px;border:1px solid #e0e0e0;overflow:hidden;\"><\/div>\n    <div id=\"dfm-1-loader\" class=\"dfm-loader\">\n      <div style=\"width:38px;height:38px;border:3px solid rgba(255,255,255,0.6);border-top-color:#e63946;border-radius:50%;animation:dfm-spin 0.75s linear infinite;box-shadow:0 2px 8px rgba(0,0,0,0.15);\"><\/div>\n    <\/div>\n  <\/div>\n\n  <div id=\"dfm-1-status\"\n    style=\"font-size:12px;color:#888;padding:6px 2px;\">\n    Die Karte wird geladen\u2026  <\/div>\n\n<\/div>\n\n<script>\n(function(){\n  var MID   = \"dfm-1\";\n  var LAT   = 39.9625;\n  var LNG   = -83.0061;\n  var ZOOM  = 13;\n\n  var TILE = 'https:\/\/{s}.basemaps.cartocdn.com\/light_all\/{z}\/{x}\/{y}{r}.png';\n  var ATTR = '&copy; <a href=\"https:\/\/carto.com\/\">CartoDB<\/a> &copy; <a href=\"https:\/\/www.openstreetmap.org\/copyright\">OpenStreetMap<\/a> contributors';\n\n  var COLORS = { cafe:'#C04828', restaurant:'#185FA5', park:'#3B6D11', boarding:'#D4690A', vet:'#533AB7', shop:'#0F6E56' };\n  var LABELS = {\n    cafe:      \"Caf\\u00e9\",\n    restaurant:\"Restaurant\\\/Bar\",\n    park:      \"Park\",\n    boarding:  \"Hundehotel \\\/ Pension\",\n    vet:       \"Tierarzt\",\n    shop:      \"Zoofachgesch\\u00e4ft\"  };\n  var DOGS = {\n    yes:      \"\\ud83d\\udc3e Hundefreundlich\",\n    leashed:  \"\\ud83d\\udc3e An der Leine\",\n    unleashed:\"\\ud83d\\udc3e Freilauf\"  };\n  var STR = {\n    loading:   \"Lade hundefreundliche Orte\\u2026\",\n    loaded:    \"Angezeigt: %1 von %2 hundefreundlichen Orten \\u00b7 Quelle: OpenStreetMap\",\n    ratelimit: \"Die Overpass-API ist ausgelastet, wir versuchen es erneut\\u2026\",\n    error:     \"Fehler beim Laden. Versuchen Sie, die Karte zu bewegen.\",\n    locTip:    \"\\ud83d\\udccd Mein Standort\",\n    locDenied: \"Der Zugriff auf den Standort wurde verweigert. Bitte erlauben Sie den Zugriff in den Einstellungen Ihres Browsers.\",\n    locError:  \"Der Standort konnte nicht ermittelt werden.\",\n    noGeo:     \"Ihr Browser unterst\\u00fctzt keine Standortermittlung.\",\n    dogYes:    \"\\ud83d\\udc3e Hundefreundlich\"  };\n\n  var map, layer, locMarker;\n  var filters   = new Set(['cafe','restaurant','park','boarding','vet','shop']);\n  var markers   = [];\n  var loadTmr   = null;\n  var bgTmr     = null;\n  var cache     = {};\n  var lastLoad  = 0;\n  var pending   = false;\n  var bgLoading = false;\n  var PREFETCH  = 2.5;\n\n  function bbox(b, dec) {\n    return b.getSouth().toFixed(dec)+','+b.getWest().toFixed(dec)+','+b.getNorth().toFixed(dec)+','+b.getEast().toFixed(dec);\n  }\n\n  function expandBounds(b, f) {\n    var clat=(b.getNorth()+b.getSouth())\/2, clng=(b.getEast()+b.getWest())\/2;\n    var dlat=(b.getNorth()-b.getSouth())\/2*f, dlng=(b.getEast()-b.getWest())\/2*f;\n    return { s:(clat-dlat).toFixed(4), w:(clng-dlng).toFixed(4), n:(clat+dlat).toFixed(4), e:(clng+dlng).toFixed(4) };\n  }\n\n  function mergeToCache(key, els) {\n    if (!cache[key]) cache[key]={};\n    els.forEach(function(el){ if(el.id) cache[key][el.id]=el; });\n  }\n\n  function getVisible(b) {\n    var s=parseFloat(b.getSouth()), w=parseFloat(b.getWest()),\n        n=parseFloat(b.getNorth()), e=parseFloat(b.getEast());\n    var seen={}, res=[];\n    Object.keys(cache).forEach(function(k){\n      Object.values(cache[k]).forEach(function(el){\n        if(!el.lat||!el.lon||seen[el.id]) return;\n        if(el.lat>=s&&el.lat<=n&&el.lon>=w&&el.lon<=e){ seen[el.id]=1; res.push(el); }\n      });\n    });\n    return res;\n  }\n\n  function cat(t) {\n    if (t.leisure==='park'||t.leisure==='dog_park')       return 'park';\n    if (t.amenity==='veterinary')                         return 'vet';\n    if (t.amenity==='cafe')                               return 'cafe';\n    if (t.amenity==='restaurant'||t.amenity==='bar')      return 'restaurant';\n    if (t.amenity==='animal_boarding')                    return 'boarding';\n    if (t.amenity==='animal_shelter'&&t.boarding==='yes') return 'boarding';\n    if (t.shop==='pet')                                   return 'shop';\n    return null;\n  }\n\n  var CAT_ICONS = { cafe:'\u2615', restaurant:'\ud83c\udf7d\ufe0f', park:'\ud83c\udf33', boarding:'\ud83d\udc15\u200d\ud83e\uddba', vet:'\ud83e\ude7a', shop:'\ud83d\uded2' };\n\n  function icon(c) {\n    var emoji = CAT_ICONS[c]||'\ud83d\udc3e';\n    return L.divIcon({\n      html:'<div style=\"width:28px;height:28px;background:#fff;border:2px solid #e63946;border-radius:50%;'\n          +'box-shadow:0 2px 6px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;\">'+emoji+'<\/div>',\n      className:'', iconSize:[28,28], iconAnchor:[14,14], tooltipAnchor:[15,0]\n    });\n  }\n\n  function tip(t, c) {\n    var n=t.name||LABELS[c];\n    var dog=t.dog?(DOGS[t.dog]||STR.dogYes):STR.dogYes;\n    var h='<strong style=\"font-size:13px;\">'+esc(n)+'<\/strong><br>'\n        +'<span style=\"display:inline-block;padding:1px 7px;border-radius:8px;background:'+COLORS[c]+';color:#fff;font-size:11px;\">'+LABELS[c]+'<\/span><br>'\n        +'<span style=\"font-size:12px;color:#555;\">'+dog+'<\/span>';\n    if(t['addr:street']) h+='<br><span style=\"font-size:11px;color:#777;\">\ud83d\udccd '+esc(t['addr:street']+(t['addr:housenumber']?' '+t['addr:housenumber']:''))+'<\/span>';\n    if(t.opening_hours)  h+='<br><span style=\"font-size:11px;color:#777;\">\ud83d\udd50 '+esc(t.opening_hours)+'<\/span>';\n    if(t.phone)          h+='<br><span style=\"font-size:11px;color:#777;\">\ud83d\udcde '+esc(t.phone)+'<\/span>';\n    if(t.website)        h+='<br><a href=\"'+esc(t.website)+'\" target=\"_blank\" rel=\"noopener\" style=\"font-size:11px;\">\ud83c\udf10 Web<\/a>';\n    return h;\n  }\n\n  function query(bb) {\n    return '[out:json][timeout:25];('\n      +'node[\"amenity\"=\"cafe\"][\"dog\"~\"yes|leashed|unleashed\"]('+bb+');'\n      +'node[\"amenity\"=\"restaurant\"][\"dog\"~\"yes|leashed|unleashed\"]('+bb+');'\n      +'node[\"amenity\"=\"bar\"][\"dog\"~\"yes|leashed|unleashed\"]('+bb+');'\n      +'node[\"amenity\"=\"veterinary\"]('+bb+');'\n      +'node[\"shop\"=\"pet\"]('+bb+');'\n      +'node[\"leisure\"=\"park\"][\"dog\"!=\"no\"]('+bb+');'\n      +'node[\"leisure\"=\"dog_park\"]('+bb+');'\n      +'node[\"amenity\"=\"animal_boarding\"]('+bb+');'\n      +');out body;';\n  }\n\n  var OVR_ENDPOINTS = [\n    'https:\/\/overpass-api.de\/api\/interpreter',\n    'https:\/\/overpass.kumi.systems\/api\/interpreter',\n    'https:\/\/maps.mail.ru\/osm\/tools\/overpass\/api\/interpreter'\n  ];\n  var ovrIdx = 0;\n\n  function ovr(q, ok, fail, idx) {\n    idx = idx || 0;\n    if (idx >= OVR_ENDPOINTS.length) { fail(new Error('all endpoints failed')); return; }\n    fetch(OVR_ENDPOINTS[idx], { method:'POST',\n      headers:{'Content-Type':'application\/x-www-form-urlencoded'},\n      body:'data='+encodeURIComponent(q) })\n      .then(function(r){\n        if(r.status===429){ throw new Error('429'); }\n        if(!r.ok) throw new Error('HTTP '+r.status);\n        return r.json();\n      })\n      .then(ok)\n      .catch(function(e){\n        \/\/ Skus dalsi endpoint\n        console.warn('Endpoint '+OVR_ENDPOINTS[idx]+' failed, trying next...');\n        ovr(q, ok, fail, idx+1);\n      });\n  }\n\n\n  function load() {\n    var b   = map.getBounds();\n    var key = bbox(b, 2);\n    var cached = getVisible(b);\n    if (cached.length>0) render(cached);\n    var now=Date.now(), wait=1500-(now-lastLoad);\n    if (wait>0) {\n      if(!pending){ pending=true; setTimeout(function(){ pending=false; load(); }, wait+50); }\n      return;\n    }\n    lastLoad=now;\n    showLoader();\n    status(STR.loading);\n    ovr(query(bbox(b,4)),\n      function(d){\n        hideLoader();\n        mergeToCache(key, d.elements||[]);\n        render(getVisible(map.getBounds()));\n        clearTimeout(bgTmr);\n        bgTmr=setTimeout(function(){ loadBackground(b); }, 800);\n      },\n      function(e){\n        hideLoader();\n        if(e.message==='429'){ status(STR.ratelimit); lastLoad=Date.now()+2000; setTimeout(load,4000); }\n        else { status(STR.error); console.error('load:',e); }\n      }\n    );\n  }\n\n  function loadBackground(b) {\n    if(bgLoading) return;\n    var exp=expandBounds(b,PREFETCH);\n    var bgbb=exp.s+','+exp.w+','+exp.n+','+exp.e;\n    var bgKey=parseFloat(exp.s).toFixed(1)+','+parseFloat(exp.w).toFixed(1)+','+parseFloat(exp.n).toFixed(1)+','+parseFloat(exp.e).toFixed(1);\n    if(cache[bgKey]) return;\n    bgLoading=true;\n    ovr(query(bgbb),\n      function(d){ bgLoading=false; mergeToCache(bgKey,d.elements||[]); render(getVisible(map.getBounds())); },\n      function(e){ bgLoading=false; console.warn('bg:',e); }\n    );\n  }\n\n  function render(els) {\n    layer.clearLayers(); markers=[];\n    els.forEach(function(el){\n      if(el.type!=='node'||!el.lat||!el.lon) return;\n      var t=el.tags||{}, c=cat(t);\n      if(!c) return;\n      var m=L.marker([el.lat,el.lon],{icon:icon(c)});\n      m.bindTooltip(tip(t,c),{className:'dfm-tip',direction:'right',permanent:false,interactive:false,opacity:1});\n      m.on('tooltipopen',function(e){\n        var tt=e.tooltip, pos=map.latLngToContainerPoint(m.getLatLng());\n        var mw=map.getContainer().offsetWidth, mh=map.getContainer().offsetHeight;\n        var dir;\n        if(pos.x<160) dir='right';\n        else if(mw-pos.x<220) dir='left';\n        else if(pos.y<80) dir='bottom';\n        else if(mh-pos.y<80) dir='top';\n        else dir='right';\n        if(tt.options.direction!==dir){ tt.options.direction=dir; m.closeTooltip(); m.openTooltip(); }\n      });\n      m._cat=c; markers.push(m);\n    });\n    applyFilters();\n  }\n\n  function applyFilters() {\n    layer.clearLayers(); var v=0;\n    markers.forEach(function(m){ if(filters.has(m._cat)){ m.addTo(layer); v++; } });\n    status(STR.loaded.replace('%1',v).replace('%2',markers.length));\n  }\n\n  function status(msg){ var el=document.getElementById(MID+'-status'); if(el) el.textContent=msg; }\n  function showLoader(){ var el=document.getElementById(MID+'-loader'); if(el) el.style.display='flex'; }\n  function hideLoader(){ var el=document.getElementById(MID+'-loader'); if(el) el.style.display='none'; }\n  function esc(s){ return String(s).replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;').replace(\/\"\/g,'&quot;'); }\n\n  function setupLocate() {\n    var btn=document.getElementById(MID+'-locate');\n    if(!btn) return;\n    btn.addEventListener('click',function(){\n      if(!navigator.geolocation){ alert(STR.noGeo); return; }\n      btn.textContent='\u23f3'; btn.disabled=true;\n      navigator.geolocation.getCurrentPosition(\n        function(p){\n          btn.textContent='\ud83d\udccd'; btn.disabled=false;\n          if(locMarker) map.removeLayer(locMarker);\n          locMarker=L.circleMarker([p.coords.latitude,p.coords.longitude],\n            {radius:9,fillColor:'#2979ff',color:'#fff',weight:2.5,fillOpacity:1})\n            .addTo(map).bindTooltip(STR.locTip,{className:'dfm-tip'});\n          Object.keys(cache).forEach(function(k){ delete cache[k]; });\n          lastLoad=0;\n          map.setView([p.coords.latitude,p.coords.longitude],15);\n        },\n        function(e){\n          btn.textContent='\ud83d\udccd'; btn.disabled=false;\n          alert(e.code===1?STR.locDenied:STR.locError);\n        },\n        {enableHighAccuracy:true,timeout:10000}\n      );\n    });\n  }\n\n  var sinput=document.getElementById(MID+'-search');\n  var sbox  =document.getElementById(MID+'-suggestions');\n  var stmr=null, actv=-1;\n\n  sinput.addEventListener('input',function(){\n    var q=this.value.trim(); clearTimeout(stmr);\n    if(q.length<2){ hide(); return; }\n    stmr=setTimeout(function(){\n      fetch('https:\/\/nominatim.openstreetmap.org\/search?format=json&limit=7&addressdetails=1&namedetails=1&q='+encodeURIComponent(q),\n        {headers:{'Accept-Language':'sk,cs,en'}})\n      .then(function(r){ return r.json(); }).then(show).catch(hide);\n    },300);\n  });\n\n  sinput.addEventListener('keydown',function(e){\n    var its=sbox.querySelectorAll('.dfm-s');\n    if(e.key==='ArrowDown'){ actv=Math.min(actv+1,its.length-1); hl(its); e.preventDefault(); }\n    else if(e.key==='ArrowUp'){ actv=Math.max(actv-1,0); hl(its); e.preventDefault(); }\n    else if(e.key==='Enter'&&actv>=0){ its[actv].click(); e.preventDefault(); }\n    else if(e.key==='Escape'){ hide(); }\n  });\n\n  document.addEventListener('click',function(e){\n    if(!e.target.closest('#'+MID+'-search')&&!e.target.closest('#'+MID+'-suggestions')) hide();\n  });\n\n  function show(res){\n    sbox.innerHTML=''; actv=-1;\n    if(!res||!res.length){ hide(); return; }\n    res.forEach(function(r){\n      var d=document.createElement('div'); d.className='dfm-s';\n      d.style.cssText='padding:9px 14px;cursor:pointer;font-size:13px;border-bottom:1px solid #f0f0f0;color:#333;';\n      var p=r.display_name.split(','), lbl=p[0].trim(), sub=p.slice(1,3).join(',').trim();\n      d.innerHTML='<span style=\"font-weight:500;\">'+esc(lbl)+'<\/span>'+(sub?'<br><span style=\"font-size:11px;color:#888;\">'+esc(sub)+'<\/span>':'');\n      d.addEventListener('mouseenter',function(){ this.style.background='#f5f5f5'; });\n      d.addEventListener('mouseleave',function(){ this.style.background='#fff'; });\n      d.addEventListener('click',function(){\n        sinput.value=lbl; hide();\n        Object.keys(cache).forEach(function(k){ delete cache[k]; });\n        lastLoad=0;\n        map.setView([parseFloat(r.lat),parseFloat(r.lon)],14);\n        clearTimeout(loadTmr);\n        loadTmr=setTimeout(load,100);\n      });\n      sbox.appendChild(d);\n    });\n    sbox.style.display='block';\n  }\n  function hl(its){ its.forEach(function(el,i){ el.style.background=i===actv?'#f0f0f0':'#fff'; }); }\n  function hide(){ sbox.style.display='none'; sbox.innerHTML=''; actv=-1; }\n\n  window.dfmToggle=function(btn){\n    var c=btn.dataset.cat;\n    if(filters.has(c)){\n      filters.delete(c);\n      btn.style.opacity='0.3';\n      btn.style.filter='grayscale(60%)';\n    } else {\n      filters.add(c);\n      btn.style.opacity='1';\n      btn.style.filter='none';\n    }\n    applyFilters();\n  };\n\n  function init(){\n    document.querySelectorAll('#'+MID+'-wrap .dfm-btn').forEach(function(btn){\n      btn.style.opacity='1';\n      btn.style.filter='none';\n    });\n    map=L.map(MID).setView([LAT,LNG],ZOOM);\n    L.tileLayer(TILE,{attribution:ATTR,maxZoom:19}).addTo(map);\n    layer=L.layerGroup().addTo(map);\n    setupLocate();\n    map.on('dragend zoomend',function(){ clearTimeout(loadTmr); loadTmr=setTimeout(load,400); });\n    load();\n  }\n\n  if(typeof L!=='undefined'){ init(); }\n  else { var t=setInterval(function(){ if(typeof L!=='undefined'){ clearInterval(t); init(); } },50); }\n\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Finden Sie hundefreundliche Orte \u00fcberall auf der Welt. Suchen Sie nach Caf\u00e9s, Restaurants, Parks, Tier\u00e4rzten und weiteren Orten, an denen Ihr Hund willkommen ist \u2013 \u00fcberall auf der Welt. Geben Sie einfach eine Stadt oder Adresse ein \u2013 oder nutzen &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_seopress_titles_title":"Hundefreundliche Orte auf der Karte \u2022 IBO GUIDE","_seopress_titles_desc":"Entdecken Sie hundefreundliche Caf\u00e9s, Restaurants und Parks auf der interaktiven Karte. Suchen Sie nach einer Stadt oder \u00fcber Ihren Standort \u2013 weltweit.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","footnotes":""},"class_list":["post-6187","page","type-page","status-publish","hentry","latest_post"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ibo.guide\/de\/wp-json\/wp\/v2\/pages\/6187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ibo.guide\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ibo.guide\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ibo.guide\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ibo.guide\/de\/wp-json\/wp\/v2\/comments?post=6187"}],"version-history":[{"count":1,"href":"https:\/\/www.ibo.guide\/de\/wp-json\/wp\/v2\/pages\/6187\/revisions"}],"predecessor-version":[{"id":6189,"href":"https:\/\/www.ibo.guide\/de\/wp-json\/wp\/v2\/pages\/6187\/revisions\/6189"}],"wp:attachment":[{"href":"https:\/\/www.ibo.guide\/de\/wp-json\/wp\/v2\/media?parent=6187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}