Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

InfoWindow google maps API

Olá, gostaria que a InfoWindow fechasse quando abrisse outro ponto, ela ficam todas abertas.

https://i.stack.imgur.com/PDB4x.png

document.addEventListener('DOMContentLoaded', function(){ //executa o código somente após carregar o DOM da página

    navigator.geolocation.getCurrentPosition(function(position) { //geolocation, com o método getCurrentPosition, recebe function anonima com param position que retona posição do user
        iwBackground.children(':nth-child(2)').css({'display' : 'none'});
        iwBackground.children(':nth-child(4)').css({'display' : 'none'});
        iwCloseBtn.css({
            opacity: '1', // por padrão o botão fechar tem uma opacidade de 0.7
            right: '38px', top: '3px', // reposicionamento do botão
            border: '7px solid #48b5e9', // aumento da borda do botão e nova cor
            'border-radius': '13px', // efeito circular
            'box-shadow': '0 0 5px #3990B9' // efeito 3D para salientar o botão
        });
        iwCloseBtn.mouseout(function(){
            $(this).css({opacity: '1'});
        });


        let latitude = position.coords.latitude; //recebe a latitude retornado do parâmetro position do callback
        let longitude = position.coords.longitude; //receber a longitude retornado do parâmetro position do callback
        let coordinate = new google.maps.LatLng(latitude, longitude); //receber a instancia da classe google.maps.LatLng, que passamos a latitude e longitude para o construtor.

        let optionsMap = { // variável optionsMap, que recebe um objeto
            center: coordinate, // atributo center com a instancia da classe google.maps.LatLng
            zoom: 14, //zoom com valor 19
            mapTypeId: google.maps.MapTypeId.ROADMAP //mapTypeId, com google.maps.MapTypeId.ROADMAP que é o tipo do mapa
        };

        let map = new google.maps.Map(target, optionsMap); // variável map que recebe a instancia da classe google.maps.Map, que recebe onde será exibido o mapa, e as opções de configuração do mapa

        // let configMarker = { // variável configMarker que recebe um objeto para adicionar uma marcação de posição no mapa
        //     position: coordinate, //propriedade position, que receber as coordenadas, que é a instancia da classe google.maps.LatLng
        //     map: map, //propriedade map, que recebe a instancia da classe google.maps.Map
        //     title: 'Você está aqui!'
        // };
        //
        // let marker = new google.maps.Marker(configMarker); //variável marker que recebe a instancia da classe google.maps.Marker, que recebe o objeto configMarker com as configurações



let infowindow = new google.maps.InfoWindow({
                                    content: contentString
                         });


                                infowindow.close();
                                marker.addListener('click', function() {

                                    infowindow.open(map, marker);
                                });```
1 resposta

Fala ai Lucas, tudo bem? Acho que o jeito mais fácil seria utilizando a função close do InfoWindow.

O que você poderia fazer é sempre fechar um InfoWindow antes de criar e abrir outro.

Espero ter ajudado.