Использовали ли вы сетевой сниффер, чтобы подтвердить, что он запускается только один раз? Потому что, похоже, вы заменяете каждое значение в списке одним значением в команде $.map
. Возможно, если вы поместите адресные точки в другой массив, это поможет:
$(function () {
var addr = 0;
var shops = [];
var addressPoint;
var latlng = new google.maps.LatLng(38, -97);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var points = [];
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
window.onload = function () {
var options = [];
$('.address').each(function () {
if (!$(this).is(":empty")) {
options.push($(this).text());
txt = $(this).text();
} else {}
});
alert(options);
$.each(options, function () {
var addr = ("'" + this + "'");
searchAddr(addr);
});
function searchAddr(addr) {
$('#map_canvas').gmap({
'callback': function () {
var self = this;
alert(addr);
self.search({
'address': addr
}, function (results, status) {
if (status === 'OK') {
addressPoint = results[0].geometry.location;
alert(addressPoint);
points.push(addressPoint);
});
self.get('map').panTo(addressPoint);
alert(points);
return false;
}
});
}
});
}
};
}(jQuery));