//https://www.youtube.com/watch?v=keO6egndYrE - Para ajudar
var map;
 
 //função que renderiza o mapa com base no arquivo kml
//function initialize() {
    
    function initialize(caminho_mapa) {	

 map = new google.maps.Map(document.getElementById("mapa"), {
     styles: [
            {elementType: 'geometry', stylers: [{color: '#242f3e'}]},
            {elementType: 'labels.text.stroke', stylers: [{color: '#242f3e'}]},
            {elementType: 'labels.text.fill', stylers: [{color: '#746855'}]},
            {
              featureType: 'administrative.locality',
              elementType: 'labels.text.fill',
              stylers: [{color: '#d59563'}]
            },
            {
              featureType: 'poi',
              elementType: 'labels.text.fill',
              stylers: [{color: '#d59563'}]
            },
            {
              featureType: 'poi.park',
              elementType: 'geometry',
              stylers: [{color: '#263c3f'}]
            },
            {
              featureType: 'poi.park',
              elementType: 'labels.text.fill',
              stylers: [{color: '#6b9a76'}]
            },
            {
              featureType: 'road',
              elementType: 'geometry',
              stylers: [{color: '#38414e'}]
            },
            {
              featureType: 'road',
              elementType: 'geometry.stroke',
              stylers: [{color: '#212a37'}]
            },
            {
              featureType: 'road',
              elementType: 'labels.text.fill',
              stylers: [{color: '#9ca5b3'}]
            },
            {
              featureType: 'road.highway',
              elementType: 'geometry',
              stylers: [{color: '#746855'}]
            },
            {
              featureType: 'road.highway',
              elementType: 'geometry.stroke',
              stylers: [{color: '#1f2835'}]
            },
            {
              featureType: 'road.highway',
              elementType: 'labels.text.fill',
              stylers: [{color: '#f3d19c'}]
            },
            {
              featureType: 'transit',
              elementType: 'geometry',
              stylers: [{color: '#2f3948'}]
            },
            {
              featureType: 'transit.station',
              elementType: 'labels.text.fill',
              stylers: [{color: '#d59563'}]
            },
            {
              featureType: 'water',
              elementType: 'geometry',
              stylers: [{color: '#17263c'}]
            },
            {
              featureType: 'water',
              elementType: 'labels.text.fill',
              stylers: [{color: '#515c6d'}]
            },
            {
              featureType: 'water',
              elementType: 'labels.text.stroke',
              stylers: [{color: '#17263c'}]
            }
          ]
 });
 
// var mapa_ativo = 'http://sistemas.codecrm.com.br';
 
// mapa_ativo = mapa_ativo.concat(caminho_mapa);

//alert('caminho_mapa');
 
 
   var kmlLayer = new google.maps.KmlLayer({
	   url: caminho_mapa,
	   map: map,
	   zoom:8,
	   
    });
    
}
 

var markers = [];
//função que recebe o tipo do mapa e le o json e coloca pontos no mapa com base na latitude e longitude ou endereço
function carregarMarkers(tipo) {

	var str1 = 'markers.php?tipo='; //imprime json
	json = str1.concat(tipo);		//concatena o tipo do mapa
     $.getJSON(json, function(pontos) {
         $.each(pontos, function(index, ponto) {
			if (ponto.latitude==null || ponto.longitude==null){
				codeAddress(ponto.ds_endereco, ponto.nome, ponto.icone, ponto.label, tipo);//se não tem latitude e longitude, chama esta função 
				
		
				
			 }else{
			 var marker = new google.maps.Marker({			 
					position: new google.maps.LatLng(ponto.latitude, ponto.longitude), 
					title: ponto.nome, 
					icon: ponto.icone,
					label: ponto.label,
					map: map,
				    zoom:8
        
            });

				 
			
			var infowindow = new google.maps.InfoWindow(), marker;
				google.maps.event.addListener(marker, 'click', (function(marker, i) {
					return function() {
						infowindow.setContent(ponto.nome);
						infowindow.open(map, marker);

					}
				})(marker))
				
			
			 } //fechamento else
				 
        });
		
		
		markers.push(marker)
    });
		var markerCluster = new MarkerClusterer(map, markers);

}



//função que coloca pontos no mapa com base no endereço
var geocoder = new google.maps.Geocoder();

 function codeAddress(Endereco, titulo, icone, label, tipo) {
    var address = Endereco;
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == 'OK') {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map,
			position: results[0].geometry.location,
			icon: icone,
			label: label,
			title: titulo,
		    zoom:8
			
        });
		
		var infowindow = new google.maps.InfoWindow(), marker;
		google.maps.event.addListener(marker, 'click', (function(marker, i) {
			return function() {
				infowindow.setContent(titulo);
				infowindow.open(map, marker);
			}
		})(marker))
		
		
      } else {
        alert('Geocode was not successful for the following reason: ' + status);
      }
    });
}


//função para buscar a latitude e a longitude com base no endereço e salvar no banco

function getLatLng(address,tipo){
var geocoder = new google.maps.Geocoder();

geocoder.geocode( { 'address': address}, function(results, status) {

	  if (status == google.maps.GeocoderStatus.OK) {
		var latitude = results[0].geometry.location.lat();
		var longitude = results[0].geometry.location.lng();
		var str1 = 'lat_lng.php?latitude=';
		str1 = str1.concat(latitude);//concatena latitude
		var str2 = '&longitude=';
		str2 = str2.concat(longitude);//concatena longitude
		var str3 = '&tipo='; 
		str3 = str3.concat(tipo)//concatena o tipo
		var pagina = str1.concat(str2);
		pagina = pagina.concat(str3);
		$(location).attr('href',pagina)//chama a página enviando três parâmetros para salvar no banco
		} 
	}); 	
	
};









