- 1. Einleitung
- 2. Google Maps API Key
- 3. Die XML-Datei
- 4. Koordinaten eines Objektes finden
- 5. Farbe für den Marker wählen
- 6. Javascript modifizieren
- 7. Die Karte in die HTML-Datei einfügen
- Weiterführende Links
1. Einleitung
Seit der Verfügbarkeit der Google Map APIs kann man die Google-Karten in eigene Seite integrieren und eigene Objekte kennzeichen. Dies erfolgt mit Hilfe von Javascript.
Im Folgendem wird aber gezeigt, wie sich eine Karte ohne Javascriptkenntnisse in einigen Schritten erstellen lässt. Dafür benötigen Sie einen Schlüssel für die Karte (Google Maps API Key) und eine Datei, die alle zu kennzeichnenden Objekte enthält (eine Datei mit der Endung .xml). Schließlich müssen Sie das vorgefertigte Javascript an einigen Stellen modifizieren und zusammen mit dem Google-Schlüssel in den HTML-Code hinzufügen.
2. Google Maps API Key
Besorgen Sie sich zunächst einen Developer API Key. Auf der offiziellen Seite von
Google Maps API lässt sich der Key schnell generieren. Achten Sie
bitte darauf, dass ein Key nur für eine URL gilt.
Beispiel: Sie benötigen drei unterschiedliche Keys für diese Webadressen:
www.example.org
www.example.org/karten
www.example.org/anfahrt
Mit dem Erhalten des Keys sind Sie mit den Nutzungsbestimmungen von Google Map API einverstanden.
3. Die XML-Datei
Dann schreiben Sie eine XML-Datei, die alle Objekte (Markers) mit ihren Koordinaten enthält, die auf der Karte dargestellt werden sollten. Diese Datei hat eine Baumstruktur und ähnelt einem HTML-Code, da sie auch Start- (<beispiel>) und Endtags (</beispiel>) hat.
Beispiel: Eine einfache XML-Datei für die Markers:
<markers>
<marker lat="14.096754" lng="9.0976545" > Objekt 1 </marker>
<marker lat="14.987754" lng="9.3785454" > Objekt 2 </marker>
</markers>
So besteht die für die Google-Karte benötige Datei aus <markers>, die aus einzelnen <marker>s bestehen. Jeder Marker kann aber zusätzlich noch aus <label> (Name des Markers) und <infowindow> (Information, die beim Klicken auf den Marker angezeigt werden sollte) bestehen.
Beispiel: Eine XML-Datei für die Markers, die einen Namen und ein Infofenster haben (dies ist der Ausschnitt aus
"suedgelaende-einfach.xml"):
<markers>
<marker lat="49.57372494214435" lng="11.02776288986206" >
<label>Regionales RechenZentrum Erlangen</label>
<infowindow> <![CDATA[Martensstraße, 1 <br/> 91058 Erlangen]]> </infowindow>
</marker>
<marker lat="49.573829301806924" lng="11.027172803878784" >
<label> <![CDATA[Institut für Informatik]]> </label>
<infowindow> <![CDATA[Martensstraße, 3 <br/> 91058 Erlangen]]> </infowindow>
</marker>
<marker lat="49.57438588290542" lng="11.029672622680664" >
<label> <![CDATA[Hörsaal 10]]> </label>
<infowindow> <![CDATA[Erwin-Rommel-Straße, 60]]> </infowindow>
</marker>
...
</markers>
Siehe Beispiel-Karte 1, die auf "suedgelaende-einfach.xml" basiert.
Namen und Infofenster sind zusätzlich in CDATA ( <![CDATA[...Hier kommt der Inhalt...]]>) eingepackt.
Innerhalb des CDATA-Abschnitts wird der Inhalt als ganz normaler HTML-Code behandelt. Das heißt, dass Umlaute und Sonderzeichen (< > " ‘) durch entsprechende ASCII-Zeichen erzetzt werden können (siehe
ASCII-Tabelle).
In den Infofenstern dürfen gerne Links und Bilder mit Hilfe von HTML-Coden eingebaut werden.
4. Koordinaten eines Objektes finden
An dem obigen Beispiel ist erkennbar, dass ein Marker auch Koordinaten "lat" (Latitude) und "lng" (Longitude) hat. Das Tool "Latidude und Longitude finden" hilft, die richtigen Koordinaten zu bestimmen. Dafür müssen Sie auf der Karte das gesuchte Ziel finden und auf das Objekt einen Marker setzen. Unter der Karte erscheinen die Koordinaten des gefundenen Objekts. Es ist wichtig, für die möglichst genaue Kennzeichnung die erhaltenen Daten in der genau dargestellten Länge in die XML-Datei einzutragen, sonst steht der Marker bei näherem Hinzoomen nicht exakt an der richtigen Stelle.
5. Farbe für den Marker wählen
Ist Ihnen die Beispiel-Karte 1 mit den Standardmarkers nicht abwechslunsgreich genug oder möchten Sie verschiedene Objekte mit verschiedenen Farben kennzeichen? Dies können Sie umsetzen, indem Sie <marker> auch mit icontype charakterisieren.
Es stehen folgende Farben von Google Maps zur Verfügung:
- "red"
- "green"
- "yellow"
- "orange"
- "purple"
- "brown"
- "gray"
- "white"
- "black"
Beispiel: So sieht eine XML-Datei mit den Markers, die eine zusätzliche Eigenschaft icontype haben:
(Dies ist der Ausschnitt aus
"suedgelaende.xml")
<markers>
<marker lat="49.57257001364636" lng="11.02776288986206" icontype="green">
<label>Regionales RechenZentrum Erlangen</label>
<infowindow> <![CDATA[Martensstraße, 1 <br/> 91058 Erlangen]]> </infowindow>
</marker>
<marker lat="49.573829301806924" lng="11.027172803878784" icontype="green">
<label> <![CDATA[Institut für Informatik]]> </label>
<infowindow> <![CDATA[Martensstraße, 3 <br/> 91058 Erlangen]]> </infowindow>
</marker>
<marker lat="49.57438588290542" lng="11.029672622680664" icontype="green">
<label> <![CDATA[Hörsaal 10]]> </label>
<infowindow> <![CDATA[Erwin-Rommel-Straße, 60]]> </infowindow>
</marker>
...
</markers>
Siehe auch Beispiel-Karte 2 mit verschiedenen icontypes.
Auf der Beispiel-Karte 2 sind auch Haltestellen, Parkplätze und Infotheken zu sehen. Diese Objekte haben auch entsprechende icontypes. Anders formuliert, jedes icontype ist für eine bestimmte graphische Darstellung verantwortlich.
Beispiel: "bh" steht für Bushaltestelle, "info" für Infotheke, "parkplatz" für Parkplatz und so weiter.
Es stehen folgende Icons vom RRZE zur Verfügung:
- "bh"
- "parkplatz"
- "parkplatz_d"
- "info"
- "mensa"
Hinweis: Einige Markers (Parkplätze, Infotheken) haben normalerweise keine Infofenster. Vgl.: die XML-Dateien für
Bushaltestellen und
Infotheken auf der Beispiel-Karte 2.
Download von Ikons und Legende-Bilder für die Bespiel-Karten als komprimierte ZIP-Datei (21.9 kB)
Das Verzeichnis "images" mit den Ikons sollte da abgelegt werden, wo auch die Google-Karte(n) liegen.
6. Javascript modifizieren
Dem Muster liegt der Javascript-Code aus der Beispiel-Karte 3 zugrunde. Den folgenden zu modifizierenden Text kopieren Sie am besten zuerst in eine Textdatei, die Sie dann bequem bearbeiten können:
Im Text (im Kommentar) finden sich drei Bereiche A, B und C, die zu ändern sind.
Im Bereich A setzen Sie die richtigen Koordinaten für das Zentrum der Karte. An der Stelle mit diesen Koordinaten soll die Karte zuerst geladen werden. In der Zeile map.setCenter(new GLatLng(49.57372494214435, 11.02776288986206), 16); steht die erste Zahl für Latitude, die zweite für Longitude und die letzte für den Grad des Zoomens. Die Zoom-Skala auf einer Google-Karte besteht aus 19 Teilstrichen. Je näher in die Karte gezoomt wird , desto höher wird der Grad des Zoomens.
Im Bereich B fügen Sie statt "parkplaetze.xml", "hotel.xml" und "suedgelaende_kongress.xml" Ihre eigene Dateien ein. Auch die ID-Namen "hotel" und "kongress" ersetzen Sie durch eigene (in den Zeilen document.getElementById("hotel").innerHTML = sidebar_html; und document.getElementById("kongress").innerHTML = sidebar_html;).
"hotel.xml" und "suedgelaende_kongress.xml" sind die Dateien mit den Objekten, deren Namen auf der HTML-Seite beim Ausklappen der Menü-Zeile als Liste erscheinen (siehe Beispiel-Karte 3).
Hinweis: An der Stelle von "parkplaetze.xml" soll die Datei mit solchen Objekten stehen, die keine Infofenster haben oder brauchen.
Im Bereich C werden alle XML-Dateien aufgeführt, die für eine Google-Karte gebraucht werden. Wie im Bereich B fügen Sie in die Anführungszeichen die richtigen Dateinamen ein.
Somit ist das Javascript fertig, um in den HTML-Code platziert zu werden.
7. Die Karte in die HTML-Datei einfügen
Schritt 1. Fügen Sie das Javascript mit dem generierten
Google Maps API Key in den Kopf-Bereich des HTML-Dokuments zwischen den Tags <head> und </head> ein.
Das Script soll ungefähr so aussehen:
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAhweFE5UtqwpF1xSvqigxsRRAPDRIDIN5HpO1QIFmwpxW6fEDXhS6gRQcL966RIvZZPXRYQoRI_if9A"
type="text/javascript"></script>
Schritt 2. In den <body>-Tag wird eine Javascript-Funktion eingefügt:
<body onunload="GUnload()">
Schritt 3. Hier entscheiden Sie, wo die Karte und wo die Liste der Objekte erscheinen sollen. ID ="map" steht dabei für die Karte. Andere ID-Namen werden willkürlich gewählt.
Der HTML-Code der Beispiel-Karte 3:
<!-- die Karte und Menu zur Karte -->
<div id ="googlemap">
<!-- die Karte -->
<div id="map"></div>
<!--Legende zur Karte -->
<div id="legende">
<img src="images/info_legende.gif" width="30" height="22" alt="Info-Marker" /> - Infotheken mit weiteren Informationen<br/>
<img src="images/red.gif" width="20" height="20" alt="roter Marker" class="marker" /> - Für den Webkongress wichtige Gebäude <br/><img src="images/orange.gif" width="20" height="20" alt="oranger Marker" class="marker" /" - Hotels
</div>
<div id="sidebar">
<a href="javascript:anzeigen('kongress')" class="liste">Liste der für den Webkongress wichtigen Gebäude anzeigen</a>
<ul id="kongress" style="display:none"></ul> <br/><br/>
<a href="javascript:anzeigen('hotel')" class="liste">Liste der Hotels anzeigen</a>
<ul id="hotel" style="display:none"></ul>
</div>
</div>
Hinweis: Mit Hilfe von einer CSS-Datei können Sie bestimmen, wie groß die Karte sein soll. Auch für das Infofenster werden die Werte hier festgelegt. Das Infofenster hat den ID-Namen "window".
Beispiel: Die CSS-Datei für die Beispiel-Karte 3:
...
#map {
float:left;
width:600px;
height:400px;
}
#window {
width: 200px;
font-size: 14px;
}
...
Schritt 4. Fügen Sie den bereits modifizierten Javascript-Code direkt vor dem </body>-Tag ein. Dies ist sehr wichtig, sonst meldet Internet Explorer einen Fehler!
Weiterführende Links
Möchten Sie mehr über die Erstellung von Google-Karten erfahren? Folgende Links sind hilfreich:
Google Maps API Documentation (englisch)
Google Maps API Tutorial (englisch)
Die deutsche Google Maps Community (deutsch)
Google-Maps in die eigene Website einbinden (deutsch)
Google Map in die eigene Seite integrieren (expertinnen-web.de)(deutsch)
