Estou tentando adicionar vários marcadores, cada um com sua própria janela de informações que aparece quando clicada. Estou tendo problemas em fazer as janelas de informação aparecerem, quando tento mostrar apenas um marcador sem uma janela de informação.
Obrigado, deixe-me saber se você precisar de mais informações
<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>
javascript
google-maps
google-maps-api-3
google-maps-markers
infowindow
stacktraceyo
fonte
fonte
content
dentro de seu ouvinte de evento não está definida nessa função.Respostas:
Você poderia usar um encerramento. Basta modificar seu código assim:
Aqui está o DEMO
fonte
infowindow.close()
não funciona.Aqui está o trecho de código que funcionará com certeza. Você pode visitar o link abaixo para trabalhar com o jsFiddle e a explicação em detalhes. Como localizar vários endereços no google maps com zoom perfeito
fonte
Link da fonte
Link de demonstração
O código a seguir mostrará vários marcadores com InfoWindow . Você pode descomentar o código para mostrar informações sobre o Hover também
fonte
Se você também deseja vincular o fechamento da janela de informações a algum evento, tente algo como isto
fonte
Em seguida, vá
var infowindow = new google.maps.InfoWindow()
para ainitialize()
função:fonte
google.maps.events.AddListener
deveria sergoogle.maps.event.addListener
TypeError: map.infowindow is undefined
se incluirvar infowindow = new google.maps.InfoWindow();
dentro da minha função initialize ()