geocoder.geocode Google, asynchronní variabilní mapování

hlasů
0

Mám následující geocode asynchronní metody níže, funguje podle očekávání brát v adrese ze Array vlastního objektu mám, můj problém je mapování výsledku zpět na objekt [i], který vypálil tuto metodu, viz výsledky mi jen dát zpět formátovaný adresa, která se liší od té, i zadány, „Google přidává některé předvolby, ST změny na ulici atd“ takže když jsem si tyto výsledky zpět Nemám žádný způsob, aby odpovídal novým Lat a LNG koordinuje jsem se dostal ke každému objektu díky asynchronní povaze této metody a výsledky nevrací v pořádku, Nějaký nápad, je to, co jsem mohl dělat?

Dík.

Edit: mé myšlenky bude vytvořit způsob, jak získat výsledky do pořádku, změnit na synchronní, není ideální vím, a nemohu najít nějaké příklady.

Funkce 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{

                }
            });  
         }  

    }  
}
Položena 06/03/2013 v 12:27
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Hodit id do mixu. Stejně jako vrácení dat, vrátí id jakož i tieing up informací se provádí a oprášil.

... Upravit

Ok, takže si dělají požadavky z pole objektu. Znamená to, že pole má id klíče? Pokud ano, pak stejně jako vracející lat a dlouhé také vrátit id.

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

Nebo cokoliv jiného klíče id, který používáte.

Že by bylo lepší vrátit matici (nebo předmět, například)

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

Tak dlouho, jak víte, že záznamy JÁ vazby s pak nemáte srovnání bod.

Musím přiznat, že jsem třeba chybí asynchronoucity (slovo?) Svého současného způsobu.

Odpovězeno 06/03/2013 v 12:38
zdroj uživatelem

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