Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][JavaScript]odświeżanie markera google maps
pmmisiek
post 10.03.2009, 16:54:35
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 8.03.2009

Ostrzeżenie: (0%)
-----


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

Ten post edytował pmmisiek 10.03.2009, 16:57:01
Go to the top of the page
+Quote Post
kipero
post 10.03.2009, 17:01:21
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 50
Dołączył: 28.10.2006
Skąd: Radom

Ostrzeżenie: (0%)
-----


AJAX


--------------------
Go to the top of the page
+Quote Post
pmmisiek
post 12.03.2009, 13:06:39
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 8.03.2009

Ostrzeżenie: (0%)
-----


Może jakiś przykład wykorzystania do tego celu AJAXa?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.06.2025 - 23:47