Google geocoder.geocode asynchrone variabele toewijzing

stemmen
0

Ik heb de volgende geocode asynchrone methode blaten, het werkt zoals verwacht te nemen aan een adres uit een aangepaste object Array ik heb, mijn probleem is het in kaart brengen van het resultaat terug te verzetten [i] dat deze methode in brand gestoken, zie de resultaten alleen maar geven me terug een opgemaakt adres dat verschilt van het ene i inputed, Google voegt een aantal netnummers, verandert St tot op straatniveau etc. dus toen ik deze resultaten terug te krijgen heb ik geen manier om de nieuwe Lat passen en Lng coördineert ik heb gekregen om elk object te wijten aan de asynchrone aard van deze methode en de resultaten niet terug in orde is, het even welk idee wat ik hier zou kunnen doen?

Bedankt.

Edit: mijn gedachten zou het creëren van een manier om de resultaten weer op orde te krijgen, wijzigt u dit naar Synchroon, niet ideaal ik weet en ik kan geen voorbeelden te vinden.

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

                }
            });  
         }  

    }  
}
De vraag is gesteld op 06/03/2013 om 12:27
bron van user
In andere talen...                            


1 antwoorden

stemmen
0

Gooi een ID in de mix. Evenals het retourneren van de data, de terugkeer van de id zo goed en tieing de informatie is in kannen en kruiken.

... Bewerk

Ok, dus je bent het maken van de verzoeken van een object array. Betekent dat array id sleutels? Zo ja, dan evenals terugkeren lat en lang ook het id terug.

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

Of wat id sleutels die u gebruikt.

Het zou beter zijn om een ​​array retourneert (of object bijvoorbeeld)

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

Zolang jij de administratie van de i banden met dan moet u uw vergelijkingspunt.

Ik moet toegeven, ik moet missen de asynchronoucity (woord?) Van uw huidige methode.

antwoordde op 06/03/2013 om 12:38
bron van user

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