Google geocoder.geocode, cartografiere variabilă asincron

voturi
0

Am următoarea Geocodificarea metoda de mai jos asincrone, funcționează conform așteptărilor luând o adresă dintr-o matrice personalizat obiect am, problema mea este cartarea rezultatul înapoi la opoziție [i], care a tras această metodă, a se vedea rezultatele da-mi doar înapoi o adresă formatat, care diferă de cea pe care am inputed, „Google adaugă unele coduri din zona, St schimbă la stradă etc.“ așa că atunci când am obține aceste rezultate înapoi am nici o modalitate de a se potrivi cu noua lat și Lng coordonatele am ajuns la fiecare obiect din cauza naturii asincrone a acestei metode, iar rezultatele nu se întorc în ordine, Orice idee ce aș putea face aici?

Mulțumiri.

Editare: gândurile mele s-ar crea o modalitate de a obține rezultatele înapoi în ordine, schimba acest lucru Sincron, nu este ideal eu știu și nu pot găsi nici un exemplu.

Funcția iterateAndAddress (objArray) {

    for(var i=0; i< objArray.length; i++) {

        var address = objArray[i].BillingStreet +' '+objArray[i].BillingCity+' '+objArray[i].BillingCountry;
        var geocoder = new google.maps.Geocoder();
        console.log('Address = '+address);

        if(geocoder) {
            geocoder.geocode( { 'address': address}, function(results, status) { 

                if (status == google.maps.GeocoderStatus.OK) {

                    //console.log(results);
                    var lat = results[0].geometry.location.lat();
                    var lon = results[0].geometry.location.lng();  
                    console.log('Address : '+results[0].formatted_address);


                }else if(status == 'OVER_QUERY_LIMIT') {

                }
                else{

                }
            });  
         }  

    }  
}
Întrebat 06/03/2013 la 12:27
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Arunca un id în amestec. Precum și returnarea datelor, id-ul reveni precum și tieing sus informația se face și pudrate.

... Editați | ×

Ok, deci fac cererile de la o matrice de obiect. Asta matrice au id chei? Dacă este așa, atunci precum și returnarea lat și lung a reveni, de asemenea, ID-ul.

var id = objArray[i].id
var lat = results[0].geometry.location.lat();
var lon = results[0].geometry.location.lng();

Sau orice chei id pe care îl utilizați.

Ar fi mai bine să se întoarcă o matrice (sau obiect, cum ar fi)

result[i].lat = results[0].geometry.location.lat();
result[i].lon = results[0].geometry.location.lng();

Atâta timp cât știi înregistrările legăturile i cu atunci aveți punctul de comparație.

Trebuie să recunosc, eu trebuie să fie lipsește asynchronoucity (cuvântul?) Din metoda dvs. curentă.

Publicat 06/03/2013 la 12:38
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more