;(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

Viajar de helicóptero sem gastar muito? Saiba como encontrar voos baratos

Voos de helicóptero podem ser adquiridos por preços mais baratos se o ageiro tiver flexibilidade em viajar - Alexandre Saconi
Voos de helicóptero podem ser adquiridos por preços mais baratos se o ageiro tiver flexibilidade em viajar Imagem: Alexandre Saconi

Alexandre Saconi

Colaboração para Nossa

28/01/2021 04h00

Quem vai viajar e tem flexibilidade com datas e horários pode cogitar em usar mais um meio econômico de chegar ao seu destino: o helicóptero. Rotas que costumam custar milhares de reais quando é feito o fretamento exclusivo de uma aeronave hoje podem ser feitas de uma maneira mais barata, por meio de um outlet de agens aéreas.

A empresa Helicóptero para Todos usa seu perfil no Instagram para divulgar voos econômicos que serão realizados por empresas parceiras, em rotas que já estão previamente determinadas. São voos com valores abaixo dos encontrados no mercado, como, por exemplo, ville (SC) a São Paulo por R$ 250.

De ônibus, o trajeto custa entre R$ 100 e R$ 180, mas a duração da viagem ultraa as 8 horas. De avião, os preços pesquisados no mesmo período oscilavam entre R$ 350 e R$ 800, aproximadamente, com um voo de pouco mais de uma hora.

Helicóptero - Getty Images/iStockphoto - Getty Images/iStockphoto
Imagem: Getty Images/iStockphoto

Outro exemplo foi um voo oferecido entre Maresias (SP) e São Paulo no dia 28 de dezembro de 2020 por R$ 250 por assento. Um voo similar, entre a capital paulista a praia da Riviera de São Lourenço, no município de Bertioga, pode custar por volta de R$ 1.600 por pessoa em uma situação de fretamento comum de helicóptero.

Voos de oportunidade

Esses voos de oportunidade, com preços mais íveis, só são possíveis porque, em uma operação de táxi-aéreo, costuma ocorrer o que é chamado de "perna vazia".

"É quando um helicóptero que vai levar um cliente para a praia, por exemplo, acaba voltando sem nenhum ageiro para a sede da empresa. É esse trecho do voo que vendemos por um preço menor, já que a operação principal do fretamento foi realizada e a aeronave se encontra disponível", diz Rafael Dylis, fundador da Helicóptero para Todos.

Ele ainda destaca que a intenção dos operadores não é dar lucro, mas levantar recursos para diminuir as despesas da operação, como combustível ou taxas aeroportuárias.

Helicóptero sobrevoa o Rio de Janeiro - Getty Images/iStockphoto - Getty Images/iStockphoto
Helicóptero sobrevoa o Rio de Janeiro
Imagem: Getty Images/iStockphoto

"Para pousar em um heliponto é preciso pagar um valor determinado. O gasto da empresa com isso pode diminuir com a venda desses assentos disponíveis quando o helicóptero está voando sem ageiros", diz o fundador da empresa.

Como os voos são fretados, na maioria das vezes, faltando pouco tempo para ocorrerem, não é possível se planejar em pegar um desses voos de oportunidade com antecedência. Segundo Dylis, a maioria das pessoas que aproveitam esses tipos de decolagem o fazem mais pela experiência do que pela necessidade de estar em um compromisso, onde, muitas vezes, os horários são apertados.

A empresa ainda destaca que apenas faz o agenciamento entre as companhias de táxi-aéreo que disponibilizam os assentos e os ageiros interessados. Apenas empresas homologadas pela Anac (Agência Nacional de Aviação Civil) podem realizar os voos.

Jatos

Também é possível buscar assentos com valores mais baixos em voos de aviões que irão fazer uma perna vazia. Uma das empresas que faz isso é a Líder Aviação, que disponibiliza por meio de seu aplicativo (Android e iOS) a opção de buscar por voos de oportunidade próximos.

Phenom 300 - Getty Images - Getty Images
Phenom 300
Imagem: Getty Images

Um voo entre Rio de Janeiro e São Paulo no jato Phenom 300, da Embraer, pode custar R$ 5.087,50 nessa modalidade pela empresa. Como a aeronave tem capacidade para sete lugares, o custo sairia por R$ 726,78 por ageiro.

A empresa lembra que esses voos não são programáveis, e dependem dos interessados em voar se adaptarem aos horários disponibilizados.

Voe seguro

A Anac disponibiliza em seu site ou por meio de um aplicativo para celular (para Android e iOS) uma consulta para quem for voar. Neles, o ageiro pode consultar a matrícula da aeronave ou a o nome da empresa para ter certeza que aquele avião, helicóptero ou prestador de serviço está autorizado a realizar o táxi-aéreo.