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

Chuva em SP derruba muro e inunda obra do metrô Pompéia: 'Grande piscina'

Estação Sesc-Pompeia fará parte da linha 6 - Laranja do metrô e tem previsão de abertura em outubro de 2025 - Reprodução/Twitter
Estação Sesc-Pompeia fará parte da linha 6 - Laranja do metrô e tem previsão de abertura em outubro de 2025 Imagem: Reprodução/Twitter

Do UOL, em São Paulo

28/09/2022 08h45Atualizada em 28/09/2022 08h45

Um muro cedeu nas obras da futura estação Sesc-Pompeia do metrô de São Paulo, em meio às fortes chuvas que atingiram a capital no início da noite de ontem. O canteiro de obras foi invadido por água e ficou completamente submerso, como mostrado em registros de moradores dos arredores, que aproveitaram a formação da "piscina" para questionar os alagamentos na região, um problema antigo.

A Linha Uni, empresa responsável pela construção e operação da linha 6- Laranja, que deve ser inaugurada em 2025, confirmou o incidente em nota ao UOL.

Segundo a companhia, não houve registro de feridos e funcionários devem começar os trabalhos de retirada da água e reconstrução do muro de divisa, assim que as chuvas cessarem na região.

"Importante ressaltar que a região tem histórico de constantes alagamentos. Para evitar que as atividades sofram com as consequências das chuvas, assim como os moradores desta região, foram instalados tapumes com aberturas inferiores, em toda a extensão dos canteiros, que conectam as áreas de obra com as áreas externas, de forma a amenizar as condições nos períodos de chuva e facilitar o deslocamento da água", diz o comunicado.

"Além disso, está em andamento um estudo, buscando soluções provisórias, para diminuir os impactos dos alagamentos e aliviar o fluxo de água", acrescenta a empresa.

Não foi só a região da Pompeia que sofreu com as chuvas intensas que atingiram a capital paulista, com todas as regiões da cidade entrando em estado de atenção ou alerta para alagamentos, segundo o CGE (Centro de Gerenciamento de Emergências) da prefeitura de São Paulo.

Na zona leste, zona sul e zona oeste — onde fica a futura estação de metrô da linha laranja — o estado de atenção ficou ligado entre 13h46 e 19h57 de ontem. Já na zona norte e no centro, o aviso ficou ativo entre 17h33 e 19h57.

Já as subprefeituras de Itaquera e da Penha entraram em estado de alerta — em que rios e córregos já estão ando de seu limite — entre 14h40 e 15h10, quando foram registrados transbordamentos no Rio Verde e o Córrego Franquinho.