Maschinendenk

Fahrtrichtungen mit Gmapper

0 Kommentare

Seit kurzem ist es mit der Google Maps API möglich Fahrtrichtungen (”Directions”) auf einer Karte auszugeben.

Hierbei wird zwischen 2 Punkten eine “weiche” Linie gezeichnet, die Strassen berücksichtigt.
Ausserdem ist es möglich die Distanz in Strassenkilometern auszugeben und auf eine Wegbeschreibung zuzugreifen.

Neu in Gmapper 1.0

Gmapper implementiert diese neue Funktionalität mit Version 1.0 grundlegend.
Mit der Methode directions ist es einfach möglich 2 Punkte festzulegen die dann mit einer Weglinie verbunden werden.

bool   directions  (string $start, string $end, [string $startmarker = "143.png"], [string $endmarker = "143.png"], [int $zoombounds = 0], [string $textbox = ""])

Beispiel

Hier eine Demo dieser Funktionalität: http://gmapper.ajax-info.de/demo/demodirections?start=Heilbronn&end=Rostock

Hier wird eine Linie zwischen Heilbronn und Rostock gezeichnet, sowie eine Wegliste ausgegeben.
Ausserdem wird der Kartenausschnitt so gewählt, dass die gesamte Strecke sichtbar ist (”zoom to bounds”).

Dies wird wie folgt umgesezt:

<?php
include("class.gmapper.php");
$key = "";
$karte = new gmap($key);
?>
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<?php
$karte->headjs();
?>
</head>
<body onunload="GUnload()">
<?php
$karte->mapdiv('600', '600');
?>

Zunächst erzeugen wir ein neues Kartenobjekt und führen die benötigte headjs Methode im Seitenkopf aus.
Diese erzeugt das benötigte JS im Seitenkopf.

Danach platzieren wir mit der Methode mapdiv die Karte

<?php
$karte->bodyjs();
$start = $_GET['start'];
$end = $_GET['end'];
$karte->map(6,'49.980067','10.8731',"normal",1,18,"large");
?>

Nun erzeugen wir mit der Methode bodyjs das benötigte Javascript im Seitenbody.
Danach initialisieren wir unsere Variablen $start und $end , die wir aus der URL lesen ($_GET).
Schliesslich erzeugt die Methode map die eigentliche Kartendarstellung.

<?php
$karte->markstart();
$karte->directions("$start","$end","gruen.png","rot.png",1,"huhudiv");
$karte->markend();
echo "<div id = \"huhudiv\" style = \"height:150px;width:33%;overflow:scroll;\"></div>";
?>
</body>
</html>

Abschliessend beginnen wir mit der Methode markstart einen neuen Markerbereich.
Danach rufen wir wie Methode directions auf, und übergeben ihr unsere Variablen $start und $end als Start- und Endort.
Danach übergeben wir noch die Dateinamen der Start- und Endmarker. Mit der Zahl 1 aktivieren wir Zoom to Bounds.
Schliesslich übergeben wir noch die Element-ID des HTML Elements in dem die Wegliste ausgegeben werden soll.
Danach wird der Markerbereich mit der Methode markend abgeschlossen.
Fertig :)

Das hier besprochene Beispiel findet sich auch als demodirections.php im Gmapper Archiv.

Links

Geschrieben von Philipp

Juli 23rd, 2007 at 10:37

Veröffentlicht in Allgemein

Kommentar schreiben

Sie müssen eingeloggt sein um einen Kommentar zu verfassen.