{"id":74,"date":"2024-12-20T17:14:38","date_gmt":"2024-12-20T17:14:38","guid":{"rendered":"https:\/\/canariaslife.com\/?page_id=74"},"modified":"2026-10-22T10:55:48","modified_gmt":"2026-10-22T09:55:48","slug":"webcam-di-gran-canaria","status":"publish","type":"page","link":"https:\/\/canariaslife.com\/it\/camaras-de-gran-canaria\/","title":{"rendered":"Webcam Gran Canaria"},"content":{"rendered":"\n<div class=\"wp-block-uagb-container uagb-layout-flex uagb-block-da0e1557 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-advanced-heading uagb-block-af352717\"><h1 class=\"uagb-heading-text\">Webcams en Gran Canaria en directo<\/h1><p class=\"uagb-desc-text\">Clima, viento y estado del mar en tiempo real en toda la isla.<\/p><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-564625cf alignfull uagb-is-root-container\">\n<div class=\"wp-block-uagb-container uagb-block-33904a1e alignfull uagb-is-root-container\">\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!--\n  MUNICIPIOS DE GRAN CANARIA \u2014 Ver lista \/ Ver mapa\n  v2: Leaflet y los l\u00edmites municipales se cargan solo al pulsar \"Ver mapa\"\n  L\u00edmites: \/wp-content\/uploads\/cl-geo\/gran-canaria.js\n-->\n<style>\n\n\/* =========================================================\n   GRAN CANARIA - MUNICIPIOS \/ WEBCAMS\n   ========================================================= *\/\n\n.cl-mw2{\n  max-width:700px;\n  margin:0 auto;\n  padding:0 16px;\n  box-sizing:border-box;\n}\n\n.cl-mtitle2{\n  font-size:26px !important;\n  line-height:1.2 !important;\n  font-weight:700 !important;\n  color:#2571B0 !important;\n  text-align:center;\n  margin:0 0 16px !important;\n}\n\n\n\/* =========================================================\n   BOTONES\n   ========================================================= *\/\n\n.cl-mbtns{\n  display:flex;\n  gap:8px;\n  width:100%;\n}\n\n.cl-mbtn{\n  flex:1 1 0;\n  min-width:0;\n\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:8px;\n\n  padding:12px 16px;\n\n  background:#f5f5f5;\n  border:1px solid #ddd;\n  border-radius:8px;\n\n  cursor:pointer;\n\n  font-family:inherit;\n  font-size:15px;\n  line-height:1.2;\n  font-weight:600;\n\n  color:#333;\n\n  box-sizing:border-box;\n\n  -webkit-appearance:none;\n  appearance:none;\n}\n\n.cl-mbtn:hover{\n  background:#eee;\n}\n\n.cl-mbtn.cl-active{\n  background:#e6f1fb;\n  border-color:#2571B0;\n  color:#2571B0;\n}\n\n.cl-mbtn svg{\n  width:18px !important;\n  height:18px !important;\n  min-width:18px;\n  max-width:18px;\n  display:block;\n}\n\n\n\/* =========================================================\n   PANNELLI\n   ========================================================= *\/\n\n.cl-mpanel{\n  overflow:hidden;\n  max-height:0;\n  transition:max-height .35s ease;\n}\n\n.cl-mpanel.cl-open{\n  max-height:5000px;\n}\n\n.cl-minner2{\n  padding:4px 0;\n}\n\n\n\/* =========================================================\n   MAPPA\n   ========================================================= *\/\n\n#clMapGC{\n  width:100%;\n  height:800px;\n  background:#fff;\n  position:relative;\n}\n\n\n\/* =========================================================\n   LIVELLO LEAFLET\n   COME TENEFIFE\n   ========================================================= *\/\n\n#clMapGC .leaflet-container{\n  position:relative;\n  z-index:0 !important;\n}\n\n#clMapGC .leaflet-pane{\n  z-index:1 !important;\n}\n\n#clMapGC .leaflet-top,\n#clMapGC .leaflet-bottom{\n  z-index:2 !important;\n}\n\n\n\/* =========================================================\n   ASTRA SOPRA LA MAPPA\n   ========================================================= *\/\n\n#ast-desktop-header,\n#ast-mobile-header,\n.ast-header-sticked,\n.ast-header-sticked .main-header-bar,\n.ast-header-sticked .main-header-bar-wrap,\n.ast-header-sticked .ast-primary-header,\n.ast-header-sticked .ast-primary-header-bar{\n  z-index:99999 !important;\n}\n\n\n\/* =========================================================\n   INFO MAPPA\n   ========================================================= *\/\n\n.cl-map-loading{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  height:100%;\n  color:#999;\n  font-size:14px;\n}\n\n.cl-map-info{\n  background:#fff;\n  padding:8px 12px;\n  border-radius:6px;\n  box-shadow:0 1px 4px rgba(0,0,0,.15);\n\n  font-size:13px;\n  line-height:1.4;\n\n  min-width:145px;\n}\n\n.cl-map-info b{\n  display:block;\n  font-size:14px;\n  margin-bottom:3px;\n}\n\n.cl-map-info .cl-badge{\n  display:inline-block;\n\n  background:#e6f1fb;\n  color:#2571B0;\n\n  font-weight:700;\n  font-size:11px;\n\n  padding:2px 8px;\n  border-radius:4px;\n\n  margin-top:4px;\n}\n\n\n\/* =========================================================\n   LISTA MUNICIPI\n   ========================================================= *\/\n\n.cl-mrow2{\n  border-bottom:1px solid #eee;\n}\n\n.cl-mrow2:last-child{\n  border-bottom:none;\n}\n\n.cl-mrow2-top{\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n}\n\n.cl-mrow2-link{\n  flex:1 1 auto;\n\n  display:block;\n\n  padding:10px 16px;\n\n  text-decoration:none !important;\n\n  color:#333;\n\n  font-size:14px;\n  line-height:1.3;\n\n  min-width:0;\n}\n\n.cl-mrow2-link:hover{\n  color:#2571B0;\n}\n\n\n\/* =========================================================\n   COMUNI CON WEBCAM IN GRASSETTO\n   ========================================================= *\/\n\n.cl-mrow2.cl-cam .cl-mrow2-link{\n  font-weight:700 !important;\n}\n\n\n\/* =========================================================\n   FRECCIA\n   ========================================================= *\/\n\n.cl-mrow2-expand{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n\n  width:40px;\n  min-width:40px;\n  height:40px;\n\n  border:0;\n  padding:0;\n  margin:0;\n\n  background:transparent;\n\n  cursor:pointer;\n\n  -webkit-appearance:none;\n  appearance:none;\n}\n\n.cl-mrow2-icon{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n\n  width:26px;\n  height:26px;\n\n  border-radius:50%;\n\n  background:#e6f1fb;\n  color:#2571B0;\n\n  transition:transform .2s;\n}\n\n.cl-mrow2-icon svg{\n  width:14px;\n  height:14px;\n  display:block;\n}\n\n.cl-mrow2-expand.cl-open .cl-mrow2-icon{\n  transform:rotate(90deg);\n}\n\n\n\/* =========================================================\n   SOTTO MENU WEBCAM\n   ========================================================= *\/\n\n.cl-msubs2{\n  overflow:hidden;\n  max-height:0;\n  transition:max-height .25s ease;\n}\n\n.cl-msubs2.cl-open{\n  max-height:1000px;\n}\n\n.cl-msub2{\n  display:flex;\n  align-items:center;\n  gap:8px;\n\n  padding:8px 16px 8px 32px;\n\n  text-decoration:none !important;\n\n  color:#777;\n\n  font-size:13px;\n  line-height:1.3;\n\n  border-top:1px solid #f3f3f3;\n}\n\n.cl-msub2:hover{\n  color:#2571B0;\n}\n\n.cl-msub2 svg{\n  width:14px;\n  height:14px;\n  min-width:14px;\n  display:block;\n}\n\n\n\/* =========================================================\n   MOBILE\n   ========================================================= *\/\n\n@media(max-width:767px){\n\n  .cl-mw2{\n    padding:0 10px;\n  }\n\n  .cl-mtitle2{\n    font-size:22px !important;\n    line-height:1.2 !important;\n    margin-bottom:16px !important;\n  }\n\n  .cl-mbtn{\n    padding:12px 10px;\n    font-size:15px;\n    gap:7px;\n  }\n\n  .cl-mbtn svg{\n    width:18px !important;\n    height:18px !important;\n  }\n\n  #clMapGC{\n    height:460px !important;\n    margin-top:-40px;\n  }\n\n  .cl-map-info{\n    margin-bottom:0 !important;\n    transform:none !important;\n  }\n\n}\n\n\n\/* =========================================================\n   DESKTOP\n   ========================================================= *\/\n\n@media(min-width:768px){\n\n  #clMapGC{\n    height:800px !important;\n  }\n\n}\n\n<\/style>\n\n\n<!-- =========================================================\n     HTML\n     ========================================================= -->\n\n<div class=\"cl-mw2\">\n\n  <h2 class=\"cl-mtitle2\">\n    Municipios de Gran Canaria\n  <\/h2>\n\n\n  <div class=\"cl-mbtns\">\n\n    <button type=\"button\" class=\"cl-mbtn\" id=\"clBtnListGC\">\n\n      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n\n        <line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"><\/line>\n        <line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"><\/line>\n        <line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"><\/line>\n\n        <line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"><\/line>\n        <line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"><\/line>\n        <line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"><\/line>\n\n      <\/svg>\n\n      <span>Ver lista<\/span>\n\n    <\/button>\n\n\n    <button type=\"button\" class=\"cl-mbtn\" id=\"clBtnMapGC\">\n\n      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n\n        <polygon points=\"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\"><\/polygon>\n\n        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"18\"><\/line>\n        <line x1=\"16\" y1=\"6\" x2=\"16\" y2=\"22\"><\/line>\n\n      <\/svg>\n\n      <span>Ver mapa<\/span>\n\n    <\/button>\n\n  <\/div>\n\n\n  <!-- =======================================================\n       LISTA\n       ======================================================= -->\n\n  <div class=\"cl-mpanel\" id=\"clPanelListGC\">\n\n    <div class=\"cl-minner2\" id=\"clMunListGC\"><\/div>\n\n  <\/div>\n\n\n  <!-- =======================================================\n       MAPPA\n       ======================================================= -->\n\n  <div class=\"cl-mpanel\" id=\"clPanelMapGC\">\n\n    <div id=\"clMapGC\"><\/div>\n\n  <\/div>\n\n<\/div>\n\n\n<div class=\"cl-urlmap\" hidden=\"\" aria-hidden=\"true\"><a data-k=\"\/camaras-de-gran-canaria\/agaete\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/agaete\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/aguimes\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/aguimes\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/la-aldea-de-san-nicolas\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/la-aldea-de-san-nicolas\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/artenara\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/artenara\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/arucas\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/arucas\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/firgas\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/firgas\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/galdar\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/galdar\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/ingenio\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/ingenio\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/playa-amadores\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/playa-amadores\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/anfi-del-mar\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/anfi-del-mar\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/playa-de-puerto-rico\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/playa-de-puerto-rico\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/puerto-rico-puerto-deportivo\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/puerto-rico-puerto-deportivo\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/playa-taurito\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/playa-taurito\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/playa-del-cura\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/playa-del-cura\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/playa-de-puerto-mogan\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/playa-de-puerto-mogan\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/playa-de-patalavaca\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/playa-de-patalavaca\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/arguineguin-playa-la-lajilla\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/arguineguin-playa-la-lajilla\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/arguineguin-playa-las-maranuelas\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/arguineguin-playa-las-maranuelas\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/mogan\/arguineguin-playa-el-perchel\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/arguineguin-playa-el-perchel\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/moya\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/moya\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/las-canteras-playa-grande\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/las-canteras-playa-grande\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/playa-de-las-canteras\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/playa-de-las-canteras\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/las-canteras-playa-la-cicer\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/las-canteras-playa-la-cicer\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/puerto-de-la-luz\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/puerto-de-la-luz\/\"><\/a><!-- ALCARAVANERAS: <a data-k=\"\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/playa-de-las-alcaravaneras\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/playa-de-las-alcaravaneras\/\"><\/a> --><a data-k=\"\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/maspalomas\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/maspalomas\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/playa-del-ingles\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/playa-del-ingles\/\"><\/a> <a data-k=\"\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/playa-del-ingles-dunas\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/playa-del-ingles-dunas\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/playa-san-agustin\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/playa-san-agustin\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/santa-brigida\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/santa-brigida\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/santa-lucia-de-tirajana\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/santa-lucia-de-tirajana\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/santa-lucia-de-tirajana\/pozo-izquierdo\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/santa-lucia-de-tirajana\/pozo-izquierdo\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/santa-maria-de-guia\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/santa-maria-de-guia\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/tejeda\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/tejeda\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/telde\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/telde\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/telde\/playa-melenara\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/telde\/playa-melenara\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/teror\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/teror\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/valsequillo\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/valsequillo\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/valleseco\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/valleseco\/\"><\/a><a data-k=\"\/camaras-de-gran-canaria\/vega-de-san-mateo\/\" href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/vega-de-san-mateo\/\"><\/a><\/div>\n<script>\n\n(function(){\n\n  'use strict';\n\n\n  \/* =========================================================\n     LINGUA\n     ========================================================= *\/\n\n  var parts =\n    window.location.pathname\n      .split('\/')\n      .filter(Boolean);\n\n\n  var lang =\n    (\n      parts[0] === 'en' ||\n      parts[0] === 'it' ||\n      parts[0] === 'de'\n    )\n      ? parts[0]\n      : 'es';\n\n\n  var langPrefix =\n    lang !== 'es'\n      ? '\/' + lang\n      : '';\n\n  \/* URL tradotti da TranslatePress (evita redirect nelle lingue EN\/IT\/DE) *\/\n  var clUrlMap = {};\n  document.querySelectorAll('.cl-urlmap a[data-k]').forEach(function(a){ clUrlMap[a.getAttribute('data-k')] = a.getAttribute('href'); });\n  function clTr(u){ return clUrlMap[u] || (langPrefix + u); }\n\n\n    var i18n = {\n      tapAgain:{\n        es:'Toca de nuevo para abrir',\n        en:'Tap again to open',\n        it:'Tocca di nuovo per aprire',\n        de:'Erneut tippen zum \u00d6ffnen'\n      },\n      tapMun:{\n        es:'Toca un municipio',\n        en:'Tap a municipality',\n        it:'Tocca un comune',\n        de:'Tippe auf eine Gemeinde'\n      },\n      hoverMun:{\n        es:'Pasa el cursor sobre un municipio',\n        en:'Hover over a municipality',\n        it:'Passa il cursore su un comune',\n        de:'Fahre mit dem Cursor \u00fcber eine Gemeinde'\n      }\n    };\n\n\n\n  \/* =========================================================\n     MUNICIPI DI GRAN CANARIA\n     ========================================================= *\/\n\n  var municipios = [\n\n    {\n      n:'Agaete',\n      url:'\/camaras-de-gran-canaria\/agaete\/',\n      cams:[]\n    },\n\n    {\n      n:'Ag\u00fcimes',\n      url:'\/camaras-de-gran-canaria\/aguimes\/',\n      cams:[]\n    },\n\n    {\n      n:'La Aldea de San Nicol\u00e1s',\n      url:'\/camaras-de-gran-canaria\/la-aldea-de-san-nicolas\/',\n      cams:[]\n    },\n\n    {\n      n:'Artenara',\n      url:'\/camaras-de-gran-canaria\/artenara\/',\n      cams:[]\n    },\n\n    {\n      n:'Arucas',\n      url:'\/camaras-de-gran-canaria\/arucas\/',\n      cams:[]\n    },\n\n    {\n      n:'Firgas',\n      url:'\/camaras-de-gran-canaria\/firgas\/',\n      cams:[]\n    },\n\n    {\n      n:'G\u00e1ldar',\n      url:'\/camaras-de-gran-canaria\/galdar\/',\n      cams:[]\n    },\n\n    {\n      n:'Ingenio',\n      url:'\/camaras-de-gran-canaria\/ingenio\/',\n      cams:[]\n    },\n\n    {\n      n:'Mog\u00e1n',\n      url:'\/camaras-de-gran-canaria\/mogan\/',\n      cams:[\n\n        {\n          name:'Playa de Amadores',\n          url:'\/camaras-de-gran-canaria\/mogan\/playa-amadores\/'\n        },\n\n        {\n          name:'Anfi del Mar',\n          url:'\/camaras-de-gran-canaria\/mogan\/anfi-del-mar\/'\n        },\n\n        {\n          name:'Playa de Puerto Rico',\n          url:'\/camaras-de-gran-canaria\/mogan\/playa-de-puerto-rico\/'\n        },\n\n        {\n          name:'Puerto Rico - Puerto Deportivo',\n          url:'\/camaras-de-gran-canaria\/mogan\/puerto-rico-puerto-deportivo\/'\n        },\n\n        {\n          name:'Playa Taurito',\n          url:'\/camaras-de-gran-canaria\/mogan\/playa-taurito\/'\n        },\n\n        {\n          name:'Playa del Cura',\n          url:'\/camaras-de-gran-canaria\/mogan\/playa-del-cura\/'\n        },\n\n        {\n          name:'Playa de Mog\u00e1n',\n          url:'\/camaras-de-gran-canaria\/mogan\/playa-de-puerto-mogan\/'\n        },\n\n        {\n          name:'Playa de Patalavaca',\n          url:'\/camaras-de-gran-canaria\/mogan\/playa-de-patalavaca\/'\n        },\n\n        {\n          name:'Playa La Lajilla',\n          url:'\/camaras-de-gran-canaria\/mogan\/arguineguin-playa-la-lajilla\/'\n        },\n\n        {\n          name:'Playa Las Mara\u00f1uelas',\n          url:'\/camaras-de-gran-canaria\/mogan\/arguineguin-playa-las-maranuelas\/'\n        },\n\n        {\n          name:'Playa El Perchel',\n          url:'\/camaras-de-gran-canaria\/mogan\/arguineguin-playa-el-perchel\/'\n        }\n\n      ]\n    },\n\n    {\n      n:'Moya',\n      url:'\/camaras-de-gran-canaria\/moya\/',\n      cams:[]\n    },\n\n    {\n      n:'Las Palmas de Gran Canaria',\n      url:'\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/',\n      cams:[\n\n        {\n          name:'Las Canteras - Playa Grande',\n          url:'\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/las-canteras-playa-grande\/'\n        },\n\n        {\n          name:'Las Canteras',\n          url:'\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/playa-de-las-canteras\/'\n        },\n\n        {\n          name:'Las Canteras - Playa La C\u00edcer',\n          url:'\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/las-canteras-playa-la-cicer\/'\n        },\n\n        {\n          name:'Puerto de La Luz',\n          url:'\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/puerto-de-la-luz\/'\n        }\n\n        \/* === ALCARAVANERAS DESACTIVADA: para activarla borra esta l\u00ednea y la l\u00ednea FIN ALCARAVANERAS ===\n        ,{\n          name:'Playa de Las Alcaravaneras',\n          url:'\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/playa-de-las-alcaravaneras\/'\n        }\n        === FIN ALCARAVANERAS === *\/\n\n      ]\n    },\n\n    {\n      n:'San Bartolom\u00e9 de Tirajana',\n      url:'\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/',\n      cams:[\n\n        {\n          name:'Playa de Maspalomas',\n          url:'\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/maspalomas\/'\n        },\n\n        {\n          name:'Playa del Ingl\u00e9s',\n          url:'\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/playa-del-ingles\/'\n        },        {\n          name:'Playa del Ingl\u00e9s \u2013 Dunas',\n          url:'\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/playa-del-ingles-dunas\/'\n        },\n\n        {\n          name:'Playa de San Agust\u00edn',\n          url:'\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/playa-san-agustin\/'\n        }\n\n      ]\n    },\n\n    {\n      n:'Santa Br\u00edgida',\n      url:'\/camaras-de-gran-canaria\/santa-brigida\/',\n      cams:[]\n    },\n\n    {\n      n:'Santa Luc\u00eda de Tirajana',\n      url:'\/camaras-de-gran-canaria\/santa-lucia-de-tirajana\/',\n      cams:[\n\n        {\n          name:'Pozo Izquierdo',\n          url:'\/camaras-de-gran-canaria\/santa-lucia-de-tirajana\/pozo-izquierdo\/'\n        }\n\n      ]\n    },\n\n    {\n      n:'Santa Mar\u00eda de Gu\u00eda de Gran Canaria',\n      url:'\/camaras-de-gran-canaria\/santa-maria-de-guia\/',\n      cams:[]\n    },\n\n    {\n      n:'Tejeda',\n      url:'\/camaras-de-gran-canaria\/tejeda\/',\n      cams:[]\n    },\n\n    {\n      n:'Telde',\n      url:'\/camaras-de-gran-canaria\/telde\/',\n      cams:[\n\n        {\n          name:'Playa Melenara',\n          url:'\/camaras-de-gran-canaria\/telde\/playa-melenara\/',\n          sk:'6190'\n        }\n\n      ]\n    },\n\n    {\n      n:'Teror',\n      url:'\/camaras-de-gran-canaria\/teror\/',\n      cams:[]\n    },\n\n    {\n      n:'Valsequillo de Gran Canaria',\n      url:'\/camaras-de-gran-canaria\/valsequillo\/',\n      cams:[]\n    },\n\n    {\n      n:'Valleseco',\n      url:'\/camaras-de-gran-canaria\/valleseco\/',\n      cams:[]\n    },\n\n    {\n      n:'Vega de San Mateo',\n      url:'\/camaras-de-gran-canaria\/vega-de-san-mateo\/',\n      cams:[]\n    }\n\n  ];\n\n  \/* =========================================================\n     DAL REGISTRO WEBCAM (Herramientas \u2192 Registro webcam)\n     Le webcam di ogni comune vengono dal registro (snippet \"Comuni: webcam dal registro\").\n     L'elenco qui sopra resta come riserva e decide l'ordine delle webcam gi\u00e0 presenti;\n     le webcam nuove vanno in fondo al loro comune.\n     ========================================================= *\/\n  (function(){\n    var R = window.CL_MUNI;\n    if(!Array.isArray(R) || !R.length) return;\n    var col = {en:3, de:4, it:5}[lang];\n    var trovate = 0;\n    municipios.forEach(function(m){\n      m._reg = R.filter(function(r){ return r[0].indexOf(m.url) === 0; });\n      trovate += m._reg.length;\n    });\n    if(trovate !== R.length) return;   \/* una webcam senza comune: per sicurezza resta l'elenco fisso *\/\n    municipios.forEach(function(m){\n      var prima = m.cams.map(function(c){ return c.url; });\n      m.cams = m._reg.map(function(r){\n        if(col && r[col] && !clUrlMap[r[0]]) clUrlMap[r[0]] = r[col];\n        return { name:r[2], url:r[0] };\n      }).sort(function(a,b){\n        var ia = prima.indexOf(a.url), ib = prima.indexOf(b.url);\n        return (ia < 0 ? 999 : ia) - (ib < 0 ? 999 : ib);\n      });\n      delete m._reg;\n    });\n  })();\n\n  \/* =========================================================\n     NORMALIZAR NOMBRES\n     ========================================================= *\/\n\n  function normalizeName(str){\n\n    return String(str || '')\n      .toLowerCase()\n      .normalize('NFD')\n      .replace(\/[\\u0300-\\u036f]\/g,'')\n      .replace(\/\\s+\/g,' ')\n      .trim();\n\n  }\n\n\n  \/* =========================================================\n     LISTA\n     ========================================================= *\/\n\n  var list =\n    document.getElementById(\n      'clMunListGC'\n    );\n\n\n  var arrowSVG =\n    '<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" ' +\n    'viewBox=\"0 0 24 24\" fill=\"none\" ' +\n    'stroke=\"currentColor\" stroke-width=\"2.5\" ' +\n    'stroke-linecap=\"round\" stroke-linejoin=\"round\">' +\n\n    '<polyline points=\"9 18 15 12 9 6\"><\/polyline>' +\n\n    '<\/svg>';\n\n\n  var camSVG =\n    '<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" ' +\n    'viewBox=\"0 0 24 24\" fill=\"none\" ' +\n    'stroke=\"currentColor\" stroke-width=\"2\" ' +\n    'stroke-linecap=\"round\" stroke-linejoin=\"round\">' +\n\n    '<path d=\"M15 10l4.553-2.276A1 1 0 0 1 21 8.618v6.764a1 1 0 0 1-1.447 .894L15 14v-4z\"><\/path>' +\n\n    '<rect x=\"2\" y=\"6\" width=\"13\" height=\"12\" rx=\"2\"><\/rect>' +\n\n    '<\/svg>';\n\n\n  municipios.forEach(function(m){\n\n    var row =\n      document.createElement('div');\n\n\n    row.className =\n      'cl-mrow2' +\n      (\n        m.cams.length\n          ? ' cl-cam'\n          : ''\n      );\n\n\n    var top =\n      document.createElement('div');\n\n\n    top.className =\n      'cl-mrow2-top';\n\n\n    var link =\n      document.createElement('a');\n\n\n    link.className =\n      'cl-mrow2-link';\n\n\n    link.href =\n      clTr(m.url);\n\n\n    link.textContent =\n      m.n;\n\n\n    top.appendChild(link);\n\n\n    if(m.cams.length){\n\n      var btn =\n        document.createElement('button');\n\n\n      btn.type =\n        'button';\n\n\n      btn.className =\n        'cl-mrow2-expand';\n\n\n      btn.innerHTML =\n        '<span class=\"cl-mrow2-icon\">' +\n        arrowSVG +\n        '<\/span>';\n\n\n      btn.addEventListener(\n        'click',\n        function(e){\n\n          e.preventDefault();\n          e.stopPropagation();\n\n\n          var subs =\n            row.querySelector(\n              '.cl-msubs2'\n            );\n\n\n          var wasOpen =\n            subs.classList.contains(\n              'cl-open'\n            );\n\n\n          document\n            .querySelectorAll(\n              '#clMunListGC .cl-msubs2.cl-open'\n            )\n            .forEach(function(x){\n\n              x.classList.remove(\n                'cl-open'\n              );\n\n            });\n\n\n          document\n            .querySelectorAll(\n              '#clMunListGC .cl-mrow2-expand.cl-open'\n            )\n            .forEach(function(x){\n\n              x.classList.remove(\n                'cl-open'\n              );\n\n            });\n\n\n          if(!wasOpen){\n\n            subs.classList.add(\n              'cl-open'\n            );\n\n            btn.classList.add(\n              'cl-open'\n            );\n\n          }\n\n        }\n      );\n\n\n      top.appendChild(btn);\n\n    }\n\n\n    row.appendChild(top);\n\n\n    if(m.cams.length){\n\n      var subs =\n        document.createElement('div');\n\n\n      subs.className =\n        'cl-msubs2';\n\n\n      m.cams.forEach(function(c){\n\n        var a =\n          document.createElement('a');\n\n\n        a.className =\n          'cl-msub2';\n\n\n        a.href =\n          clTr(c.url);\n\n\n        a.innerHTML =\n          camSVG +\n          '<span>' +\n          c.name +\n          '<\/span>';\n\n\n        subs.appendChild(a);\n\n      });\n\n\n      row.appendChild(subs);\n\n    }\n\n\n    list.appendChild(row);\n\n  });\n\n\n  \/* =========================================================\n     ELEMENTI MAPPA\n     ========================================================= *\/\n\n  var btnList =\n    document.getElementById(\n      'clBtnListGC'\n    );\n\n\n  var btnMap =\n    document.getElementById(\n      'clBtnMapGC'\n    );\n\n\n  var panelList =\n    document.getElementById(\n      'clPanelListGC'\n    );\n\n\n  var panelMap =\n    document.getElementById(\n      'clPanelMapGC'\n    );\n\n\n  var map =\n    null;\n\n\n  var geojsonLayer =\n    null;\n\n\n  var info =\n    null;\n\n\n  var selectedLayer =\n    null;\n\n\n  var mapInitialized =\n    false;\n\n\n  \/* =========================================================\n     FIT ISOLA\n     ========================================================= *\/\n\n  function fitIsland(){\n\n    if(!map || !geojsonLayer)\n      return;\n\n\n    map.invalidateSize({\n\n      pan:false,\n      animate:false\n\n    });\n\n\n    var bounds =\n      geojsonLayer.getBounds();\n\n\n    if(!bounds.isValid())\n      return;\n\n\n    map.fitBounds(\n\n      bounds,\n\n      {\n\n        padding:[20,20],\n\n        animate:false\n\n      }\n\n    );\n\n  }\n\n\n  \/* =========================================================\n     COLORI\n     ========================================================= *\/\n\n  function getColor(c){\n\n    if(c >= 7)\n      return '#005B8F';\n\n\n    if(c >= 3)\n      return '#F4C542';\n\n\n    if(c >= 1)\n      return '#8EC7EE';\n\n\n    return '#f2f2f2';\n\n  }\n\n\n  \/* =========================================================\n     STILE MAPPA\n     ========================================================= *\/\n\n  function style(feature){\n\n    var c =\n      feature.properties.c || 0;\n\n\n    return {\n\n      fillColor:\n        getColor(c),\n\n      weight:1,\n\n      color:'#ccc',\n\n      \/*\n       * Comuni con webcam:\n       * completamente opachi.\n       *\n       * Comuni senza webcam:\n       * quasi trasparenti.\n       *\/\n\n      fillOpacity:\n        c > 0\n          ? 1\n          : 0.08,\n\n      opacity:1\n\n    };\n\n  }\n\n\n  \/* =========================================================\n     HOVER\n     ========================================================= *\/\n\n  function highlightFeature(e){\n\n    var layer =\n      e.target;\n\n\n    layer.setStyle({\n\n      weight:2.5,\n\n      color:'#2571B0',\n\n      fillOpacity:\n        layer.feature.properties.c > 0\n          ? 1\n          : 0.35,\n\n      opacity:1\n\n    });\n\n\n    layer.bringToFront();\n\n\n    if(info){\n\n      info.update(\n        layer.feature.properties\n      );\n\n    }\n\n  }\n\n\n  \/* =========================================================\n     RESET HOVER\n     ========================================================= *\/\n\n  function resetHighlight(e){\n\n    if(geojsonLayer){\n\n      geojsonLayer.resetStyle(\n        e.target\n      );\n\n    }\n\n\n    if(info){\n\n      info.update();\n\n    }\n\n  }\n\n\n  \/* =========================================================\n     CLICK MAPPA\n     ========================================================= *\/\n\n  function onClick(e){\n\n    var layer =\n      e.target;\n\n\n    \/* =======================================================\n       DESKTOP\n       ======================================================= *\/\n\n    if(window.innerWidth >= 768){\n\n      if(\n        layer.feature.properties.url &&\n        layer.feature.properties.url !== '#'\n      ){\n\n        window.location.href =\n          clTr(layer.feature.properties.url);\n\n      }\n\n      return;\n\n    }\n\n\n    \/* =======================================================\n       MOBILE\n       Primo tocco = selezione\n       Secondo tocco = apertura\n       ======================================================= *\/\n\n    if(selectedLayer === layer){\n\n      if(\n        layer.feature.properties.url &&\n        layer.feature.properties.url !== '#'\n      ){\n\n        window.location.href =\n          clTr(layer.feature.properties.url);\n\n      }\n\n      return;\n\n    }\n\n\n    if(selectedLayer){\n\n      geojsonLayer.resetStyle(\n        selectedLayer\n      );\n\n    }\n\n\n    selectedLayer =\n      layer;\n\n\n    layer.setStyle({\n\n      weight:2.5,\n\n      color:'#2571B0',\n\n      fillOpacity:\n        layer.feature.properties.c > 0\n          ? 1\n          : 0.35,\n\n      opacity:1\n\n    });\n\n\n    layer.bringToFront();\n\n\n    if(info){\n\n      info.update(\n        layer.feature.properties\n      );\n\n    }\n\n  }\n\n\n  \/* =========================================================\n     FEATURE\n     ========================================================= *\/\n\n  function onEachFeature(\n    feature,\n    layer\n  ){\n\n    layer.on({\n\n      mouseover:\n        highlightFeature,\n\n      mouseout:\n        resetHighlight,\n\n      click:\n        onClick\n\n    });\n\n  }\n\n\n  \/* =========================================================\n     INIT MAPPA\n     ========================================================= *\/\n\n  \/* =========================================================\n     CARGA BAJO DEMANDA: Leaflet + l\u00edmites municipales\n     ========================================================= *\/\n\n  var CL_LEAFLET_CSS = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/leaflet\/1.9.4\/leaflet.min.css';\n  var CL_LEAFLET_JS  = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/leaflet\/1.9.4\/leaflet.min.js';\n  var CL_GEO_JS      = '\/wp-content\/uploads\/cl-geo\/gran-canaria.js?v=1';\n\n  var loadingLabel = {es:'Cargando mapa\u2026',en:'Loading map\u2026',it:'Caricamento mappa\u2026',de:'Karte wird geladen\u2026'};\n  var errorLabel   = {es:'No se ha podido cargar el mapa.',en:'The map could not be loaded.',it:'Impossibile caricare la mappa.',de:'Die Karte konnte nicht geladen werden.'};\n  var camLabel     = {es:'webcams',en:'webcams',it:'webcam',de:'Webcams'};\n\n  function clLoadScript(src){\n    return new Promise(function(resolve, reject){\n      var s = document.createElement('script');\n      s.src = src; s.async = true;\n      s.onload = resolve; s.onerror = reject;\n      document.head.appendChild(s);\n    });\n  }\n\n  function clLoadCSS(href){\n    if(document.querySelector('link[href=\"' + href + '\"]')) return;\n    var l = document.createElement('link');\n    l.rel = 'stylesheet'; l.href = href;\n    document.head.appendChild(l);\n  }\n\n  var clAssetsPromise = null;\n\n  function clLoadMapAssets(){\n    if(clAssetsPromise) return clAssetsPromise;\n    clLoadCSS(CL_LEAFLET_CSS);\n    var leaflet = window.L ? Promise.resolve() : clLoadScript(CL_LEAFLET_JS);\n    var geo = window.clGCGeo ? Promise.resolve() : clLoadScript(CL_GEO_JS);\n    clAssetsPromise = Promise.all([leaflet, geo]);\n    return clAssetsPromise;\n  }\n\n  function clShowMapMessage(txt){\n    document.getElementById('clMapGC').innerHTML =\n      '<div class=\"cl-map-loading\">' + txt + '<\/div>';\n  }\n\n\nfunction initMap(){\n\n    if(map)\n      return;\n\n\n    map =\n      L.map(\n\n        'clMapGC',\n\n        {\n\n          zoomControl:false,\n\n          attributionControl:false,\n\n          scrollWheelZoom:false,\n\n          dragging:false,\n\n          doubleClickZoom:false,\n\n          touchZoom:false,\n\n          zoomSnap:0.1,\n\n          zoomDelta:0.5\n\n        }\n\n      );\n\n\n    map.setView(\n\n      [27.96,-15.60],\n\n      9\n\n    );\n\n\n    \/* =======================================================\n       INFO\n       ======================================================= *\/\n\n    info =\n      L.control({\n\n        position:'bottomright'\n\n      });\n\n\n    info.onAdd =\n      function(){\n\n        this._div =\n          L.DomUtil.create(\n\n            'div',\n\n            'cl-map-info'\n\n          );\n\n\n        this.update();\n\n\n        return this._div;\n\n      };\n\n\n    info.update =\n      function(props){\n\n        if(props){\n\n          var html =\n            '<b>' +\n            props.name +\n            '<\/b>';\n\n\n          if(props.c > 0){\n\n            html +=\n\n              '<span class=\"cl-badge\">' +\n\n              props.c +\n\n              ' ' + camLabel[lang] +\n\n              '<\/span>';\n\n          }\n\n\n          if(window.innerWidth < 768){\n\n            html +=\n\n              '<br>' +\n\n              '<span style=\"' +\n\n              'color:#aaa;font-size:11px\">' +\n\n              i18n.tapAgain[lang] +\n\n              '<\/span>';\n\n          }\n\n\n          this._div.innerHTML =\n            html;\n\n        }\n\n        else{\n\n          this._div.innerHTML =\n\n            '<span style=\"color:#aaa\">' +\n\n            (\n\n              window.innerWidth < 768\n\n                ? i18n.tapMun[lang]\n\n                : i18n.hoverMun[lang]\n\n            ) +\n\n            '<\/span>';\n\n        }\n\n      };\n\n\n    info.addTo(map);\n\n\n    \/* =======================================================\n       GEOJSON UFFICIALE\n       ======================================================= *\/\nPromise.resolve(window.clGCGeo)\n\n\n      .then(function(data){\n\n        \/* ===================================================\n           SOLO GRAN CANARIA\n\n           ES705 = Gran Canaria\n           =================================================== *\/\n\n        data.features =\n\n          data.features.filter(\n\n            function(feature){\n\n              return (\n\n                feature.properties &&\n\n                (\n                  feature.properties.gcd_isla === 'ES705' ||\n                  feature.properties.GCD_ISLA === 'ES705'\n                )\n\n              );\n\n            }\n\n          );\n\n\n        \/* ===================================================\n           ASSOCIA WEBCAM AI MUNICIPI\n           =================================================== *\/\n\n        data.features.forEach(\n\n          function(feature){\n\n            var props =\n              feature.properties || {};\n\n\n            var name =\n              props.etiqueta ||\n              props.ETIQUETA ||\n              props.name ||\n              props.NOMBRE_MUN ||\n              props.NOMBRE ||\n              props.nombre ||\n              '';\n\n\n            var normalized =\n              normalizeName(name);\n\n\n            var m =\n\n              municipios.find(\n\n                function(item){\n\n                  return (\n\n                    normalizeName(item.n) ===\n                    normalized\n\n                  );\n\n                }\n\n              );\n\n\n            if(!m){\n\n              m =\n\n                municipios.find(\n\n                  function(item){\n\n                    var a =\n                      normalizeName(item.n);\n\n\n                    var b =\n                      normalizeName(name);\n\n\n                    return (\n\n                      a.indexOf(b) !== -1 ||\n\n                      b.indexOf(a) !== -1\n\n                    );\n\n                  }\n\n                );\n\n            }\n\n\n            if(m){\n\n              props.name =\n                m.n;\n\n\n              props.url =\n                m.url;\n\n\n              props.c =\n                m.cams.length;\n\n            }\n\n            else{\n\n              props.name =\n                name;\n\n\n              props.url =\n                '#';\n\n\n              props.c =\n                0;\n\n            }\n\n          }\n\n        );\n\n\n        \/* ===================================================\n           CREA MAPPA\n           =================================================== *\/\n\n        geojsonLayer =\n\n          L.geoJSON(\n\n            data,\n\n            {\n\n              style:\n                style,\n\n              onEachFeature:\n                onEachFeature\n\n            }\n\n          ).addTo(map);\n\n\n        requestAnimationFrame(function(){ fitIsland(); });\n      })\n\n\n      .catch(function(error){\n\n        console.error(\n\n          'Gran Canaria GeoJSON:',\n\n          error\n\n        );\n\n\n        document.getElementById(\n\n          'clMapGC'\n\n        ).innerHTML =\n\n          '<div style=\"' +\n\n          'padding:30px;' +\n\n          'text-align:center;' +\n\n          'color:#777;' +\n\n          '\">' +\n\n          errorLabel[lang] +\n\n          '<\/div>';\n\n      });\n\n  }\n\n\n  \/* =========================================================\n     TOGGLE\n     ========================================================= *\/\n\n  function toggle(which){\n\n\n    \/* =======================================================\n       LISTA\n       ======================================================= *\/\n\n    if(which === 'list'){\n\n      var opening =\n\n        !panelList.classList.contains(\n          'cl-open'\n        );\n\n\n      panelList.classList.toggle(\n        'cl-open'\n      );\n\n\n      btnList.classList.toggle(\n        'cl-active'\n      );\n\n\n      if(opening){\n\n        panelMap.classList.remove(\n          'cl-open'\n        );\n\n\n        btnMap.classList.remove(\n          'cl-active'\n        );\n\n      }\n\n\n      return;\n\n    }\n\n\n    \/* =======================================================\n       MAPPA\n       ======================================================= *\/\n\n    if(which === 'map'){\n\n      var opening =\n\n        !panelMap.classList.contains(\n          'cl-open'\n        );\n\n\n      panelMap.classList.toggle(\n        'cl-open'\n      );\n\n\n      btnMap.classList.toggle(\n        'cl-active'\n      );\n\n\n      if(opening){\n\n        panelList.classList.remove(\n          'cl-open'\n        );\n\n\n        btnList.classList.remove(\n          'cl-active'\n        );\n\n\n        if(!mapInitialized){\n\n          mapInitialized =\n            true;\n\n          if(!window.L || !window.clGCGeo){\n            clShowMapMessage(loadingLabel[lang]);\n          }\n\n          clLoadMapAssets()\n            .then(function(){\n              document.getElementById('clMapGC').innerHTML = '';\n              initMap();\n            })\n            .catch(function(){\n              mapInitialized = false;\n              clAssetsPromise = null;\n              clShowMapMessage(errorLabel[lang]);\n            });\n\n        }\n\n        else{\n\n          requestAnimationFrame(function(){ fitIsland(); });\n\n        }\n\n      }\n\n    }\n\n  }\n\n\n  \/* =========================================================\n     EVENTI PULSANTI\n     ========================================================= *\/\n\n  btnList.addEventListener(\n\n    'click',\n\n    function(e){\n\n      e.preventDefault();\n\n      e.stopPropagation();\n\n      toggle('list');\n\n    }\n\n  );\n\n\n  \/* Precarga discreta cuando el usuario se acerca al bot\u00f3n del mapa *\/\n  btnMap.addEventListener('mouseenter', clLoadMapAssets, {once:true});\n  btnMap.addEventListener('touchstart', clLoadMapAssets, {once:true, passive:true});\n\n\n  btnMap.addEventListener(\n\n    'click',\n\n    function(e){\n\n      e.preventDefault();\n\n      e.stopPropagation();\n\n      toggle('map');\n\n    }\n\n  );\n\n\n})();\n\n<\/script>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-5c55c3ba alignfull uagb-is-root-container\">\n<div id=\"webcamislas\"><\/div>\n\n<script>\n(function(){\n  var tries = 0;\n  function run(){\n    if (typeof islasdata === 'function' && typeof cercanasGC !== 'undefined') {\n      islasdata(cercanasGC);\n      return;\n    }\n    if (++tries < 100) setTimeout(run, 100);\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', run);\n  } else {\n    run();\n  }\n})();\n<\/script>\n<\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-abab5128 default uagb-is-root-container\">\n<p class=\"wp-block-paragraph\">Gran Canaria cambia de paisaje y de clima en cuesti\u00f3n de kil\u00f3metros: sol en el sur, nubes en la cumbre y brisa en la capital. En CanariasLife puedes ver en directo c\u00f3mo est\u00e1n el viento, el estado del mar y la visibilidad en zonas como Las Palmas, Maspalomas, Mog\u00e1n o Pozo Izquierdo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con tantas playas y microclimas diferentes, echar un vistazo a las c\u00e1maras antes de salir te ahorra el t\u00edpico \"hoy no he elegido bien la playa\".<\/p>\n\n\n\n<h2 id=\"h-que-puedes-ver-en-las-camaras-de-gran-canaria\" class=\"wp-block-heading\">\u00bfQu\u00e9 puedes ver en las c\u00e1maras de Gran Canaria?<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/las-palmas-de-gran-canaria\/\">Las Palmas de Gran Canaria<\/a> \u2014 Estado del mar y ambiente en la playa de Las Canteras, una de las mejores playas urbanas de Espa\u00f1a. Tambi\u00e9n visibilidad en la zona del puerto.<\/li>\n\n\n\n<li><a href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/mogan\/\">Mog\u00e1n<\/a> \u2014 Condiciones de playa y clima en la costa suroeste: Amadores, Puerto Rico y Patalavaca. Normalmente la zona m\u00e1s resguardada del viento.<\/li>\n\n\n\n<li><a href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/san-bartolome-de-tirajana\/\">San Bartolom\u00e9 de Tirajana<\/a> \u2014 C\u00f3mo est\u00e1n Playa del Ingl\u00e9s y las Dunas de Maspalomas: sol, viento y estado de la arena.<\/li>\n\n\n\n<li><a href=\"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/santa-lucia-de-tirajana\/pozo-izquierdo\/\">Pozo Izquierdo<\/a> \u2014 El punto de referencia del viento en Gran Canaria. Sede del campeonato mundial de windsurf: aqu\u00ed ves en directo si las condiciones son buenas para deportes acu\u00e1ticos.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"h-clima-y-microclimas-en-gran-canaria\" class=\"wp-block-heading\">Clima y microclimas en Gran Canaria<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A Gran Canaria la llaman \"continente en miniatura\" por algo: puedes tener sol radiante en Maspalomas y nubes cerradas en Teror al mismo tiempo. Las c\u00e1maras te permiten comprobar en tiempo real qu\u00e9 pasa en cada zona de la isla, para que elijas norte, sur o interior con informaci\u00f3n real y no con suposiciones.<\/p>\n\n\n\n<h2 id=\"h-estado-del-mar-en-gran-canaria-hoy\" class=\"wp-block-heading\">Estado del mar en Gran Canaria hoy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de ir a la playa, comprueba c\u00f3mo est\u00e1 el mar. Puedes ver el oleaje, la marea y la claridad del agua en distintas costas: desde Las Canteras en el norte hasta Amadores en el sur. As\u00ed eliges la playa con las mejores condiciones sin dar vueltas innecesarias.<\/p>\n\n\n\n<h2 id=\"h-viento-en-gran-canaria\" class=\"wp-block-heading\">Viento en Gran Canaria<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El viento var\u00eda mucho entre la costa este (m\u00e1s expuesta) y la oeste (m\u00e1s protegida). Pozo Izquierdo es la referencia para windsurf y kitesurf, pero si lo que buscas es una playa sin viento, Mog\u00e1n y Amadores suelen ser la mejor opci\u00f3n. Con las c\u00e1maras lo compruebas en directo.<\/p>\n\n\n\n<h2 id=\"h-preguntas-frecuentes-sobre-gran-canaria\" class=\"wp-block-heading\">Preguntas frecuentes sobre Gran Canaria<\/h2>\n\n\n\n<h3 id=\"h-donde-ver-webcams-en-gran-canaria-en-directo\" class=\"wp-block-heading\"><em>\u00bfD\u00f3nde ver webcams en Gran Canaria en directo?<\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En CanariasLife encontrar\u00e1s c\u00e1maras en playas, zonas tur\u00edsticas y puntos clave de la isla: Las Canteras, Maspalomas, Mog\u00e1n y Pozo Izquierdo, entre otros.<\/p>\n\n\n\n<h3 id=\"h-como-saber-el-tiempo-en-gran-canaria-en-tiempo-real\" class=\"wp-block-heading\"><em>\u00bfC\u00f3mo saber el tiempo en Gran Canaria en tiempo real?<\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las c\u00e1maras te muestran el estado real del cielo, el mar y la visibilidad en cada zona, minuto a minuto. M\u00e1s fiable que cualquier previsi\u00f3n cuando quieres saber qu\u00e9 pasa ahora mismo.<\/p>\n\n\n\n<h3 id=\"h-donde-hace-mejor-tiempo-en-gran-canaria\" class=\"wp-block-heading\"><em>\u00bfD\u00f3nde hace mejor tiempo en Gran Canaria?<\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Por lo general, el sur y el suroeste (Maspalomas, Mog\u00e1n, Puerto Rico) son las zonas con m\u00e1s sol y menos viento. Pero Gran Canaria sorprende: a veces el norte est\u00e1 espl\u00e9ndido cuando el sur tiene calima. Compru\u00e9balo t\u00fa mismo con las c\u00e1maras.<\/p>\n\n\n\n<h3 id=\"h-se-puede-hacer-windsurf-en-gran-canaria\" class=\"wp-block-heading\"><em>\u00bfSe puede hacer windsurf en Gran Canaria?<\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ed. Pozo Izquierdo, en la costa este, es sede del campeonato mundial de windsurf y uno de los mejores spots de Europa. Las c\u00e1maras te permiten ver el viento en directo antes de ir.<\/p>\n\n\n\n<h3 id=\"h-cual-es-la-mejor-playa-de-gran-canaria\" class=\"wp-block-heading\"><em>\u00bfCu\u00e1l es la mejor playa de Gran Canaria?<\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Depende de lo que busques. Las Canteras destaca como playa urbana, Maspalomas por sus dunas, y Amadores por su calma y aguas cristalinas. Con las c\u00e1maras puedes ver las condiciones de cada una antes de elegir.<\/p>\n\n\n\n<h3 id=\"h-como-llegar-desde-el-aeropuerto-a-las-playas-del-sur\" class=\"wp-block-heading\"><em>\u00bfC\u00f3mo llegar desde el aeropuerto a las playas del sur?<\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El aeropuerto est\u00e1 en la costa este, a unos 25 minutos de Maspalomas y 40 de Mog\u00e1n por autopista. Las c\u00e1maras te permiten comprobar el tiempo en tu destino antes de salir del aeropuerto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Explora las c\u00e1maras y elige tu mejor playa en Gran Canaria.<\/strong><\/p>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Webcams en Gran Canaria en directo Clima, viento y estado del mar en tiempo real [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":162740,"parent":0,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[5500],"tags":[4690,1202,1695,5271,446,5268,974,1770,593,3081,89,1199,1204,5280,2078,5274,1643,923,590,5276,5278,930,5275,5272,5283,925,91,1036,1764,5279,591,4784,595,5273,939,596,5277,5270,1112,926,5768,474],"folder":[4],"class_list":["post-74","page","type-page","status-publish","has-post-thumbnail","hentry","category-islas","tag-aeropuerto-de-gran-canaria","tag-agaete","tag-arguineguin","tag-bahia-feliz","tag-camaras-en-directo","tag-centro-de-las-palmas","tag-clima-en-canarias","tag-costa-de-pozo-izquierdo","tag-dunas-de-maspalomas","tag-el-confital","tag-faro-de-maspalomas","tag-galdar","tag-ingenio","tag-la-aldea-de-san-nicolas","tag-la-caleta","tag-la-cicer","tag-las-canteras","tag-las-palmas-de-gran-canaria","tag-maspalomas","tag-mirador-de-degollada-de-las-yeguas","tag-mirador-del-pico-de-las-nieves","tag-mogan","tag-paseo-de-las-canteras","tag-playa-de-amadores","tag-playa-de-gui-gui","tag-playa-de-las-canteras","tag-playa-del-ingles","tag-playas-de-gran-canaria","tag-pozo-izquierdo","tag-puerto-de-las-nieves","tag-puerto-de-mogan","tag-puerto-de-la-luz","tag-roque-nublo","tag-san-agustin","tag-santa-lucia-de-tirajana","tag-tejeda","tag-teror","tag-triana","tag-turismo-en-gran-canaria","tag-vegueta","tag-vista-en-tiempo-real","tag-webcams-gran-canaria"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.7 (Yoast SEO v28.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Webcams en vivo Gran Canaria: vistas en tiempo real<\/title>\n<meta name=\"description\" content=\"Descubre las webcams en vivo de Gran Canaria para ver playas, monta\u00f1as y ciudades en tiempo real. Ideal para planificar tu visita\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/canariaslife.com\/it\/webcam-di-gran-canaria\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Webcams en vivo Gran Canaria: vistas en tiempo real\" \/>\n<meta property=\"og:description\" content=\"Descubre las webcams en vivo de Gran Canaria para ver playas, monta\u00f1as y ciudades en tiempo real. Ideal para planificar tu visita\" \/>\n<meta property=\"og:url\" content=\"https:\/\/canariaslife.com\/it\/webcam-di-gran-canaria\/\" \/>\n<meta property=\"og:site_name\" content=\"CanariasLife webcams\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/CanariasLifeW\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-22T09:55:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"849\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@CanariasLifeW\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/canariaslife.com\\\/camaras-de-gran-canaria\\\/\",\"url\":\"https:\\\/\\\/canariaslife.com\\\/camaras-de-gran-canaria\\\/\",\"name\":\"Webcams en vivo Gran Canaria: vistas en tiempo real\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/canariaslife.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/canariaslife.com\\\/camaras-de-gran-canaria\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/canariaslife.com\\\/camaras-de-gran-canaria\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/canariaslife.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Gran-Canaria.webp\",\"datePublished\":\"2024-12-20T17:14:38+00:00\",\"dateModified\":\"2026-10-22T09:55:48+00:00\",\"description\":\"Descubre las webcams en vivo de Gran Canaria para ver playas, monta\u00f1as y ciudades en tiempo real. Ideal para planificar tu visita\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/canariaslife.com\\\/camaras-de-gran-canaria\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/canariaslife.com\\\/camaras-de-gran-canaria\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/canariaslife.com\\\/camaras-de-gran-canaria\\\/#primaryimage\",\"url\":\"https:\\\/\\\/canariaslife.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Gran-Canaria.webp\",\"contentUrl\":\"https:\\\/\\\/canariaslife.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Gran-Canaria.webp\",\"width\":1280,\"height\":849},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/canariaslife.com\\\/camaras-de-gran-canaria\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"inicio\",\"item\":\"https:\\\/\\\/canariaslife.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gran Canaria\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/canariaslife.com\\\/#website\",\"url\":\"https:\\\/\\\/canariaslife.com\\\/\",\"name\":\"https:\\\/\\\/canariaslife.com\",\"description\":\"CanariasLife c\u00e1maras web en vivo de las Islas Canarias\",\"publisher\":{\"@id\":\"https:\\\/\\\/canariaslife.com\\\/#organization\"},\"alternateName\":\"webcams en vivo de Canarias\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/canariaslife.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/canariaslife.com\\\/#organization\",\"name\":\"CanariasLife webcams\",\"url\":\"https:\\\/\\\/canariaslife.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/canariaslife.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/canariaslife.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/cropped-Favicon.jpg\",\"contentUrl\":\"https:\\\/\\\/canariaslife.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/cropped-Favicon.jpg\",\"width\":512,\"height\":512,\"caption\":\"CanariasLife webcams\"},\"image\":{\"@id\":\"https:\\\/\\\/canariaslife.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/CanariasLifeW\",\"https:\\\/\\\/x.com\\\/CanariasLifeW\",\"https:\\\/\\\/www.instagram.com\\\/canariaslifewebcams\\\/\",\"https:\\\/\\\/www.youtube.com\\\/CanariasLifeWebcams\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/canariaslife-webcams\\\/\"],\"description\":\"CanariasLife ofrece transmisiones en vivo a trav\u00e9s de webcams de las Islas Canarias, mostrando paisajes, playas y puntos de inter\u00e9s en tiempo real para turistas y amantes de las islas.\",\"legalName\":\"CanariasLife webcams\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1\",\"maxValue\":\"10\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Webcam Gran Canaria in diretta | Spiagge e meteo ora","description":"Webcam in diretta in tutta Gran Canaria: spiagge, montagne e citt\u00e0 in tempo reale. Controlla meteo, vento e mare prima di organizzare la giornata.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/canariaslife.com\/it\/webcam-di-gran-canaria\/","og_locale":"it_IT","og_type":"article","og_title":"Webcams en vivo Gran Canaria: vistas en tiempo real","og_description":"Descubre las webcams en vivo de Gran Canaria para ver playas, monta\u00f1as y ciudades en tiempo real. Ideal para planificar tu visita","og_url":"https:\/\/canariaslife.com\/it\/webcam-di-gran-canaria\/","og_site_name":"CanariasLife webcams","article_publisher":"https:\/\/www.facebook.com\/CanariasLifeW","article_modified_time":"2026-10-22T09:55:48+00:00","og_image":[{"width":1280,"height":849,"url":"https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_site":"@CanariasLifeW","twitter_misc":{"Tempo di lettura stimato":"4 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/","url":"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/","name":"Webcam Gran Canaria in diretta | Spiagge e meteo ora","isPartOf":{"@id":"https:\/\/canariaslife.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/#primaryimage"},"image":{"@id":"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/#primaryimage"},"thumbnailUrl":"https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria.webp","datePublished":"2024-12-20T17:14:38+00:00","dateModified":"2026-10-22T09:55:48+00:00","description":"Webcam in diretta in tutta Gran Canaria: spiagge, montagne e citt\u00e0 in tempo reale. Controlla meteo, vento e mare prima di organizzare la giornata.","breadcrumb":{"@id":"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/canariaslife.com\/camaras-de-gran-canaria\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/#primaryimage","url":"https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria.webp","contentUrl":"https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria.webp","width":1280,"height":849},{"@type":"BreadcrumbList","@id":"https:\/\/canariaslife.com\/camaras-de-gran-canaria\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"inicio","item":"https:\/\/canariaslife.com\/"},{"@type":"ListItem","position":2,"name":"Gran Canaria"}]},{"@type":"WebSite","@id":"https:\/\/canariaslife.com\/#website","url":"https:\/\/canariaslife.com\/","name":"https:\/\/canariaslife.com","description":"CanariasLife webcam in diretta delle Isole Canarie","publisher":{"@id":"https:\/\/canariaslife.com\/#organization"},"alternateName":"webcams en vivo de Canarias","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/canariaslife.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/canariaslife.com\/#organization","name":"CanariasLife webcams","url":"https:\/\/canariaslife.com\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/canariaslife.com\/#\/schema\/logo\/image\/","url":"https:\/\/canariaslife.com\/wp-content\/uploads\/2024\/12\/cropped-Favicon.jpg","contentUrl":"https:\/\/canariaslife.com\/wp-content\/uploads\/2024\/12\/cropped-Favicon.jpg","width":512,"height":512,"caption":"CanariasLife webcams"},"image":{"@id":"https:\/\/canariaslife.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/CanariasLifeW","https:\/\/x.com\/CanariasLifeW","https:\/\/www.instagram.com\/canariaslifewebcams\/","https:\/\/www.youtube.com\/CanariasLifeWebcams","https:\/\/www.linkedin.com\/in\/canariaslife-webcams\/"],"description":"CanariasLife offre trasmissioni dal vivo tramite webcam delle Isole Canarie, mostrando paesaggi, spiagge e punti di interesse in tempo reale per turisti e amanti delle isole.","legalName":"CanariasLife webcams","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1","maxValue":"10"}}]}},"uagb_featured_image_src":{"full":["https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria.webp",1280,849,false],"thumbnail":["https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria-150x150.webp",150,150,true],"medium":["https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria-300x199.webp",300,199,true],"medium_large":["https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria-768x509.webp",768,509,true],"large":["https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria-1024x679.webp",1024,679,true],"1536x1536":["https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria.webp",1280,849,false],"2048x2048":["https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria.webp",1280,849,false],"trp-custom-language-flag":["https:\/\/canariaslife.com\/wp-content\/uploads\/2025\/12\/Gran-Canaria.webp",18,12,false]},"uagb_author_info":{"display_name":"Paolo","author_link":"https:\/\/canariaslife.com\/it\/author\/paolo-agostinianigmail-com\/"},"uagb_comment_info":0,"uagb_excerpt":"Webcams en Gran Canaria en directo Clima, viento y estado del mar en tiempo real [&hellip;]","_links":{"self":[{"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/pages\/74","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/comments?post=74"}],"version-history":[{"count":57,"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/pages\/74\/revisions"}],"predecessor-version":[{"id":174999,"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/pages\/74\/revisions\/174999"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/media\/162740"}],"wp:attachment":[{"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/media?parent=74"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/categories?post=74"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/tags?post=74"},{"taxonomy":"folder","embeddable":true,"href":"https:\/\/canariaslife.com\/it\/wp-json\/wp\/v2\/folder?post=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}