使用geocoder.geocode回调

时间:2013-08-04 19:52:08

标签: javascript

我对geocoder.geocode内的回调存在一些问题。

var tri = new Array();
for (var j = 1; j < taille; j++) {
    where = getBoutique[j].adresse + ", " + getBoutique[j].ville;
    boutiqueProche(lat, lon, where, function (distanceO) {
        //window.localStorage.setItem("distance", distance);
        console.log(distanceO);
        tri.push(distanceO);
        //return distance;
        //console.log("Nous somme dans "+localStorage.getItem("distance"));
    });
    console.log("Inside " + tri);
}

function boutiqueProche(cLat, cLong, where, callback) {
    var geocoder = new google.maps.Geocoder();
    var currentPosition = new google.maps.LatLng(cLat, cLong); // On récupère nos info
    var recup = getBoutique.length;
    var distance;
    geocoder.geocode({
        'address': where
    }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var laBoutique = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng());
            distance = google.maps.geometry.spherical.computeDistanceBetween(currentPosition, laBoutique);
            recup = distance / 1000;
            callback(recup);
        } else {
            if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
                setTimeout(function () {
                    boutiqueProche(cLat, cLong, where, callback); // rappel fonction avec meme param
                }, 200);
            } else { /*Faire quelque chose */ }
        }
    });
}

我想用tri变量中的数据填充数组recup。但当我填写tri时,没有任何反应。它是空的。

有什么问题?

0 个答案:

没有答案