Google geocoder.geocode, asynchroniczny zmienna mapowania

głosy
0

Mam następujący Geokodując asynchroniczną metodę ryk, to działa zgodnie z oczekiwaniami, biorąc w adresie z tablicy niestandardowego obiektu mam, mój problem jest odwzorowanie wyników z powrotem do obiektu [i], że wystrzelił tę metodę, zobaczyć wyniki tylko oddajcie mi sformatowany adres, który różni się od jednej i inputed „Google dodaje niektóre numery kierunkowe, zmienia St na ulicy etc.” więc kiedy się te wyniki z powrotem nie mam możliwości, aby dopasować nowy Lat i LNG współrzędne Dostałem do każdego obiektu ze względu na asynchroniczną naturę tej metody i wyniki nie powróci w porządku Każdy pomysł co mogłem zrobić tutaj?

Dzięki.

Edit: moje myśli byłoby stworzenie sposób, aby uzyskać wyniki w kolejności, należy zmienić to synchronicznych nie idealne wiem i nie mogę znaleźć żadnych przykładów.

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

                }
            });  
         }  

    }  
}
Utwórz 06/03/2013 o 12:27
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

Wyrzucić identyfikator do mieszanki. Jak również zwracania danych, zwróci identyfikator, jak również i tieing się informacja jest zrobione i odkurzone.

... edytować

Ok, więc robisz wnioski z tablicy obiektów. Czy to tablica ma klucze id? Jeśli tak, to jak długo i powrocie łac również zwrócić id.

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

Lub cokolwiek klucze id używasz.

może to być lepiej zwrócić tablicę (lub obiektów, tak jak)

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

Tak długo, jak wiesz zapisy nad i więzi z czym masz swój punkt porównania.

Muszę przyznać, że musi być brakuje asynchronoucity (słowo?) swojego obecnego sposobu.

Odpowiedział 06/03/2013 o 12:38
źródło użytkownik

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