J'essaie d'ajouter plusieurs marqueurs, chacun avec sa propre fenêtre d'information qui apparaît lorsque vous cliquez dessus. J'ai du mal à faire apparaître les infowindows, quand j'essaye, il ne montre qu'un seul marqueur sans infowindow.
Merci, faites-moi savoir si vous avez besoin de plus d'informations
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<style type="text/css">
html {
height: 100%
}
body {
height: 100%;
margin: 0;
padding: 0
}
#map_canvas {
height: 100%
}
</style>
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyB1tbIAqN0XqcgTR1-FxYoVTVq6Is6lD98&sensor=false">
</script>
<script type="text/javascript">
var locations = [
['loan 1', 33.890542, 151.274856, 'address 1'],
['loan 2', 33.923036, 151.259052, 'address 2'],
['loan 3', 34.028249, 151.157507, 'address 3'],
['loan 4', 33.80010128657071, 151.28747820854187, 'address 4'],
['loan 5', 33.950198, 151.259302, 'address 5']
];
function initialize() {
var myOptions = {
center: new google.maps.LatLng(33.890542, 151.274856),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("default"),
myOptions);
setMarkers(map, locations)
}
function setMarkers(map, locations) {
var marker, i
for (i = 0; i < locations.length; i++) {
var loan = locations[i][0]
var lat = locations[i][1]
var long = locations[i][2]
var add = locations[i][3]
latlngset = new google.maps.LatLng(lat, long);
var marker = new google.maps.Marker({
map: map, title: loan, position: latlngset
});
map.setCenter(marker.getPosition())
var content = "Loan Number: " + loan + '</h3>' + "Address: " + add
var infowindow = new google.maps.InfoWindow()
google.maps.AddListener(marker, 'click', function (map, marker) {
infowindow.setContent(content)
infowindow.open(map, marker)
});
}
}
</script>
</head>
<body onload="initialize()">
<div id="default" style="width:100%; height:100%"></div>
</body>
</html>
content
intérieur de votre écouteur d'événements n'est pas définie dans cette fonction.Réponses:
Vous pouvez utiliser une fermeture. Modifiez simplement votre code comme ceci:
Voici la DEMO
la source
infowindow.close()
ne marche pas.Voici l'extrait de code qui fonctionnera à coup sûr. Vous pouvez visiter ci-dessous lien - pour travailler jsFiddle et expliquer en détail. Comment localiser plusieurs adresses sur Google Maps avec un zoom parfait
la source
Lien source
Lien de démonstration
Le code suivant affichera plusieurs marqueurs avec InfoWindow . Vous pouvez le code décommenter pour afficher Infos sur Hover et
la source
Si vous souhaitez également lier la fermeture de l'infowindow à un événement, essayez quelque chose comme ceci
la source
Puis passez
var infowindow = new google.maps.InfoWindow()
à lainitialize()
fonction:la source
google.maps.events.AddListener
devrait êtregoogle.maps.event.addListener
TypeError: map.infowindow is undefined
si j'inclus à l'var infowindow = new google.maps.InfoWindow();
intérieur de ma fonction initialize ()