El incendio de Navaluenga (Ávila) se ha convertido en el más devastador de la historia, con una extensión que podría arrasar el 99% de los municipios españoles
Regala esta noticia Añádenos en Google 27/07/2026 Actualizado a las 18:27h.El incendio de Navaluenga, en Ávila, ha calcinado hasta ahora cerca de 50.000 hectáreas y se ha convertido en el más devastador en la ... historia de España. Nunca antes, con los datos disponibles, se había alcanzado esta dimensión. Sobre el terreno, con datos del Sistema de Información de Incendios Forestales Europeos (EFFIS) actualizados a las 16:00 horas del 27 de julio, se pinta así:
42.394
Navaluenga
(Ávila)
42.394
Navaluenga
(Ávila)
42.394
Navaluenga
(Ávila)
Supera de este modo al de Uña de Quintana, Zamora, que se llevó por delante en 2025 hasta 40.081 hectáreas:
40.081
Uña de Quintana
(Zamora)
40.081
Uña de Quintana
(Zamora)
40.081
Uña de Quintana
(Zamora)
Y A Rúa, Ourense, también en 2025, con 37.179 hectáreas:
37.179
A Rúa
(Ourense)
37.179
A Rúa
(Ourense)
37.179
A Rúa
(Ourense)
Muchos miles de hectáreas que es difícil poner en contexto sin decir, por ejemplo, que se ha quemado un espacio similar a 70.000 campos de fútbol o que ocuparía el 80% de la superficie de Madrid capital (el 100% de la ciudad en sí), cinco veces la ciudad de Barcelona -sin su área metropolitana- o casi toda la isla de Ibiza.
En este mapa puedes comprobar cómo se vería la superficie quemada del incendio sobre cualquier punto de España:
Incendios recientes (7 días) Histórico desde 2013 Puntos de calor últimas 24 horas Perímetro Círculo Usa Ctrl o Comando y la rueda para ampliar el mapa Fuentes: EFFIS para los perímetros de incendios; NASA FIRMS, VIIRS y MODIS para los puntos de calor; IGN para la ortofoto PNOA. Detectado por NASA FIRMS Fecha: ${escapeHtml(localDate.date)} Hora: ${escapeHtml(localDate.time)} Potencia térmica: ${escapeHtml(thermalPower)} Actualización: ${escapeHtml(state.hotspotUpdatedAt)} ` ); const source = state.map.getSource('voc-hotspot-active'); if (source) { source.setData({ type: 'FeatureCollection', features: [feature] }); } } function clearSelectedFeatures() { if (state.map.getLayer('voc-fire-active-fill')) { state.map.setFilter( 'voc-fire-active-fill', ['==', ['get', 'id'], -1] ); } if (state.map.getLayer('voc-fire-active-line')) { state.map.setFilter( 'voc-fire-active-line', ['==', ['get', 'id'], -1] ); } const activeHotspotSource = state.map.getSource('voc-hotspot-active'); if (activeHotspotSource) { activeHotspotSource.setData(emptyFeatureCollection); } if (state.popup) { state.popup.remove(); state.popup = null; } } function addEffisData(result) { state.effisUpdatedAt = result.updatedAt; const features = result.data.features .filter((feature) => feature?.geometry) .map((feature, index) => { const properties = feature.properties || {}; return { type: 'Feature', geometry: feature.geometry, properties: { id: index, CLASS: properties.CLASS || '', Fecha: properties.Fecha || '', AREA_HA: parseHectares(properties.AREA_HA), COMMUNE: properties.COMMUNE || '', PROVINCE: properties.PROVINCE || '' } }; }); state.map.addSource('voc-fires', { type: 'geojson', data: { type: 'FeatureCollection', features } }); addLayerBelowLabels({ id: 'voc-fire-fill', type: 'fill', source: 'voc-fires', paint: { 'fill-color': fireFillExpression, 'fill-opacity': 0.6 } }); addLayerBelowLabels({ id: 'voc-fire-line', type: 'line', source: 'voc-fires', paint: { 'line-color': fireLineExpression, 'line-width': 1.2, 'line-opacity': 0.9 } }); addLayerBelowLabels({ id: 'voc-fire-active-fill', type: 'fill', source: 'voc-fires', filter: ['==', ['get', 'id'], -1], paint: { 'fill-color': '#DE0429', 'fill-opacity': 0.82 } }); addLayerBelowLabels({ id: 'voc-fire-active-line', type: 'line', source: 'voc-fires', filter: ['==', ['get', 'id'], -1], paint: { 'line-color': '#202020', 'line-width': 2.5 } }); state.map.on('click', 'voc-fire-fill', (event) => { const feature = event.features?.[0]; if (!feature) { return; } const properties = feature.properties || {}; const hectares = parseHectares(properties.AREA_HA); const hectaresText = hectares > 0 ? Math.round(hectares).toLocaleString('es-ES') : 'No disponible'; let formattedDate = 'No disponible'; if (properties.Fecha) { const parts = String(properties.Fecha).trim().split('-'); formattedDate = parts.length === 3 ? `${parts[2]}/${parts[1]}/${parts[0]}` : String(properties.Fecha); } state.map.setFilter( 'voc-fire-active-fill', ['==', ['get', 'id'], Number(properties.id)] ); state.map.setFilter( 'voc-fire-active-line', ['==', ['get', 'id'], Number(properties.id)] ); showPopup( event.lngLat, ` ${escapeHtml(properties.COMMUNE || 'Sin municipio')} ${escapeHtml(properties.PROVINCE || 'Provincia no disponible')} Incendio iniciado el ${escapeHtml(formattedDate)} ${escapeHtml(hectaresText)} hectáreas Datos EFFIS: ${escapeHtml(state.effisUpdatedAt)} ` ); }); state.map.on('mouseenter', 'voc-fire-fill', () => { state.map.getCanvas().style.cursor = 'pointer'; }); state.map.on('mouseleave', 'voc-fire-fill', () => { state.map.getCanvas().style.cursor = ''; }); reorderDataLayers(); } function addViirsData(result) { const validFeatures = result.data.features.filter((feature) => ( feature?.geometry?.type === 'Point' && Array.isArray(feature.geometry.coordinates) )); const timestamps = validFeatures .map(hotspotTimestamp) .filter(Number.isFinite); const referenceTimestamp = timestamps.length ? Math.max(...timestamps) : Date.now(); state.hotspotUpdatedAt = new Intl.DateTimeFormat('es-ES', { day: '2-digit', month: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit', hour12: false, timeZone: 'Europe/Madrid' }).format(new Date(referenceTimestamp)); const last24Hours = validFeatures.filter((feature) => { const [lng, lat] = feature.geometry.coordinates.map(Number); const timestamp = hotspotTimestamp(feature); const confidence = String( feature.properties?.CONFIDENCE ?? '' ).trim().toLowerCase(); if ( !Number.isFinite(lng) || !Number.isFinite(lat) || !Number.isFinite(timestamp) ) { return false; } if (confidence === 'low' || confidence === 'l') { return false; } const ageHours = (referenceTimestamp - timestamp) / 3600000; return ageHours >= 0 && ageHours { const [lng, lat] = feature.geometry.coordinates.map(Number); return isInSpain(lng, lat); }); state.hotspots = ONLY_SPAIN_HOTSPOTS ? spanishHotspots : last24Hours; state.map.addSource('voc-hotspots', { type: 'geojson', data: { type: 'FeatureCollection', features: state.hotspots } }); state.map.addSource('voc-hotspot-active', { type: 'geojson', data: emptyFeatureCollection }); addLayerBelowLabels({ id: 'voc-hotspot-active', type: 'circle', source: 'voc-hotspot-active', paint: { 'circle-radius': 14, 'circle-color': 'rgba(222, 4, 41, 0.22)', 'circle-stroke-width': 2, 'circle-stroke-color': '#DE0429' } }); addLayerBelowLabels({ id: 'voc-hotspots', type: 'circle', source: 'voc-hotspots', paint: { 'circle-radius': [ 'interpolate', ['linear'], ['zoom'], 4, 3.5, 10, 5.5, 14, 8.5 ], 'circle-color': '#DE0429', 'circle-opacity': 0.88, 'circle-stroke-width': 1.4, 'circle-stroke-color': '#97001A' } }); state.map.on('click', 'voc-hotspots', (event) => { const feature = event.features?.[0]; if (!feature) { return; } showHotspotPopup(feature); }); state.map.on('mouseenter', 'voc-hotspots', () => { state.map.getCanvas().style.cursor = 'pointer'; }); state.map.on('mouseleave', 'voc-hotspots', () => { state.map.getCanvas().style.cursor = ''; }); reorderDataLayers(); } function closeSearch() { searchResults.innerHTML = ''; searchResults.style.display = 'none'; searchInput.setAttribute('aria-expanded', 'false'); searchInput.removeAttribute('aria-activedescendant'); state.searchItems = []; state.searchIndex = -1; } function setActiveSearchResult(index) { state.searchIndex = index; state.searchItems.forEach((button, itemIndex) => { const isActive = itemIndex === index; button.setAttribute('aria-selected', String(isActive)); if (isActive) { button.scrollIntoView({ block: 'nearest' }); searchInput.setAttribute('aria-activedescendant', button.id); } }); } function normalizeSearchValue(value) { return String(value || '') .normalize('NFD') .replace(/[\u0300-\u036f]/g, '') .trim() .toLowerCase(); } function getSearchLocality(item) { const address = item.address || {}; return normalizePlaceLabel( item.name || address.city || address.town || address.village || address.municipality || address.hamlet || address.county || String(item.display_name || '').split(',')[0] ); } function getSearchAdministrativeArea(item) { const address = item.address || {}; return normalizePlaceLabel( address.province || address.state || address.region || address.state_district || '' ); } function getSearchPlaceLabel(item) { return getSearchLocality(item); } function getSearchResultDisplayLabel(item) { const locality = getSearchLocality(item); const administrativeArea = getSearchAdministrativeArea(item); const normalizedLocality = normalizeSearchValue(locality); const normalizedArea = normalizeSearchValue(administrativeArea); if ( administrativeArea && normalizedArea && normalizedArea !== normalizedLocality ) { return `${locality}, ${administrativeArea}`; } return locality || item.display_name || item.name || 'Lugar sin nombre'; } function getSearchResultKey(item) { const locality = normalizeSearchValue(getSearchLocality(item)); const administrativeArea = normalizeSearchValue( getSearchAdministrativeArea(item) ); if (locality) { return `${locality}|${administrativeArea}`; } return normalizeSearchValue( String(item.display_name || '') .split(',') .map((part) => part.trim()) .filter((part) => !/^\d{5}$/.test(part)) .filter((part) => normalizeSearchValue(part) !== 'espana') .slice(0, 3) .join('|') ); } function getSearchResultPriority(item) { const type = normalizeSearchValue( item.addresstype || item.type || '' ); const priorityByType = { city: 100, town: 95, village: 90, municipality: 85, hamlet: 80, administrative: 70, county: 55, suburb: 45, neighbourhood: 40, postcode: 10 }; const typePriority = priorityByType[type] || 30; const importance = Number.isFinite(Number(item.importance)) ? Number(item.importance) : 0; return (typePriority * 100) + importance; } function prepareSearchResults(items, maximumResults = 6) { const orderedItems = [...items].sort((first, second) => ( getSearchResultPriority(second) - getSearchResultPriority(first) )); const uniqueItems = []; const seenKeys = new Set(); for (const item of orderedItems) { const key = getSearchResultKey(item); if (!key || seenKeys.has(key)) { continue; } seenKeys.add(key); uniqueItems.push(item); if (uniqueItems.length >= maximumResults) { break; } } return uniqueItems; } function selectSearchResult(item) { const lng = Number.parseFloat(item.lon); const lat = Number.parseFloat(item.lat); if (!Number.isFinite(lng) || !Number.isFinite(lat)) { return; } const placeLabel = getSearchPlaceLabel(item); searchInput.value = getSearchResultDisplayLabel(item); closeSearch(); moveMapTo([lng, lat], { announce: false, placeLabel, zoom: Math.max(state.map.getZoom(), 9.35) }); announce(`El mapa se ha desplazado hasta ${placeLabel}.`); } function renderSearchResults(items) { closeSearch(); if (!Array.isArray(items) || !items.length) { return; } const fragment = document.createDocumentFragment(); const resultId = Date.now(); items.forEach((item, index) => { const button = document.createElement('button'); button.type = 'button'; button.id = `voc-map-result-${resultId}-${index}`; button.className = 'voc-map-search-option'; button.setAttribute('role', 'option'); button.setAttribute('aria-selected', 'false'); button.textContent = getSearchResultDisplayLabel(item); button.addEventListener('click', () => { selectSearchResult(item); }); fragment.appendChild(button); state.searchItems.push(button); }); searchResults.appendChild(fragment); searchResults.style.display = 'block'; searchInput.setAttribute('aria-expanded', 'true'); } async function searchPlace(query) { if (state.searchController) { state.searchController.abort(); } state.searchController = new AbortController(); const parameters = new URLSearchParams({ format: 'jsonv2', q: query, limit: '18', addressdetails: '1', countrycodes: 'es', 'accept-language': 'es' }); try { const response = await fetch( `https://nominatim.openstreetmap.org/search?${parameters.toString()}`, { signal: state.searchController.signal, headers: { Accept: 'application/json' } } ); if (!response.ok) { throw new Error(`Búsqueda: error HTTP ${response.status}`); } const results = await response.json(); const spanishResults = results.filter((item) => ( String(item?.address?.country_code || '').toLowerCase() === 'es' )); renderSearchResults( prepareSearchResults(spanishResults, 6) ); } catch (error) { if (error.name !== 'AbortError') { console.error('No se pudo completar la búsqueda:', error); closeSearch(); } } } function addFitComparisonControl() { const navigationGroup = root.querySelector( '.maplibregl-ctrl-bottom-left .maplibregl-ctrl-group' ); if (!navigationGroup) { return; } const button = document.createElement('button'); button.type = 'button'; button.className = 'voc-map-fit-control'; button.title = 'Ver completa'; button.setAttribute( 'aria-label', 'Ajustar el zoom para ver completa la superficie comparada' ); button.innerHTML = ` `; button.addEventListener('click', fitComparison); navigationGroup.appendChild(button); } function bindInterfaceEvents() { areaModeButtons.forEach((button) => { button.addEventListener('click', () => { setComparisonMode(button.dataset.vocAreaMode); }); }); pnoaButton.addEventListener('click', () => { if (!state.map.getLayer('voc-pnoa')) { return; } state.pnoaActive = !state.pnoaActive; state.map.setLayoutProperty( 'voc-pnoa', 'visibility', state.pnoaActive ? 'visible' : 'none' ); updatePnoaButton(); reorderDataLayers(); }); searchInput.addEventListener('input', () => { const query = searchInput.value.trim(); window.clearTimeout(state.searchTimer); if (state.searchController) { state.searchController.abort(); } if (query.length < 3) { closeSearch(); return; } state.searchTimer = window.setTimeout(() => { searchPlace(query); }, 320); }); searchInput.addEventListener('keydown', (event) => { if (!state.searchItems.length) { if (event.key === 'Escape') { closeSearch(); } return; } if (event.key === 'ArrowDown') { event.preventDefault(); setActiveSearchResult( (state.searchIndex + 1) % state.searchItems.length ); } else if (event.key === 'ArrowUp') { event.preventDefault(); setActiveSearchResult( ( state.searchIndex - 1 + state.searchItems.length ) % state.searchItems.length ); } else if (event.key === 'Enter' && state.searchIndex >= 0) { event.preventDefault(); state.searchItems[state.searchIndex].click(); } else if (event.key === 'Escape') { event.preventDefault(); closeSearch(); } }); document.addEventListener('pointerdown', (event) => { if (!root.contains(event.target)) { closeSearch(); return; } if (!event.target.closest('.voc-map-search')) { closeSearch(); } }); document.addEventListener('keydown', (event) => { if (event.key === 'Escape') { closeSearch(); if (state.popup) { state.popup.remove(); state.popup = null; } } }); } updateContextUi(initialLocation.name); searchInput.setAttribute( 'aria-label', `Buscar un lugar. El mapa comienza sobre ${initialLocation.name}` ); const effisPromise = fetchGeoJson( URL_EFFIS, 'EFFIS', 'force-cache' ); const viirsPromise = fetchGeoJson( URL_VIIRS, 'VIIRS', 'no-store' ); try { const maplibregl = await loadMapLibre(); state.map = new maplibregl.Map({ container: mapElement, style: MAP_STYLE_URL, center: initialCenter, zoom: initialZoom, cooperativeGestures: true, attributionControl: true }); state.map.dragRotate.disable(); state.map.touchZoomRotate.disableRotation(); state.map.addControl( new maplibregl.NavigationControl({ showCompass: false }), 'bottom-left' ); addFitComparisonControl(); bindInterfaceEvents(); state.map.on('movestart', () => { const center = state.map.getCenter(); state.moveStartCenter = [center.lng, center.lat]; }); state.map.on('dragstart', () => { state.pendingPlaceLabel = null; }); state.map.on('move', scheduleComparisonSync); state.map.on('moveend', () => { syncComparisonWithMap(); const center = state.map.getCenter(); const movedDistance = distanceBetween( state.moveStartCenter, [center.lng, center.lat] ); if (state.pendingPlaceLabel) { updateContextUi(state.pendingPlaceLabel); state.pendingPlaceLabel = null; } else if (movedDistance > 30) { updateContextUi('el centro del mapa'); } });let zoomHintTimer = null;state.map.getContainer().addEventListener( 'wheel', (event) => { if (!event.ctrlKey && !event.metaKey) { zoomHint.style.display = 'block'; window.clearTimeout(zoomHintTimer); zoomHintTimer = window.setTimeout(() => { zoomHint.style.display = 'none'; }, 1200); } else { zoomHint.style.display = 'none'; } }, { passive: true }); state.map.on('load', () => { addPnoaLayer(); addComparisonLayers(); syncComparisonWithMap(); updateCenterGuideLabel(); reorderDataLayers(); if (VOC_FIRE_PERIMETER) { loadFirePerimeter(VOC_FIRE_PERIMETER); } else if (URL_FIRE_PERIMETER) { fetch(URL_FIRE_PERIMETER, { mode: 'cors', credentials: 'omit' }) .then((response) => { if (!response.ok) { throw new Error(`Perímetro: error HTTP ${response.status}`); } return response.json(); }) .then(loadFirePerimeter) .catch((error) => { console.error('No se pudo cargar el perímetro real:', error); }); } effisPromise .then(addEffisData) .catch((error) => { console.error('No se pudieron cargar los datos EFFIS:', error); }); viirsPromise .then(addViirsData) .catch((error) => { console.error('No se pudieron cargar los puntos de calor:', error); }); state.map.on('click', (event) => { const interactiveLayers = [ 'voc-fire-fill', 'voc-hotspots' ].filter((layerId) => state.map.getLayer(layerId)); const interactiveFeatures = interactiveLayers.length ? state.map.queryRenderedFeatures(event.point, { layers: interactiveLayers }) : []; if (interactiveFeatures.length) { return; } clearSelectedFeatures(); }); root.vocMapState = 'ready'; root.vocMap = state.map; announce( `El mapa está listo. Las 50.000 hectáreas permanecen centradas sobre ${initialLocation.name}. Mueve el mapa para compararlas.` ); }); const resizeMap = () => { if (!root.isConnected || !state.map) { return; } window.requestAnimationFrame(() => { state.map.resize(); }); }; window.addEventListener('pageshow', resizeMap); window.addEventListener('resize', resizeMap, {passive: true}); document.addEventListener('visibilitychange', () => { if (!document.hidden) { resizeMap(); } }); window.requestAnimationFrame(resizeMap); } catch (error) { root.vocMapState = 'error'; announce('No se pudo cargar el mapa.'); console.error('Error al inicializar el mapa:', error); }})();Son, según los datos adelantados por el Gobierno, cerca de 50.000 hectáreas, que se muestran como un círculo en el centro de la imagen. El área del propio incendio está extraída del EFFIS, se calcula por fotografías satélite y alcanza las 46.139 hectáreas hasta el 27 de julio. Es el último dato disponible.
Una extensión mayor que la del 99% de municipios
Si se compara con cada uno de los municipios españoles, supone un cuarto de la extensión de Cáceres, el más grande, pero supera al 99% de todos ellos:
Buscador de Municipios - Estilo Vocento (Compact Layout)searchchevron_leftPágina 1 de 1chevron_rightFuente: Instituto Geográfico Nacional (IGN)`;inputBuscador.disabled = false;paginacionContainer.style.display = 'flex';actualizarPaginacion();},error: function(error) {console.error("Error al cargar el CSV:", error);contenedorResultados.innerHTML = "Error al cargar los datos.
Asegúrate de que la ruta del CSV permite peticiones cruzadas (CORS).
No se han encontrado datos para esta búsqueda.
";}function renderizarPagina() {contenedorResultados.innerHTML = ""; const inicio = (paginaActual - 1) * RESULTADOS_POR_PAGINA;const fin = inicio + RESULTADOS_POR_PAGINA;const paginaDatos = datosFiltrados.slice(inicio, fin);paginaDatos.forEach(d => {const anchoBarra = (d.hectareas / MAX_VALOR) * 100;const hectareasFormateadas = new Intl.NumberFormat('es-ES').format(d.hectareas);const divFila = document.createElement('div');divFila.className = 'fila';divFila.innerHTML = `${d.municipio}(${d.provincia})${hectareasFormateadas} ha`;contenedorResultados.appendChild(divFila);});}inputBuscador.addEventListener('input', (e) => {aplicarFiltro(e.target.value);});btnPrev.addEventListener('click', () => {if (paginaActual > 1) {paginaActual--;actualizarPaginacion();}});btnNext.addEventListener('click', () => {const totalPaginas = Math.ceil(datosFiltrados.length / RESULTADOS_POR_PAGINA);if (paginaActual < totalPaginas) {paginaActual++;actualizarPaginacion();}});cargarDatos();Además del incendio de Ávila y de los declarados a pocos kilómetros en Madrid, todos ellos todavía activos, la mirada sigue puesta en la Vall d'Uixó (Castellón), donde el fuego ha consumido ya más de 7.500 hectáreas. Son cerca de 100.000 los desplazados.
Noticia relacionada
Radar de incendios
Guillermo Villar
En todo 2026 han ardido 208.286 hectáreas y julio se ha llevado por delante un 73% (157.786). Son los últimos datos extraídos de los 366 incendios que ha detectado el Sistema de Información de Incendios Forestales Europeos (EFFIS) hasta el 27 de julio, tras el tercer peor junio en los 11 años con registros públicos por parte de estas estadísticas.