Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript]od¶wieżanie markera google maps
Forum PHP.pl > Forum > Przedszkole
pmmisiek
Witam

Próbuję stworzyć mapkę na podstawie google maps API, chciałbym wyświetlać na niej markery, których pozycje są zapisane w bazie danych MySQL i aktualizowane co kilka sekund, potrafię pobrać dane z bazy i wyświetlić współrzędne ostatnio dodanego markera ale gdy do bazy zostanie dodany kolejny rekord z aktualnymi współrzędnymi to trzeba ręcznie wciskać odświerz stronę. Moje pytanie brzmi jak ustawić automatyczne odświeżanie pozycji markerów (nie odświeżać całej mapy). Próbowałem w ten sposób:

Kod
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Test</title>
        <!--skrypty-->
        <script src='http://maps.google.com/maps?file=api&v=2&key=' type='text/javascript'></script>
    </head>
    <body onload='mapaStart()' onunload='GUnload()'>
    <script type='text/javascript'>
    <!--
                function mapaStart()
        {
            if(GBrowserIsCompatible())
            {
                var mapa = new GMap2(document.getElementById('mapka'),{mapTypes: [G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP]});
                mapa.enableDoubleClickZoom();  // włączenie zoomu przy podwójnym kliknięciu
                mapa.addControl(new GLargeMapControl());
                var typyMapy = mapa.getMapTypes();
                typyMapy[0].getName= function() { return "Mapa";}
                typyMapy[1].getName = function() { return "Satelita";}
                typyMapy[2].getName = function() { return "Hybryda";}
                mapa.addControl(new GMapTypeControl());
                mapa.addControl(new GOverviewMapControl());
                mapa.addControl(new GScaleControl());
                <?php
                              $link = mysql_connect("localhost", "root", "Sql") or die("Could not connect: " . mysql_error());
                              mysql_selectdb("tab1",$link) or die ("Can\'t use dbmapserver : " . mysql_error());
                              $result = mysql_query("SELECT * FROM tab1 ORDER BY id DESC LIMIT 0,1",$link);
                              if (!$result)
                              {
                              echo "no results ";
                              }
                              while($row = mysql_fetch_array($result))
                              {
                              echo "var point = new GLatLng(".$row['lat'].",".$row['lon'].");\n";
                              echo "mapa.setCenter(point,12);\n";
                              echo "var marker = new GMarker(point,{title: 'cos'});\n";
                              echo "mapa.addOverlay(marker);\n";
                              }
                              mysql_close($link);
                        ?>
                        odswiezMarker();
            }
        }
        function odswiezMarker()
        {
                 <?php
                              $link = mysql_connect("localhost", "root", "Sql") or die("Could not connect: " . mysql_error());
                              mysql_selectdb("tab1",$link) or die ("Can\'t use dbmapserver : " . mysql_error());
                              $result = mysql_query("SELECT * FROM tab1 ORDER BY id DESC LIMIT 0,1",$link);
                              if (!$result)
                              {
                              echo "no results ";
                              }
                              while($row = mysql_fetch_array($result))
                              {
                              echo "var point = new GLatLng(".$row['lat'].",".$row['lon'].");\n";
                              echo "var marker = new GMarker(point,{title: 'cos'});\n";
                              echo "mapa.addOverlay(marker);\n";
                              }
                              mysql_close($link);
                        ?>
        setTimeout('odswiezMarker()',1000);
        }
    -->
    </script>
    <div id='mapka' style='width: 700px; height: 550px; border: 1px solid black; background: gray;'>
    </div>
    </body>
</html>


Niestety nie odświeża pozycji markera.
Prosze o jakieś sugestie.

Pozdrawiam
kipero
AJAX
pmmisiek
Może jaki¶ przykład wykorzystania do tego celu AJAXa?
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.