0

Google Maps API v3 を使用してプロジェクトに取り組んでおり、情報ウィンドウでマーカーをクリックすると表示されるようにしようとしています。私はこれを達成しましたが、今私が望むのは、私が理解できないように見えるさまざまなマーカーをクリックしたときに表示されるさまざまなコンテンツです。どんな助けでも大歓迎です。ありがとう!

    function initialize() {

var locations = [
      ['Phi Delta Theta', 39.511747,-84.735117],
      ['Pi Kappa Alpha', 39.511776, -84.735684],
      ['Sigma Nu', 39.513921, -84.735159],
      ['Sigma Alpha Epsilon', 39.514332, -84.734956],
      ['Beta Theta Pi', 39.5107519, -84.738549]
    ];

var myLatlng = new google.maps.LatLng(39.511747,-84.735117);
var mapOptions = {
  zoom: 15,
  center: myLatlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP
}

var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

var contentString = '<div id="content">'+

    '</div>';

var infowindow = new google.maps.InfoWindow({
    content: contentString
});

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]);
          infowindow.open(map, marker);
        }
      })(marker, i));
      }


google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
});



      }
4

1 に答える 1

0

これはあなたが望むことをする答えですが、一度に複数のinfoWindowを開くことができます。そのポイントは、windowinfo の複数のインスタンスを定義することです。それ以外の:

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

}

次のようにします。

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

このようにして、それぞれが異なるコンテンツを持つ複数のマーカーを定義します。

于 2013-04-13T14:11:27.693 に答える