2017-10-11 3 views
-1

Comment montrer infowindow sur le chargement de la page dans google maps. Il devrait automatiquement afficher l'infowindow pop up. J'ai plusieurs marqueurs dans la carte google. J'ai besoin que tous les marqueurs d'information s'ouvrent dans le chargement de la page.comment afficher la fenêtre d'informations dans google map without click event

js lien violon https://jsfiddle.net/vq7zfbgj/

Code:

var locations = [ 
      [ 
      "Market 1", 
      22.809999, 
      86.179999, 
      5, 
      "Market1", 
      "Market1", 
      "Market1", 
      "found" 
     ], 
    [ 
      "Market 2", 
      22.801111, 
      86.171111, 
      5, 
      "Market2", 
      "Market2", 
      "Market2", 
      "found" 
     ] 
    ] 

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

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


    var marker, i; 

    for (i = 0; i < locations.length; i++) { 
     marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
      map: map 
     }); 

     google.maps.event.addListener(marker, 'click', (function (marker, i) { 
      return function() { 
       infowindow.setContent(locations[i][0], locations[i][6]); 
       infowindow.open(map, marker); 
      } 
     })(marker, i)); 
    } 

Répondre

0

J'ai modifié votre violon à this et le InfoWindow ouvrira ses portes le chargement de la page. J'ajoute un autre marqueur juste pour illustrer cela pourrait résoudre plus de marqueurs. J'espère que cela aide.

for (i = 0; i < locations.length; i++) { 
    var infowindow = new google.maps.InfoWindow; 

    marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
    map: map 
    }); 

    google.maps.event.addListener(marker, 'click', (function (marker, i) { 
    return function() { 
     infowindow.setContent(locations[i][0], locations[i][6]); 
     infowindow.open(map, marker); 
    } 
    })(marker, i)); 

    infowindow.setContent(locations[i][0], locations[i][6]); 
    infowindow.open(map, marker); 
} 
1

Vous pouvez ouvrir plusieurs marqueurs à la fois en lançant InfoWindow séparément pour chaque marqueur. Je vous suggère de retirer le infowindow original var et de faire ce qui suit au sein de la boucle pour chaque marqueur:

marker.infowindow = new google.maps.InfoWindow(); 
}); 
marker.infowindow.setContent(locations[i][0], locations[i][6]);    
marker.infowindow.open(map, marker); 

https://jsfiddle.net/vq7zfbgj/16/

+0

Vous avez rompu la fonctionnalité initiale maintenant. Alors que les marqueurs peuvent s'ouvrir au chargement, ils ne fonctionnent plus lorsqu'ils sont cliqués et leur texte a également disparu. Ce n'est pas une solution, mais introduit plus de problèmes. – Nope

+0

@Fran - Je n'ai pas repris la population du contenu InfoWindow dans mon exemple initial, mais j'ai montré comment les ouvrir au chargement de la page. Il est logique de conserver le comportement de clic, donc j'ai rétabli cela dans mon exemple mis à jour. – athms