1

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);
    }); 


}

  }
 })();
4

1 に答える 1