1

我可以设置制造商(它们出现在地图上),但信息窗口总是一样的。我已经尝试为 infowindow 内容和制造商制作一个数组,但这也没有奏效。

  $(function() {
    map = $('#map_canvas');
    map.gmap().bind('init', function () {
      // Process the Microdata for each Event into an object.

      $.ajax({
        type: "GET",
        dataType: "jsonp",
        cache: false,
        url: "API",
        success: function(data) {
            for (var i = 0; i < 301; i++) {

                  //details overlay
                   var eventDetails = '';
                    eventDetails += '<div class="iw">';
                    eventDetails += '<img src="'+ data.data[i].images.low_resolution.url+'"></img>';
                    eventDetails += '<h3>'+ data.data[i].tags + '</h3>';
                    eventDetails += '</div>';

                     //set location
                    var lat = data.data[i].location.latitude;
                    var lng = data.data[i].location.longitude;
                    var latlng = new google.maps.LatLng(lat, lng);

                    //marker
                    var markerOptions = {
                      'bounds':true,
                      'position': latlng,
                      'icon': icon,
                    };

                    //add marker and set overlay
                    map.gmap('addMarker', markerOptions).click( function() {
                      map.gmap('openInfoWindow', { 'content': eventDetails }, this ); 
                    });
            }           
        }
      });
    });
  });
4

2 回答 2

0

在我的经验中:

success: function(data) {

      $.each(data.data, function (i) {

        //details overlay
        var eventDetails = '';
        eventDetails += '<div class="iw">';
        eventDetails += '<img src="'+ data.data[i].images.low_resolution.url+'"></img>';
        eventDetails += '<h3>'+ data.data[i].tags + '</h3>';
        eventDetails += '</div>';

        //set location
        var lat = data.data[i].location.latitude;
        var lng = data.data[i].location.longitude;
        var latlng = new google.maps.LatLng(lat, lng);

        //marker
         var markerOptions = {
           'bounds':true,
           'position': latlng,
           'icon': icon,
         };

          //add marker and set overlay
          map.gmap('addMarker', markerOptions).click( function() {
              map.gmap('openInfoWindow', { 'content': eventDetails }, this ); 
          });
      });          
 }

这将起作用。

于 2012-08-10T02:23:22.717 回答
0

不知道,gmap但对我来说这看起来像是变量范围问题,如果其他一切都很好,可以按如下方式解决

//add marker and set overlay
(function(mOpt, eDetails){
    map.gmap('addMarker', mOpt).click( function() {
        map.gmap('openInfoWindow', { 'content': eDetails }, this ); 
    });
})(markerOptions, eventDetails);
于 2012-08-10T02:44:10.260 回答