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); }); } }); }