Secretaria do Meio Ambiente de Sorocaba participa de curso de geoprocessamento na Unesp

Compartilhe:


Fotos: Sema

Nesta semana, de 29 a 31 de julho, servidores que atuam na Comissão de Julgamento de Recursos de Infrações Ambientais (CJRIA) e na Divisão de Fiscalização e Licenciamento Ambiental da Secretaria do Meio Ambiente, Proteção e Bem-Estar Animal (Sema) participaram do curso da plataforma QGIS (Quantum GIS), no campus da Universidade Estadual Paulista (Unesp) Sorocaba, no Alto da Boa Vista.

O treinamento oferecido gratuitamente pela Unesp Sorocaba foi coordenado pelo Professor Dr. Alexandre Marco da Silva, vice-coordenador do curso de Engenharia Ambiental, que também é membro do Conselho Municipal de Desenvolvimento do Meio Ambiente (Comdema) de Sorocaba, e ministrado pelos alunos de doutorado Jonilson Michel Fontes Galvão e Lucas Hubacek Tsuchiya.

O software permite análise de dados espaciais, visualização e edição, e possibilita aos usuários criarem mapas multicamadas, utilizando projeções cartográficas. Estes mapas têm várias finalidades, inclusive para análises ambientais.

Durante os três dias de curso, com carga horária total de nove horas, os profissionais da Sema tiveram aprenderam aspectos básicos de cartografia digital, aspectos conceituais de geoprocessamento e de operacionalização da plataforma QGIS, que vão auxiliá-los nos trabalhos de rotina. Os servidores também participaram de exercício prático, com coleta de dados a céu aberto para, em seguida, inserção dos dados na plataforma, para gerar os produtos finais (mapas).

“A participação do grupo foi efetiva e estamos gratos e à disposição para novas atividades e experiências, possibilitando a troca de informações com outras instituições públicas, assim como foi com a Sema”, destacou o Professor Dr. Alexandre Marco da Silva. Nesta quinta-feira (31), último dia de atividades, o secretário da Sema, Antonio Genezzi Lopes, compareceu para prestigiar o treinamento oferecido pela universidade.

$$ = $.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);
});



Fonte:
Prefeitura de Sorocaba

Outras Notícias

Domínio Global Consultoria Web