Mam pewien problem, na stronie umieszczam automatyczną mapę poprzez google API do adresu dla każdej z lokalizacji.
Problem zaczyna się jednak gdy mam dwa adresy i zanim zakończy się ładowanie pierwszego ładuje się już kolejny i ucieka jakby jedna operacja.
Mój kod w skrócie wygląda tak :
for (index = 0; index < 2; ++index) { var id = $(a[index]).find('div.map'); mapaStart(id.attr('id'), id.attr('address')); }
następnie funkcja mapaStart zawiera odwołanie do kolejnej funckji
function mapaStart(id, address) { var wspolrzedne = new google.maps.LatLng(53.429805, 14.537883); var opcjeMapy = { zoom: 13, center: wspolrzedne, disableDefaultUI: true }; mapa = new google.maps.Map(document.getElementById(id), opcjeMapy); console.log('adres kodowania ' + address); geokoder.geocode({address: address}, obslugaGeokodowania); } function obslugaGeokodowania(wyniki, status) { if(status == google.maps.GeocoderStatus.OK) { console.log('status = ok'); mapa.setCenter(wyniki[0].geometry.location); var marker = new google.maps.Marker( { map: mapa, position: wyniki[0].geometry.location, } ); } }
i w tym przypadku funckja obslugaGeokodowania wykonuje się tylko raz.
Czy mozna w js jakoś zatrzymać działanie funkcji do momentu aż uzyska się zakończenie obsługi Geokodowania?
Jak wspomniałem więc głównie problem stwarza mi ta funkcja :
geokoder.geocode({address: address}, obslugaGeokodowania);