GMapper - Google Maps mit PHP
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
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> $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"> $karte->mapdiv('600', '600'); </div> $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
3 Kommentare zu 'GMapper - Google Maps mit PHP'
Kommentar schreiben
Sie müssen eingeloggt sein um einen Kommentar zu verfassen.
[...] Ihr findet ein komplettes Tutorial samt Download hier: http://www.ajax-info.de/google-maps-api-klasse-in-php [...]
Ajax Info » PHP Klasse zum Google Maps API veröffentlicht
9 Okt 06 um 4:22
[...] ist mit der PHP-Klasse GMapper erstellt. Mit etwas Programmiererfahrung in PHP ist die Klasse sehr einfach zu handhaben; sie ist [...]
Stefan Mertin » Blog Archiv » Erste eigene Google Maps Anwendung
11 Dez 08 um 2:03
[...] 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 [...]
Google Maps mit mehreren Markern aus einer Datenbank - PHP @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & Hilfe
27 Mai 09 um 8:07