Top Banner
Dynamische Webprogrammierung mit der Google Maps API Hochschule Wismar - Multimediatechnik 1
18

Dynamische Webprogrammierung mit der GoogleMaps API

Jan 18, 2015

Download

Education

Christian Kehl

Script Year 2009
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

1

Dynamische Webprogrammierung mit

der Google Maps API

Page 2: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

2

Vorbereitung

• Schlüssel für die API beantragen (www.google.de -> Maps -> Anmelden)

• Voraussetzung: GoogleMail-Account• Key ist immer Domaingebunden• Testscript laden• Wichtig: Web-Server finden, der Google-Anfragen nicht

blockiert (weder Transmit noch Recieve)

Page 3: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

3

Vorbereitung

Page 4: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

4

Unsere erste Google Map

• Ziel:– Eine Karte– Zentrum der Karte ist Hochschule Wismar– Marker mit einer Erklärung

• Reihenfolge– Erstellen einer normalen HTML-Seite– Einbinden des Google Maps Scripts (API-include)– Definieren eines Containers (<div>) im Body mit einer ID und setzen

der onload/onunload-Funktion

Page 5: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

5

Unsere erste Google Map

Page 6: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

6

Unsere erste Google Map

• Weitere Reihenfolge:– JavaScript schreiben

• Init-Funktion schreiben• Diverse Google-Funktionen implementieren …

• Google-Funktionen:– Erstellen von Objekten (GoogleMaps ist eine OOL) GMap2;

GClientGeocoder; GLatLng (!!)– Anfrage-Funktionen (z.B. geocoder.getLatLng() ) aufrufen und (wichtig)

auf Antwort von Google warten– In der Callback-Funktion Reaktion ausführen

Page 7: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

7

Unsere erste Google Map

• Unserer Code• Das Ergebnis …

Page 8: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

8

Kleiner Theorie-Einschub

Der Geocoder

• Erzeugung eines Geocoders• Übergabe einer Adresse• Da Asynchroner Bearbeitungsmodus Notwendigkeit des

Wartens auf eine Antwort• Daher: Überwachung des Nachrichtenpuffers über

EventListener, bis Antwort da• Antwort gibt Aufschluss über Status der Abfrage

– Wenn Antwort==0 Falsche Anfrage, nicht verzeichneter Ort, ungenaue Anfrage

– Andernfalls: Rückgabe des WAHRSCHEINLICH gesuchten Ortes (unscharfe Suche)

Page 9: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

9

Kl. Erweiterungen

• Anzeige des Infofensters nach einem Klick ( siehe hier)

• Hinzufügen von Steuerfeldern ( siehe hier)

• Design des Infofensters und Strukturierung des Dokuments ( siehe hier)

Page 10: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

10

Google Maps designen

• Verschiedene Möglichkeiten, das Design anzupassen• 1. Texturelle Ausgabe um die eigentliche Karte per

Container-Verschachtelung etc. designen ( CSS)• 2. Formatierung und Design des Info-Fensters von Markern• 3. eigenes Design von Markern• 4. einbinden von AJAX in das Info-Fenster• 5. Diverse Visualisierungsmöglichkeiten von:

– Straßen (GDirections)– Strecken (GPolyline)– Gebieten (GPolygon)

• Dabei wichtig: Google-eigene Design-Formatierung beachten

Page 11: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

11

Google Maps designen

Beispiel für Polygon

Beispiel Polyline

Page 12: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

12

Google Maps designen

Beispiel Marker

Page 13: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

13

Mehrere Marker – erst einmal statisch …

• Übergabe von mehreren Parametern (zum Beispiel 4 für 4 Plätze)

• Umschreiben der JavaScript-Routine• Hinter einander geokodieren der verschiedenen Adressen• Abspeichern der Werte in eigenen Variablen• Setzen des Overlays

Das Ergebnis:

Soweit, so gut … sieht doch schon brauchbar aus

Page 14: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

14

Dynamische Maps – Einleitung Technik

• Dynamik: Darzustellende Daten werden beim Aufruf der Seite erst generiert

• in unserem Fall: Koordinaten der darzustellenden Punkte werden erst beim Aufruf der Seite generiert; Möglichkeit des Hinzufügens von Punkten

• Dazu nötig: ein „Ort“, wo darzustellende Orte abgespeichert werden

• Für kleine und mittlere Webprojekte bestes Datenformat: XML

• Notwendigkeit der dynamischen Übersetzung der Orte in Geo-Koordinaten bei Seitenaufruf PHP

• Da Google Maps an sich eine JS-API: dynamischer Aufbau eines JavaScripts mit Hilfe von PHP

Page 15: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

15

Dynamische Maps – Datenformat XML

• Grundvoraussetzung bei der Arbeit mit XML Dateien: validierte XML -> DTD und XML

• DTD

• XML

Page 16: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

16

Dynamische Maps - Datengenerierung

• Nächster Schritt: Parsen der Geo-Koordinaten zu den eingetragenen Punkten

• Bearbeitung der Daten durch PHP-Script• Sinn eines Scripts: Zusammenführen von Funktionen zur

Datenbearbeitung; keine Bildschirmausgabe• In der späteren Webseite: einfaches <? Include() ?> des

Scripts, damit die Daten bei Seitenaufruf aktualisiert werden

• Unser Script:

Page 17: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

17

Dynamische Maps – Datenabruf und JS-Generierung

• Aufbau der Hauptseite wie gewohnt• Include des PHP-Scripts nicht vergessen !!• Dynamische Generierung des JavaScripts über echo-

Ausgabe per PHP• Per foreach-Schleife werden die einzelnen Einträge der XML

durchgegangen• Per ID werden je XML-Eintrag eigene GoogleMaps-Objekte

generiert

• Quelltext• Anzeige

Page 18: Dynamische Webprogrammierung mit der GoogleMaps API

Hochschule Wismar - Multimediatechnik

18

Überblick der Konkurrenz

• VirtualEarth als Microsoft Konkurrennzprodukt• http://www.woistdaniel.de/• möglich: 3D-Animation der Umgebung

• Voraussetzung für Nutzung von VirtualEarth:– Evtl. Hotmail/MSN-Account– Silverlight SDK– Da Silverlight .NET-Anwendung: .NET 2.0 SDK (mindestens)– Für 3D: Virtual Earth 3D Plugin