我可以设置制作者(他们出现在地图上)但是infowindow总是一样的。我已经尝试为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 );
});
}
}
});
});
});
答案 0 :(得分: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 );
});
});
}
这样可行。
答案 1 :(得分:0)
不知道gmap
,但它看起来像变量范围问题,如果其他一切都没问题可以解决如下
//add marker and set overlay
(function(mOpt, eDetails){
map.gmap('addMarker', mOpt).click( function() {
map.gmap('openInfoWindow', { 'content': eDetails }, this );
});
})(markerOptions, eventDetails);