我正在尝试使用地址添加多个标记,我正在努力修复它,我的JSON
有4个地址,只迭代第一个然后停止,但它不会添加任何标记。有人可以指出我失踪的地方吗?
function successAvoid(data, textStatus) {
var geocoder;
var map;
var myOptions = {
center: new google.maps.LatLng(0, 0),
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-page"), myOptions);
$.each(data, function (i, x) {
geocoder.geocode({ 'address': x.address}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: results[i].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
});
}
答案 0 :(得分:1)
尝试在geocoder.geocode调用后插入return true
。如果它返回false,则可能取消了每个循环。
来自jquery.com:
我们可以通过进行回调来打破特定迭代的
$.each()
循环 函数返回false。返回非false与中的continue语句相同 一个for循环;它将立即跳到下一次迭代。