Prefeitura de Sorocaba inicia implantação de sistema de “Muralha Eletrônica”

Fotos: Eduardo Santinon

 

A Prefeitura de Sorocaba, por meio da Secretaria de Mobilidade (Semob), iniciou os trabalhos de implantação do sistema de “Muralha Eletrônica”, voltado ao videomonitoramento de veículos quem entram e saem da cidade, pelos principais corredores viários. Ao todo está prevista a instalação de câmeras em 34 pontos do município, gradativamente, nos próximos meses.

Em um primeiro momento, seis câmeras foram instaladas na principal entrada da cidade, nas alças de acesso entre a Avenida Dom Aguirre e a Rodovia José Ermírio de Moraes (SP-075), a Castelinho.

Os dispositivos estão equipados com software de Leitor Automático de Placas (LAP), que permite o registro de cada veículo que passa pela via, a identificação da placa e checagem automática em banco de dados, alertando se o veículo possui alguma irregularidade administrativa ou criminal.

A operacionalização da “Muralha Eletrônica” é de responsabilidade de empresa contratada pela Semob e que já executa os serviços de radares na cidade, inclusive com leitura automática de placas em pontos dentro do município. As imagens de alta definição e informações sobre cada veículo são acessadas pela equipe do Centro de Controle Operacional (CCOI) da Semob.

Segundo essa Secretaria, a “Muralha Eletrônica” vai compor e ampliar a rede de videomonitoramento na cidade, sendo possível acompanhar todo o trajeto de um carro suspeito, desde o momento em que ele entra na cidade. A partir disso, é possível fazer a abordagem do veículo pelos agentes da Semob, Guarda Civil Municipal (GCM) ou Polícia Militar (PM).

Esse projeto vem sendo adequado de acordo com as diretrizes do conceito de Smart Cities. Aliás, a PM também terá acesso, em tempo real, a todas as imagens geradas pelo novo sistema, em sua central de controle que opera no 7º Batalhão.

Em um segundo momento do projeto, a Semob prevê também a instalação de “Muralha Eletrônica” em pontos estratégicos nos bairros, como Parque São Bento, Santa Rosália e Wanel Ville, por exemplo, para otimizar ainda mais o sistema e ampliar a segurança.

$$ = $.noConflict();

var initPhotoSwipeFromDOM = function(gallerySelector) {

// parse slide data (url, title, size …) from DOM elements
// (children of gallerySelector)
var parseThumbnailElements = function(el) {
var thumbElements = el.childNodes,
numNodes = thumbElements.length,
items = [],
figureEl,
childElements,
linkEl,
size,
item;

for(var i = 0; i < numNodes; i++) {
figureEl = thumbElements[i]; //

element

// include only element nodes
if(figureEl.nodeType !== 1) {
continue;
}

linkEl = figureEl.children[0]; // element
linkEl = figureEl; //
element
// console.log(linkEl);
size = linkEl.getAttribute(‘data-size’).split(‘x’);

// create slide object
item = {
src: linkEl.getAttribute(‘href’),
w: parseInt(size[0], 10),
h: parseInt(size[1], 10)
};

if(figureEl.children.length > 1) {
//

content
item.title = figureEl.children[1].innerHTML;
}

if(linkEl.children.length > 0) {
// thumbnail element, retrieving thumbnail url
item.msrc = linkEl.children[0].getAttribute(‘src’);
}

item.el = figureEl; // save link to element for getThumbBoundsFn
items.push(item);
}

return items;
};

// find nearest parent element
var closest = function closest(el, fn) {
return el && ( fn(el) ? el : closest(el.parentNode, fn) );
};

// triggers when user clicks on thumbnail
var onThumbnailsClick = function(e) {
e = e || window.event;
e.preventDefault ? e.preventDefault() : e.returnValue = false;

var eTarget = e.target || e.srcElement;

var clickedListItem = closest(eTarget, function(el) {
return el.tagName === ‘FIGURE’;
});
clickedListItem = eTarget.parentNode;
if(!clickedListItem) {
return;
}

// find index of clicked item
var clickedGallery = clickedListItem.parentNode,
childNodes = clickedListItem.parentNode.childNodes,
numChildNodes = childNodes.length,
nodeIndex = 0,
index;

for (var i = 0; i = 0) {
openPhotoSwipe( index, clickedGallery );
}

return false;
};

// parse picture index and gallery index from URL (#&pid=1&gid=2)
var photoswipeParseHash = function() {
var hash = window.location.hash.substring(1),
params = {};

if(hash.length < 5) {
return params;
}

var vars = hash.split('&');
for (var i = 0; i < vars.length; i++) {
if(!vars[i]) {
continue;
}
var pair = vars[i].split('=');
if(pair.length getThumbBoundsFn section of docs for more info
var thumbnail = items[index].el.getElementsByTagName(‘img’)[0], // find thumbnail
pageYScroll = window.pageYOffset || document.documentElement.scrollTop,
rect = thumbnail.getBoundingClientRect();

return {x:rect.left, y:rect.top + pageYScroll, w:rect.width};
},

shareButtons: [
{id:’download’, label:’Download image’, url:”, download:true}
],

// history & focus options are disabled on CodePen
// remove these lines in real life:
historyEnabled: false,
focus: false

};

if(disableAnimation) {
options.showAnimationDuration = 0;
}

// Pass data to PhotoSwipe and initialize it
gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
gallery.init();
};

// loop through all gallery elements and bind events
var galleryElements = document.querySelectorAll( gallerySelector );

for(var i = 0, l = galleryElements.length; i 0 && hashData.gid > 0) {
openPhotoSwipe( hashData.pid – 1 , galleryElements[ hashData.gid – 1 ], true );
}
};

// execute above function
initPhotoSwipeFromDOM(‘.pms-galeria’);

// All images need to be loaded for this plugin to work so
// we end up waiting for the whole window to load in this example
$$(window).load(function () {
$$(document).ready(function(){
collage();
$$(‘.pms-galeria’).collageCaption();
});
});

// Here we apply the actual CollagePlus plugin
function collage() {
$$(‘.pms-galeria img’).css(‘display’, ‘block’);
$$(‘.pms-galeria’).removeWhitespace().collagePlus({
‘fadeSpeed’ : 2000,
‘targetHeight’ : 150,
‘effect’ : ‘default’,
‘direction’ : ‘vertical’,
‘allowPartialLastRow’ : true
});
};

// This is just for the case that the browser window is resized
var resizeTimer = null;
$$(window).bind(‘resize’, function() {
// hide all the images until we resize them
$$(‘.pms-galeria .Image_Wrapper’).css(“opacity”, 0);
// set a timer to re-apply the plugin
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(collage, 200);
});