Google maps met variabele(gps locatie) marker dmv ajax

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gertjan Wachtmeester

Gertjan Wachtmeester

05/11/2008 22:16:00
Quote Anchor link
dmv onderstaand script heb ik het voor elkaar gekregen dat onze gps op de kaart wordt weergegeven. En ook de route die we hebben afgelegd.
Maar wat ik nu graag zou willen is dat via ajax de marker over de kaart heen verplaatst wanneer de gps positie veranderd (deze word elke 15 seconden aangepast).
Daarnaast wanneer dat gelukt is zou ik de kaart niet elke keer gecentreerd willen hebben op dezelfde plaats als de marker. Dit zou ik dan bijv. om de 5 miniten willen centreren op dezelfde locatie als de marker.
Ik heb eerlijk gezegd geen idee of dit mogelijk is en hoe het mogelijk is.
Dus wanneer iemand hier een leuke uitdaging in ziet. Zou ik dat graag tegemoed zien.
Mvg. Gertjan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
require_once("include/config.php");
require_once("include/functions.php");

dbconn();

$query5    =    mysql_query("SELECT * FROM gps");
$aantal    =    mysql_num_rows($query5);
$min    =    $aantal-500;
$query    =    mysql_query("SELECT * FROM gps ORDER BY id ASC LIMIT ".$min.", 500");
$testquery = "SELECT * FROM gps ORDER BY id ASC LIMIT ".$min.", 50";

$polyline = '';
    while($row=mysql_fetch_array($query)){

        $polyline .= "new GLatLng(".$row[2].", ".$row[1]."),";
    }


    $query1    =    mysql_query("SELECT * FROM gps ORDER BY id DESC LIMIT 1");
    $res    =    mysql_fetch_array($query1);
  
  
    $pos    =     $res[2].", ".$res[1];

    $date    =    $res[5];
    $time    =    $res[6];
    $year = substr($date, 0, 4);
    $month = substr($date, 4, 2);
    $day = substr($date, 6, 2);
    $hour = substr($time, 0, 2);
    if($hour == 23){
        $hour = 0;
    }

    else{
        $hour = $hour+1;
    }

  
  
    $minute = substr($time, 2, 2);
    //    Decimal seconds truncated
    $second = substr($time, 4, 2);
  
    $datetime    =    $day."-".$month."-".$year." ".$hour.":".$minute.":".$second;
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps JavaScript API Example</title>
    <script
     src="http://maps.google.com/maps?file=api&v=2&key=A...J8Lg39OHHUJ0-ug"
      type="text/javascript"></script>
    <script type="text/javascript">

    //<![CDATA[
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(<?=$pos;?>), 13);
        map.addControl(new GLargeMapControl()); // Groot zoom/beweeg control
        map.addControl(new GMapTypeControl()); // Control voor wisselen van kaarttype

        marker=new GMarker(new GLatLng(<?=$pos;?>)); // De marker maken
        map.addOverlay(marker); // De marker plaatsen
      
    // Hier ga ik de ballon openen
        var tooltipInfo = "<b>ms The Wave</b><br />Snelheid: <?=round($res[4], 2);?> km<br />Tijdstip: <?=$datetime;?><br /><a href=http://www.the-wave.eu title=The Wave>http://www.the-wave.eu</a>";
        marker.openInfoWindowHtml(tooltipInfo);
      
  
        var polyline = new GPolyline([
               <?=$polyline;?>
            new GLatLng(<?=$pos;?>)
        ], "#FF0000", 3); // Kleur en breedte in pixels

    map.addOverlay(polyline); // Op de kaart plaatsen
  
      }
    }
  
    //]]>

    </script>
  </head>
  <body onload="load()" onunload="GUnload()">
    <div id="map" style="width: 800px; height: 530px"></div>
  </body>
</html>


Wanneer er vragen zijn of aanvullende gegevens nodig zijn. dan hoor ik dat graag.


Voorbeeld hoe de uitvoer nu is op http://www.the-wave.eu/seegps.php



Ps. Hoe maak ik hier een net bericht van?
Gewijzigd op 01/01/1970 01:00:00 door Gertjan Wachtmeester
 
PHP hulp

PHP hulp

24/11/2024 07:16:13
 
Tamara

Tamara

05/11/2008 22:57:00
Quote Anchor link
ik denk dat je dan moet kijken naar draggable markers.... niet perse met de click functie ofzo, maar na die 15 seconden...

linkje draggable markers
 
Gertjan Wachtmeester

Gertjan Wachtmeester

05/11/2008 23:00:00
Quote Anchor link
Is het niet zo dat je die alleen via de muis kan verslepen?

Ik dacht dat ik via ajax een php script moest aanroepen.
en dan in dat script de positie uit de database halen.
En die weer terug sturen naar de marker functie.

Maar ik weet niet hoe ik dit precies in de praktijk moet doen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.