;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Anac divulga malha aérea com 1,2 mil voos semanais para todos os estados

Serão 723 voos no Sudeste, 153 na região Nordeste, 155 voos no Sul, 135 no Centro-oeste e 75 voos para a região Norte - Divulgação
Serão 723 voos no Sudeste, 153 na região Nordeste, 155 voos no Sul, 135 no Centro-oeste e 75 voos para a região Norte Imagem: Divulgação

De Nossa

27/03/2020 10h52

A Agência Nacional de Aviação Civil (Anac) divulgou os últimos ajustes de malha aérea das empresas Gol, Azul e Latam. Além das capitais dos 26 estados e o Distrito Federal, outras 19 cidades do país serão atendidas.

Os voos terão início neste amanhã e estão previstos até o final de abril, distribuídos em frequências semanais com: 723 voos no Sudeste, 153 na região Nordeste, 155 voos no Sul, 135 no Centro-oeste e 75 voos para a região Norte.

A distribuição dos voos atende a preocupação do Governo Federal de manter uma malha que continue integrando o País, com ajustes para que nenhum estado fique sem pelo menos uma ligação aérea.

Com a redução drástica de voos em março, em decorrência da pandemia do coronavírus, havia o risco de uma paralisação total do serviço. A malha emergencial é 91,61% menor do que a originalmente prevista pelas empresas para o período.

Malha aérea - Divulgação - Divulgação
As empresas aéreas operarão 1.241 voos semanais, sendo 483 voos da Latam, 405 voos da Azul e 353 voos da Gol
Imagem: Divulgação

Considerando a programação de Gol, Azul e Latam, a queda é de 56,06% das localidades atendidas, ando de 106 para 46. O número de voos semanais ou de 14.781 para 1.241 — sendo 483 voos da Latam, 405 voos da Azul e 353 voos da Gol.

O Diretor-Presidente da ANAC, Juliano Noman, reforça a importância da medida para a manutenção do transporte aéreo.

"A aviação de vários países está parando por completo. O que estamos fazendo no Brasil é porque sabemos que o serviço aéreo é essencial para ajudar o País a superar esse cenário sem precedentes, permitindo o deslocamento de materiais, profissionais de saúde e das pessoas que ainda precisam viajar".

Também participam da ação o Conselho istrativo de Defesa Econômica (CADE), do Ministério da Economia, e o Ministério da Infraestrutura, que tem buscado junto aos governos estaduais apoio para a iniciativa.

A lista completa com aeroportos que serão atendidos pela malha aérea divulgada pode ser ada no site da Anac.