Maschinendenk

GMapper - Google Maps mit PHP

3 Kommentare

Das Google Maps API bietet Entwicklern die Möglichkeit, interaktive Karten auf ihren Seiten anzubieten.
Ich habe zu diesem Zweck die PHP Klasse GMapper geschrieben.
Mit ihr ist es einfach möglich auch komplexere Karten in Websites einzubinden.

Bevor wir beginnen

Um das Google Maps API zu nutzen, benötigt man einen API Key für deine Domain.
Falls Du einen solchen Key noch nicht hast, kannst Du ihn hier: http://www.google.com/apis/maps/signup.html kostenlos erstellen.

Einbinden der Klasse

<?php
include("class.gmapper.php");
$karte = new gmap('DEIN API KEY');
?>

Zunächst includieren wir die Klasse, und erstellen eine neue Instanz die wir der Variable $karte zuweisen.
Ausserdem wird hier der API Key im Konstruktor benötigt.

<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<?php
$karte->headjs();
?>
</head>

Danach erstellen wir das Grundgerüst einer HTML Seite.
Damit die Polylines auch im IE funktionieren muss man im HTML Tag den Parameter “xmlns:v=”urn:schemas-microsoft-com:vml” notieren.

Im HEAD Bereich dieser Seite rufen wir die Methode headjs() auf.

Eine Karte erstellen

<body>
<div style="background-color:#666666;color:#FF0000;" align = "center">
<?php
$karte->mapdiv('600', '600');
?>
</div>
<?php
$karte->bodyjs();
$karte->map(6,'49.980067','10.8731',"normal",5,9);
?>

Zuerst platzieren wir mit der Methode mapdiv() die Karte im HTML Code.
Diese Funktion nimmt 2 Parameter entgegen: Höhe und Breite der Karte.
Nach dem Kartenelement erzeugen wir zunächst alle weiteren Seiteninhalte.

Wichtig: Alle nun folgenden Methoden müssen NACH dem letzten HTML Element und VOR dem /body Tag aufgerufen werden

Nun erzeugen wir durch einen Aufruf der Methode map() eine neue Google Karte auf unserer Seite.
Die Methode map() benötigt mehrere Parameter:

  • initale Zoomstufe
  • initaler Breitengrad
  • initaler Längengrad

Ausserdem stehen folgende optionale Parameter zur Verfügung:

  • Typ legt den initialen Kartentyp fest (mögliche Werte: normal,satellit,hybrid)
  • min_zoom gibt die minimal mögliche Zoomstufe an
  • max_zoom gibt die maximal mögliche Zoomstufe an.

Anschliessend generieren wir mit der Methode bodyjs() den benötigten Javascript Code für den Seitenbody.

Marker hinzufügen

$karte->markstart();
$karte->marker('48','11');
$karte->otherMarker('50','12' ,'Text hier' , "dash.png");
$karte->otherMarker('51','10' ,'Hallo Welt!' );

Nun erzeugen wir 3 Marker auf der Karte. Dazu starten wir mit markerstart() zunächst das Script für Marker und Linien.

Die Klasse kennt hierbei 2 Methoden: marker() und otherMarker()

Beide Funktionen erwarten 2 Parameter:

  • Breitengrad
  • Längengrad

Die Methode marker() erstellt einen einfachen Kartenmarker, ohne weitere Funktionalität.

Erweiterte Marker

Die Methode otherMarker() bietet noch 2 weitere Parameter: html und Grafik.

Mit dem HTML Parameter lässt sich der HTML Code für ein Infofenster (”Sprechblase”) festlegen welche geöffnet wird, sobald man den Marker anklickt.

Mit dem Parameter Grafik wird die Markergrafik gesteuert. Hier kann der Dateiname einer beliebigen Grafikdatei übergeben werden.
Wenn man den Parameter weglässt, wird eine Standardgrafik verwendet.

Ausserdem unterstützt die Klasse Marker mit Detailkarten und Marker mit Tabs

Linien

$punkte = array(
		array('53.5','12.7'),
		array('52.5','13'),
		array('51.5','12'),
		array('51','10'),
		array('48','11'),
		array('47.5','13')
		);
$karte->polyline($punkte, '#FF00FF', 4,1,"all");
$karte->markend();
?>
</body>
</html>

Richtungspfeile

Der optionale Parameter arrows gibt an ob die Linie Richtungspfeile anzeigen soll.
Er kann die Werte “end”, “mid” und “all” einnehmen.

Abschluss

$karte->markend();

Schliesslich generieren wir mit der Funktion markend() noch das benötigte Javascript um das Script für Marker und Linien abzuschliessen.
Danach schliessen wir das HTML Dokument.

Fertig :)

Demo

Eine Demo des hier besprochenen Codes könnt ihr euch unter:
http://gmapper.ajax-info.de/demo/demo.php
anschauen.

Tutorial zu XML

Es gibt auch ein Tutorial das die Erstellung von Markern aus einer XML Datei erklärt.

Download

Die Klasse steht zum kostenlosen Download bereit (Lizenz: GPL)
Das Archiv enthält neben der Klasse auch Dokumentation, und ein Demoscript.
Ihr findet die aktuelle Version immer auf der Projektseite von Gmapper

Geschrieben von Philipp

Oktober 9th, 2006 at 3:42

Veröffentlicht in Allgemein

3 Kommentare zu 'GMapper - Google Maps mit PHP'

Kommentare abonnieren mit RSS oder TrackBack zu 'GMapper - Google Maps mit PHP'.

  1. [...] Ihr findet ein komplettes Tutorial samt Download hier: http://www.ajax-info.de/google-maps-api-klasse-in-php [...]

  2. [...] ist mit der PHP-Klasse GMapper erstellt. Mit etwas Programmiererfahrung in PHP ist die Klasse sehr einfach zu handhaben; sie ist [...]

  3. [...] Google Maps mit mehreren Markern aus einer Datenbank Schaue dir mal die Klasse unter http://www.ajax-info.de/google-maps-api-klasse-in-php genauer an. Eine gute Beschreibung der Funktionen findest du unter [...]

Kommentar schreiben

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