var YELLOW_COLOR = '#FFFF00';
var RED_COLOR = '#FF0000';
// Inicializa o mapa e o componente da janela de informação
function criarMapa(idDiv, latitude, longitude, zoom, mapTypeId) {
return new google.maps.Map(document.getElementById(idDiv), {
zoom: (zoom !== undefined && zoom !== null) ? zoom : 15,
center: {
lat: latitude,
lng: longitude
},
mapTypeId: (mapTypeId !== undefined && mapTypeId !== null) ? mapTypeId : 'satellite',
tilt: 0
});
}
function mostrarMensagemNoMapa(map, infoWindow, conteudo, latLng) {
infoWindow = new google.maps.InfoWindow;
infoWindow.setContent(conteudo);
infoWindow.setPosition(latLng);
infoWindow.open(map);
}
// Renderiza os parreirais no MAPA
function adicionarParreiraisNoMapa(map, parreirais) {
// Janela para mostrar a descrição do parreiral clicado
var infoWindow;
// Função para mostrar a descrição do parreiral
function mostrarInformacoesParreiral(event, dadosParreiral, map, infoWindow) {
var conteudo =
'Parreiral: ' + dadosParreiral.parreiral.nrParreiral + '
' +
'Setor: ' + dadosParreiral.parreiral.nrSetorParreiral + '
';
mostrarMensagemNoMapa(map, infoWindow, conteudo, event.latLng);
}
// Retorna a cor a ser usada no poligono
function getCor(dadosParreiral) {
var color = dadosParreiral.corPoligono;
if (!color) {
color = dadosParreiral.selecionado ? YELLOW_COLOR : RED_COLOR;
}
return color;
}
// Retorna a cor a ser usada no poligono
function getOpacidadeCor(dadosParreiral) {
var opacityColor = dadosParreiral.opacidadeCorPoligono;
if (!opacityColor) {
opacityColor = 0.35;
}
return opacityColor;
}
// Itera sobre os parreirais recebidos por parâmetro e renderiza no mapa
parreirais.forEach(function (dadosParreiral) {
if (!dadosParreiral.ocultar && !!dadosParreiral.areaParreiral) {
// Converte as coordenadas para o formato esperado pelo "Google Maps"
var listaCoordenadas = dadosParreiral.areaParreiral.map(function (coordenada) {
return {
lat: coordenada.latitude,
lng: coordenada.longitude
};
});
// Verifica se o último ponto é o mesmo do primeito, caso não seja é criado o último ponto para que seja criado um polígono fechado
var ultimaCoordenada = listaCoordenadas.pop();
if (ultimaCoordenada.lat !== listaCoordenadas[0].lat || ultimaCoordenada.lng !== listaCoordenadas[0].lng) {
listaCoordenadas.push(ultimaCoordenada);
}
var parreiralPoligono = new google.maps.Polygon({
paths: listaCoordenadas,
strokeColor: getCor(dadosParreiral),
strokeOpacity: 0.8,
strokeWeight: 1,
fillColor: getCor(dadosParreiral),
fillOpacity: getOpacidadeCor(dadosParreiral),
editable: false
});
parreiralPoligono.setMap(map);
parreiralPoligono.addListener('click', function (event) {
mostrarInformacoesParreiral.call(this, event, dadosParreiral, map, infoWindow);
});
}
});
}