GoogleMap に 3 つのマーカーを表示するコードを以下に示します。位置データは JSON オブジェクトにあります。
マーカーは正しく表示されていますが、リスナー (addListener) は最後のマーカーでのみ機能し、最初の 2 つのマーカーでは機能していません。コードの何が問題になっていますか?
私は多くの例を見てきましたが、それを見ることができません。:(助けてくれてありがとう!
(function() {
window.onload = function() {
// Creating a map
var options = {
zoom: 3,
center: new google.maps.LatLng(37.09, -95.71),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map'), options);
// Creating a JSON object with weather data
var weatherData = {'weather': [
{
'lat': 40.756054,
'lng': -73.986951
},
{
'lat': 47.620973,
'lng': -122.347276
},
{
'lat': 37.775206,
'lng': -122.419209
}
]};
var infoWindow = new google.maps.InfoWindow({
content: 'Hello world'
});
// Looping through the weather array in weatherData
for (var i = 0; i < weatherData.weather.length; i++) {
// creating a variable that will hold the current weather object
var weather = weatherData.weather[i];
// Creating marker
var marker = new google.maps.Marker({
position: new google.maps.LatLng(weather.lat, weather.lng),
map: map
});
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(map, marker);
});
}
}
})();