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

Rota turística do planalto ao litoral de SP reabre, mas com restrições

Pouso Paranapiacaba, parte da rota Caminhos do Mar - Adriana Mattoso
Pouso Paranapiacaba, parte da rota Caminhos do Mar Imagem: Adriana Mattoso

José Maria Tomazela

28/07/2020 10h00

A visitação à rota turística Caminhos do Mar, que liga o planalto ao litoral paulista pela Serra do Mar, a partir de São Bernardo do Campo, foi retomada ontem, com muitas restrições, por causa da pandemia do coronavírus. Conforme a Fundação Florestal, que istra a unidade de conservação da Secretaria Estadual do Meio Ambiente, não será permitida a circulação de veículos e, além de usar máscaras, os visitantes terão de manter o isolamento social, praticando atividades individuais.

O o permitirá caminhada pelo planalto, descida de 9 quilômetros até o litoral, percurso pelos os de Dom Pedro I rumo à independência e visitas à Casa de Lorena, Núcleo Pedra Grande, no Parque Estadual da Cantareira, cujos portões estarão abertos das 10 às 16 horas. As visitas devem ser agendadas com antecedência mínima de 24 horas no site da fundação. A unidade seguirá as mesmas medidas que já foram adotadas por outros dois parques reabertos no dia 13, um deles o Estadual do Jaraguá.

Serão respeitados a ordem de agendamento e também o limite de 30% da capacidade do parque. Espaços fechados, como centros de visitantes, museus e orquidários, permanecerão íveis, mas com restrição. Foram instalados totens com álcool em gel ao longo do percurso. Durante as primeiras semanas da reabertura, agentes da fundação vão monitorar o comportamento da população nos espaços da unidade para deliberar se já há condições para uma abertura integral.

Histórico

A rota "Caminhos do Mar" é reconhecida pelo acervo histórico, cultural e ambiental. Construída em 1792 com pedras irregulares retiradas dos leitos dos rios, foi a primeira ligação pavimentada entre a capital e o litoral paulista. Os remanescentes da Calçada de Lorena, por onde dom Pedro ou em 1822 para proclamar a independência, se misturam naquela área com a rica biodiversidade da Mata Atlântica, com espécies da fauna e flora ameaçadas de extinção, além de cachoeiras.

As informações são do jornal O Estado de S. Paulo.