2017-11-28 18 views
-1

別の情報ウィンドウを開くと、前のアイコンが開いたままになります。 別の情報ウィンドウを開くと、前の情報ウィンドウを自動的に閉じる方法は?私は何か新しいものです、あなたは私にclose infowindow google maps

var map; 
    var markers = []; 

    function initMap() { 
    var cucuta = {lat: 7.9145395, lng: -72.505966}; 

    map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 14, 
     center: cucuta, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 

    @foreach($users as $user) 
     var ubicaciones = {lat: {{ $user->latitud }}, lng: {{ $user->longitud }} }; 
     var titulo = '{{ $user->name }}'; 
     addMarker(ubicaciones, titulo); 
    @endforeach 
    } 

    function addMarker(location, titulo) { 

     var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(location), 
     map: map, 
     title: titulo 
    }); 
    markers.push(marker); 

    var infowindow = new google.maps.InfoWindow(); 

    google.maps.event.addListener(marker, 'click', (function(marker) { 

     return function() { 
     infowindow.setContent(titulo); 
     infowindow.open(map, marker); 
     } 
    })(marker)); 
    } 

    function setMapOnAll(map) { 
    for (var i = 0; i < markers.length; i++) { 
     markers[i].setMap(map); 
    } 
    } 

    function showMarkers() { 
    setMapOnAll(map); 
    } 
+0

私はグローバル情報ウィンドウを認識しないときには、それだけで情報ウィンドウを作りますそれは関数addMarkerの中にあります –

+0

あなたは認識によってどういう意味ですか?インフォ画面の範囲をマーカーで宣言して変更した場合は、そのトリックを行う必要がありますか? – iguypouf

+0

もう一度お返事ありがとうございます。私は "var infowindow = new google.maps.InfoWindow();"グローバルに、私は "var infowindow = new google.maps.InfoWindow();"と宣言すると、infowindow –

答えて

0

を助けることができる私はちょうどこのin tryitを試してみた、と期待どおりに動作します:

var map; 
var infowindow; 

function initMap() { 
infowindow = new google.maps.InfoWindow(); 
var cucuta = {lat: 7.9145395, lng: -72.505966}; 

map = new google.maps.Map(document.getElementById('googleMap'), { 
    zoom: 14, 
    center: cucuta, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

addMarker({lat: 7.9145395, lng: -72.505966}, 'This is the info of <br>MAP1'); 
addMarker({lat: 7.9045395, lng: -72.505966}, 'This is the info of <br>MAP2'); 
} 

function addMarker(location, titulo) { 

var marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(location), 
    map: map, 
    title: titulo 
}); 
marker.setMap(map); 

google.maps.event.addListener(marker, 'click', function() { 

    infowindow.setContent(titulo); 
    infowindow.open(map, marker); 
}); 
} 
+0

あなたにそれを解決しました –

関連する問題