![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Witam, używam funkcji getLocations z GoogleMaps API.
Funkcja ta łączy się z Google Maps i zwraca mi współrzędne geograficzne adresu, robię sobie funkcję JS:
i teraz funkcja foo jest wywoływana, w niej jest wywoływana funkcja alert, i dziwnym trafem najpierw następuje w funkcji foo return a później dopiero alert nr 2 jest wywoływany (czyli "udefinend") a dopiero później (po otrzymaniu odpowiedzi z Google) alert 1 :/ Jak do tego podejść aby funkcja zwracała mi zmienną (np. p/lat/lng)? -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj callbacki wywoływać.
http://w3future.com/html/stories/callbacks.xml - tutaj rozwiązanie ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
dałem:
i dalej alert (z funkcji foo) pokazuje mi "undefined" :/ czyli foo wykonało się zanim getAddress2 zwróciło cokolwiek:/ -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
GClientGeocoder wykonuje się dłużej niż ten ułamek sekundy potrzebny na przeparsowanie dalszej części kodu. W skórcie - funkcja poo() się wykonała się później (później callback z getLocations() się wykonał) niż funkcja foo()...
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
To wiem, ale jak temu zaradzić? Aby dalszy kod poczekał?
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Kod var ddd;
var foo=function(){ alert(ddd); } var geo2 = new GClientGeocoder(); var getAddress2 = function(search) { var p; geo2.getLocations(search, function (result) { if (result.Status.code == G_GEO_SUCCESS) { p = result.Placemark[0].Point.coordinates; var lat=p[1]; var lng=p[0]; ddd = p; foo(); // VOILA! } } ); } var address = "Legnicka, Wrocław, Poland"; getAddress2(address); Ten post edytował tiraeth 18.06.2008, 23:42:33 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 15:41 |