Zaczynam zabawę z MapGo API, chciałbym odświeżać położenie markera co ok 5s.
Próbowałem to zrobić w poniższy sposób, jednak po stronie serwera skrypt php jest wykonany tylko raz przy załadowaniu strony.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <link rel="Stylesheet" href="style.css" type="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <body> <div id="container"> <script type="text/javascript"> var intervalID; var mapobject=createMapgoObject(); <?php include "ods.php"?> mapobject.showToolbar(); //dodanie ikony //tworzymy tablicę w którą będziemy wstawiać kolejne obiekty do wyświetlenia na mapie var object_list=new Array(); //tworzymy obiekt ikony var icon1=new MapgoIcon(); //podajemy współrzędne obiektu <?php include "ikona.php"?> //dodajemy obiekt do listy object_list.push(icon1); //dodajemy listę obiektów do mapy, "sample_objects" - nazwa grupy obiektów dodawanych do mapy (warstwa obiektów) mapobject.addIconsToMap(object_list,"sample_objects"); intervalID = setInterval(updateIconPos, 5000); function updateIconPos() { //pobieramy wartości z pól formularza <?php include "update.php"?> //aktualizujemy pozycję wybranej ikony (icon1) na mapie oraz przekazujemy współrzędne ekranowe do zmiennej newpos var newpos = mapobject.setIconPos(newlon,newlat,icon1); //wyświetlamy współrzędne ekranowe ikony //alert('Współrzędne ekranowe ikony: \nX= '+newpos.x + '\nY= '+newpos.y); } </script> </div> </body> </html>
efekt działania skryptu jest taki (w zależności jakie dane zostały dodane do ostatniego rekordu bazy):
var newlon = 16.524655; var newlat = 50.949640;
Problem mam taki że trzeba odświeżać całą stronę, żeby zaktualizować pozycje markera.
Domyślam się że trzeba tu użyć AJAX (nigdy nie korzystałem) jak wyglądałoby pobieranie tego pliku php w jakimś interwale czasowym?
Problem rozwiązany, użyłem $.ajax() z jquery.
Temat do zamknięcia
Pozdrawiam