PHPUG - Geo Maps für papaya CMS - Presentation Transcript
Geo Maps für papaya CMS
05.06.09 Geo Maps - Martin Kelm 1
Agenda
1. Google & Yahoo Maps
2. Weitere Schnittstellen
3. Geo Maps
4. Geo Maps Module
5. Quellen und Links
05.06.09 Geo Maps - Martin Kelm 2
1. Google & Yahoo Maps
05.06.09 Geo Maps - Martin Kelm 3
1.1. Google Maps
8. Februar 2005
Standardansicht
April 2005
Satellitenkarte
22. Juli 2005
Hybridview
2. Januar 2006
Straßenkarten
05.06.09 Geo Maps - Martin Kelm 4
1.1.1. Google Maps Karte
05.06.09 Geo Maps - Martin Kelm 5
1.1.2. Weitere Google Maps Kartentypen
Satellit Hybrid Physikalisch
Mars Mars (Höhenfarben) Mars (Infrarot)
Mond Mond (Höhenfarben) Sternenhimmel
05.06.09 Geo Maps - Martin Kelm 6
1.1.3. Google Maps API
Freier Dienst mit Schlüssel
Juni 2005: Javascript / XML
Version 1 Eigene Daten / Punkte
ohne Werbung (bisher)*
Neue Features u.a.
3. April 2006: Schnellerer Download
Version 2 Eigene Karten-Overlays
Speicheroptimierungen
11. Juni 2006: Parser für Adressangaben
Geocoder und Koordinatenermittlung
* Alternative: Google Maps API Premier (Werbung kontrollierbar)
05.06.09 Geo Maps - Martin Kelm 7
1.1.4. Google Geocoder
HTTP / JavaScript
Adresseingabe Anfrage
Adressausgabe
Einzelner String Adresse unterteilt in Komponenten
Keine Formatierungsvorgaben eXtensible Address Language
unterstützt Abkürzungen unterstützt 200+ Länder
Client-seitiger Cache
Weniger Geocoder-Anfragen
Mehr Performance
Einfacher Geocoder
Koordinaten
Bis zu 50.000 Anfragen pro API Key / Tag (Breitengrad / Längengrad)
JavaScript Aufruf: GclientGeocoder()
05.06.09 Geo Maps - Martin Kelm 8
1.2. Yahoo Maps
Freier Dienst mit Application ID
seit 03.11.2005 (Datum der Beta Version)
05.06.09 Geo Maps - Martin Kelm 9
1.2.1. Yahoo Maps API
Erste Version Sommer 2005
(zeitgleich zu Google)
Nur für die USA
(anfangs)
Mit Geocoder
Flash / Ajax
05.06.09 Geo Maps - Martin Kelm 10
2. Weitere Schnittstellen
Open Layers
05.06.09 Geo Maps - Martin Kelm 11
2.1. Google Earth
Virtueller 3D Globus
Verschiedene Kartenschichten
Austauschformat KML
Kostenlose Basisversion
Windows, Mac OS X, Linux, SymbianOS, iPhone OS
05.06.09 Geo Maps - Martin Kelm 12
2.2. Open Layers
Open Layers
Open Geospatial Consortium (2008)
offene Layer (über standardisierte Formate)
Geschlossene Formate
(Microsoft, Google, Yahoo)
05.06.09 Geo Maps - Martin Kelm 13
2.2.1. Open Layers Beispiel 1
Zeichenfunktionen
05.06.09 Geo Maps - Martin Kelm 14
2.2.2. Open Layers Beispiel 2
GeoRSS mit Flickr Bildern
var newl = new OpenLayers.Layer.GeoRSS('georss.xml');
map.addLayer(newl);
05.06.09 Geo Maps - Martin Kelm 15
2.2.2.1. GeoRSS Beispiel
GeoRSS nach W3C Standard
05.06.09 Geo Maps - Martin Kelm 16
2.2.3. Open Street Map
Sammlung von frei nutzbaren Geodaten
Wiki-ähnliche Datenbank mit Bearbeitungsfunktionen
Creative Commons Share-Alike 2.0
05.06.09 Geo Maps - Martin Kelm 17
3. Geo Maps
papaya CMS (RC1 und Nightly)
Entwicklung seit Mai 2007
Einbindung von Google Maps / Yahoo Maps
Verwaltung von Markierungen und Schlüsseln
05.06.09 Geo Maps - Martin Kelm 18
3.1. API Funktionen in Geo Maps
- Bedienelemente (de-)aktivieren / konfigurieren
- Kartentyp, -größe und Zoomstufe festlegen
- Karte ausrichten / zentrieren
- Beschreibungen über Mouse-Events
- Linien (Polyline)
- Statische Karten
- Kartenkoordinaten auslesen OnClick-Event / Beschreibung
05.06.09 Geo Maps - Martin Kelm 19
3.1.1. Weitere Beispiele
Kartenkoordinaten auslesen und in
Formular übertragen. Polygon-Linien setzen
05.06.09 Geo Maps - Martin Kelm 20
4. Geo Maps Module
Geo Maps Modulübersicht im papaya CMS Backend
05.06.09 Geo Maps - Martin Kelm 21
4.1. Administration
Verwaltung von Markierungen
Verwaltung von Schlüsseln / Application IDs
05.06.09 Geo Maps - Martin Kelm 22
4.1.1. Markierungen verwalten
05.06.09 Geo Maps - Martin Kelm 23
4.1.2. Schlüssel / Application IDs verwalten
Google API Keys und / oder Yahoo Application IDs verwalten.
05.06.09 Geo Maps - Martin Kelm 24
4.2. Kartenboxen
Google Maps Box Yahoo Maps Box
Konfiguration
Daten aus Konfiguration Ausgabeklasse Link-URLs und
annehmen (setter) XML-Ausgabe (getter)
Basisklasse
05.06.09 Geo Maps - Martin Kelm 25
4.2.1. - Kartenboxen konfigurieren
Einstellungen / Optionen zur Kartendarstellung
05.06.09 Geo Maps - Martin Kelm 26
4.2.4.1. Dynamischer Kartenaufruf (1)
API JavaScript mit API-Key laden
1. Browserkompatibilität prüfen:
GBrowserIsCompatible() -> TRUE / FALSE
2. Div-Element im Dokument ermitteln:
var mapElement = document.getElementById(\"map\");
3.Kartenobjekt mit bestimmter Größe erzeugen:
var googleMap = new Gmap2(
mapElement, {'size' : new GSize(width, height)}
);
4. Kartentyp definieren:
googleMaps.setMapType(mapTypeConstant);
05.06.09 Geo Maps - Martin Kelm 30
4.2.4.1. Dynamischer Kartenaufruf (2)
5. Kontrollelemente setzen:
googleMap.addControl(new GLargeMapControl());
6. Punktobjekt erzeugen:
var point = new GLatLng(
parseFloat(latitude), parseFloat(longitude));
7. Kartezentrieren:
googleMaps.setCenter(point);
8. Markierung setzen:
var marker = new GMarker(point);
(weitere Parameter für eigene Icon-Bilder möglich)
googleMaps.addOverlay(marker);
05.06.09 Geo Maps - Martin Kelm 31
4.3. - Konnektor
Basisklasse Konnektorklasse Klasse eines
Fremdmoduls
Methoden:
Liste von Ordnern als Auswahlbox
Markierung hinzufügen
Markierung löschen
05.06.09 Geo Maps - Martin Kelm 32
4.3.1. - Beispiel zum Konnektor
Karten- und spezielle Formularbox
Geo Maps Ausgabeklasse
M1
Geo Maps Basisklasse
M2
Überladenes Klick-Ereignis
function coorModeAction(x, y) {
if (lastMarker != null) googleMaps.removeOverlay(lastMarker);
lastMarker = setMarker(new GLatLng(y, x));
Geo Maps Konnektor
locationInput.value = y+','+x;
}
05.06.09 Geo Maps - Martin Kelm 33
4.4.1. Ausgabe von Markierungsdaten
KML
Beschreibung
in HTML
XMLHttpRequest
Styles für
Google Earth
05.06.09 Geo Maps - Martin Kelm 35
4.4.1.1. Markierungsdaten exportieren
Exportfunktion
im Backend
Oder als
Download im KML
Ausgabemodus
(Markierungsdaten)
KML mit Styles für
Markierungsicon
05.06.09 Geo Maps - Martin Kelm 36
4.5. MySQL Spatial Extensions
Funktionen:
Erzeugung, Speicherung und Analyse von
geographischen Kenndaten
Seit MySQL 4.1 (für MyISAM)
seit 5.0.16 auch
InnoDB, NDB, BDB und ARCHIVE
05.06.09 Geo Maps - Martin Kelm 37
4.5.1. SE Klassenhierarchie
Point: 0-dimensional
Curve: 1-dimensional
Surface: 2-dimensional
GeometryCollection:
Zusammenstellungen
verschiedener Geometrien
05.06.09 Geo Maps - Martin Kelm 38
4.5.2. Geo Maps Funktionen für SE
Basisklasse für Spatial Extensions
- Datenbanktabellen anlengen Spaltentyp: polygon
(für Punkte und Polygone) Index: SPATIAL KEY
- Punkte hinzufügen / entfernen
- Polygone hinzufügen / entfernen
- nächst gelegenen Punkt ermitteln Spaltentyp: point
Index: SPATIAL KEY
- liegt Punkt A in Polygon X?
05.06.09 Geo Maps - Martin Kelm 39
4.5.3. SE Datentabellen
Erweiterungstabellen für MySQL Spatial Extensions bzw. Polygon- und Punktdaten
05.06.09 Geo Maps - Martin Kelm 40
5. Quellen und weiterführende Links
martinkelm.de
en.wikipedia.org/wiki/Google_Maps
en.wikipedia.org/wiki/Google_Earth
en.wikipedia.org/wiki/Yahoo_Maps
en.wikipedia.org/wiki/Open_Layers
openlayers.org/dev/examples
www.georss.org/Main_Page
dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html
code.google.com/apis/maps/documentation/reference.html
developer.yahoo.com/maps/ajax/V2/reference.html
shrt.ws / weisse-liste.de
ENDE
05.06.09 Geo Maps - Martin Kelm 41
0 comments
Post a comment