从JSON添加多个标记地址$ .each

时间:2014-03-06 18:25:00

标签: javascript jquery google-maps

我正在尝试使用地址添加多个标记,我正在努力修复它,我的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);
            }
        });
    });
}

1 个答案:

答案 0 :(得分:1)

尝试在geocoder.geocode调用后插入return true。如果它返回false,则可能取消了每个循环。

来自jquery.com:

  

我们可以通过进行回调来打破特定迭代的$.each()循环       函数返回false。返回非false与中的continue语句相同       一个for循环;它将立即跳到下一次迭代。