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

Esse conteúdo é antigo

Redução de veículos circulando ainda não é a esperada, diz secretário de SP

Trânsito na Marginal Pinheiros no primeiro dia de rodízio ampliado em São Paulo - ALOISIO MAURICIO/FOTOARENA/FOTOARENA/ESTADÃO CONTEÚDO
Trânsito na Marginal Pinheiros no primeiro dia de rodízio ampliado em São Paulo
Imagem: ALOISIO MAURICIO/FOTOARENA/FOTOARENA/ESTADÃO CONTEÚDO

Do UOL, em São Paulo

11/05/2020 08h37Atualizada em 11/05/2020 14h18

O secretário de Mobilidade e Transportes da cidade de São Paulo, Edson Caram, disse hoje que a redução do volume de veículos circulando por causa da implementação do novo rodízio ainda não é a esperada pelas autoridades. A medida tem como objetivo aumentar a taxa de isolamento social em meio ao combate ao coronavírus.

"A princípio, dá pra notar que há uma diminuição no volume de carros andando na cidade de São Paulo. Ainda não é o esperado, a população ainda está se deslocando de uma forma além daquilo que nós queremos", disse em entrevista ao Bom Dia São Paulo, da TV Globo.

Pelas novas regras, os veículos estarão liberados para trafegar pela maior cidade do país dia sim, dia não, de acordo com o final de sua placa. Números ímpares só podem circular nos dias ímpares, e números pares, apenas nos dias pares.

A restrição de tráfego terá validade todos os dias, inclusive finais de semana e feriados. Além disso, ela irá durar 24 horas por dia.

Em razão do rodízio mais amplo, a prefeitura ampliou em 1.000 ônibus a quantidade de veículos no transporte coletivo. Segundo Caram, além dessa quantidade, mais 460 ônibus que estavam em bolsões entraram em circulação nesta manhã.

O secretário disse que a ideia da restrição não é que as pessoas migrem para o transporte público, mas permaneçam em casa, no momento em que o sistema de saúde está pressionado por causa do alto número de casos de covid-19.

"Essas pessoas que estão circulando deveriam estar em casa em cumprimento ao decreto do prefeito [que recomenda isolamento social a todos que não cumpram serviços essenciais]. Hoje só deveríamos ter na rua pessoas que realmente trabalham em serviço essencial. A quarentena ainda está mantida, leitos de hospitais estão chegando ao seu limite e a curva está crescendo (...) O recado que a prefeitura quis ar foi: fique em casa e salve vidas", acrescentou.

Aumento na demanda do transporte público

O secretário de Transportes Metropolitanos do estado de São Paulo, Alexandre Baldy, que também participou da entrevista, disse que a frota foi aumentada e que, no horário de pico, verificou-se um aumento na demanda no metrô e na TM.

"O governo do estado vai trabalhar em toda sua necessidade, tudo o que for necessário para contribuir para que nós consigamos transportar as pessoas com qualidade, e, nesse momento de pandemia, com segurança, evitando aglomeração, foi aumentado o número de trens", disse.

"Se for preciso aumentar ainda mais o sistema, nós assim o faremos", afirmou.