Google geocoder.geocode, asynchrone variable Zuordnung

stimmen
0

Ich habe folgende geocode asynchrone Methode unten, funktioniert es wie aus einem benutzerdefinierten Object Array in einer Adresse erwartete Einnahme ich habe, mein Problem ist, Zuordnung des Ergebnisses zurück zum Objekt [i], die diese Methode gebrannt, sieht die Ergebnisse mir nur zurück geben i inputed unterscheidet eine formatierte Adresse, die von dem „fügt Google einige postleitzahlen, ändert St Straße usw.“ so, wenn ich diese Ergebnisse zurückbekommen habe ich keine Möglichkeit, den neuen Lat anzupassen und Lng Koordinaten Ich habe zu jedem Objekt bekam aufgrund der asynchronen Natur dieses Verfahrens und die Ergebnisse nicht zurück, um, Jede Idee ist es, was ich konnte hier tun?

Vielen Dank.

Edit: meine Gedanken einen Weg zu schaffen, um die Ergebnisse wieder in Ordnung zu bringen, ändern Sie dies zu Synchronous würden, nicht ideal ich weiß, und ich kann keine Beispiele finden.

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

                }
            });  
         }  

    }  
}
Veröffentlicht am 06/03/2013 um 12:27
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Werfen Sie eine ID in den Mix. Sowie die Rückgabe von Daten, geben Sie die ID als auch und die Informationen tieing up ist abgehakt.

... bearbeiten

Ok, so machen Sie die Anfragen von einem Objekt-Array. Soll das Array-ID Schlüssel haben? Wenn ja, dann auch als Rückkehr lat und lange auch die ID zurück.

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

Oder was auch immer id Tasten Sie verwenden.

Es wäre besser, einen Array zurückzubringen (oder Objekt wie)

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

Solange Sie die Aufzeichnungen mit den i Bindungen kennen sich mit dann haben Sie Ihren Vergleichspunkt.

Ich muss zugeben, ich muss die asynchronoucity (Wort?) Fehlt der aktuellen Methode.

Beantwortet am 06/03/2013 um 12:38
quelle vom benutzer

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