20

HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Embed Size (px)

Citation preview

Page 1: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

HTML5-Editor für OpenStreetMap

Paul-Fiete Hartmann (OSM Benutzername: bastik)

21.3.2012

Page 2: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Inhalt

1 Motivation

2 Ähnliche Projekte

3 Mein Prototyp (Beboj)

4 Webtechniken (Details)

2 / 20

Page 3: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Abgrenzung

�HTML 5 Editor�?

Läuft im Browser

Benötigt keine Plugins / Laufzeitumgebungen(wie Flash, Java, Silverlight)

vollwertiger Editor für OpenStreetMap

3 / 20

Page 4: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Motivation

Angepasste Versionen von Potlatch 2 auf verschiedenen Webseiten(open.mapquest.co.uk, wanderreitkarte.de, skimap.org, usgs.com, ...)

Verschiedenste Webservices im OSM Umfeld→ direkte und eng verknüpfte Editiermöglichkeiten, z.B.

Qualitätssicherung (Keep Right, dupe nodes, ...)

Kontrollierte Importe / Datenaktualisierung

4 / 20

Page 5: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Warum noch einen Editor?

Verzicht auf Flash-Plugin→ Engere Verzahnung mit anderen Funktionen der Webseite→ Auf mobilen Geräten ohne Flash-Unterstützung einsetzbar

Kompatibilität zu anderen (Javascript-)Bibliotheken (z.B. Openlayers)

Mögliche �Wiederverwertung� von JOSM Quelltext (s.u.)

Technisch reizvoll

5 / 20

Page 6: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Ähnliche Projekte - Amenity Editor

von User:Nitegate

Bearbeitung von POIs

Ändern von Tags, Verschieben, Einfügen von Nodes

(OAuth; Technische Umsetzung: Java Spring)

6 / 20

Page 7: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Ähnliche Projekte - GwtOsm

von James Michael DuPont (h4ck3rm1k3), 2010

Nutzt JOSM+GWT

SVG Rendering

7 / 20

Page 8: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Ähnliche Projekte - SVG-Mapeditor

von Paul Wagener, 2010

direkt in Javascript geschrieben

Setzt auf SVG

8 / 20

Page 9: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Beboj (Browser Editor based on JOSM)

Features:

Download vom OSM-Server

Maus-Interaktion im Potlatch 2 Stil

Erstellen, Verschieben von Nodes undWays

Upload der Änderungen zumOSM-Server

Bing-Luftbilder (auf Basis vonOpenlayers)

https://github.com/openstreetmap/beboj (GPL 3+)9 / 20

Page 10: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Welche HTML 5-Features sind essenziell?

Dynamisches Zeichnen / Rendering

Notwendig für interaktives Editieren von Linien auf Clientseite

Lösung: Canvas oder SVG (Scalable Vector Graphics)

Canvas SVG

Zeichen�äche, zum Bemalen Beschreibungssprache für geome-trische Formen

Einfache low-Level Operationen Reichhaltiger Standard, z.B.

Eigenschaften per CSS

Animationen

10 / 20

Page 11: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Canvas - Browserunterstützung

11 / 20

Page 12: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Canvas - Codebeispiel

<canvas id="hot-canvas" width="70" height="40"></canvas>

<script type="text/javascript">var example = document.getElementById('hot-canvas');var c = example.getContext('2d');

c.beginPath(); /* Polygon Umriss */

c.fillStyle = '#d73f3f';c.moveTo(10, 0);c.lineTo(50, 0); /* ... */ c.lineTo(55, 20);c.fill();

c.beginPath(); /* Weisser Kreis */

c.fillStyle = 'white';c.arc(35, 20, 13, 0, 2*Math.PI);c.fill();

c.fillStyle = '#d73f3f'; /* Text */

c.font = 'bold 16px sans-serif';c.scale(0.5, 1);c.fillText("HOT", 50, 25);

</script>

12 / 20

Page 13: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

SVG - Browserunterstützung

13 / 20

Page 14: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

SVG - Codebeispiel

<svg width="70px" height="50px">

<polygon

points="10 0, 50 0, 70 20, 55 20, 65 30, 50 30,

60 40, 20 40, 0 20, 15 20, 5 10, 20 10"

fill="#d73f3f"/>

<circle cx="35" cy="20" r="13" fill="white"/>

<text x="50" y="25" textLength="40"

style="font-size:16px; font-family: sans-serif;

fill: #d73f3f; font-weight: bold"

transform="scale(.5, 1)">HOT</text>

</svg>

14 / 20

Page 15: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Weitere HTML5 Techniken (1/2)

Geolocation API Abfrage der geographischen Ortsinformation fürGeräte mit GPS.

File API 1 Zugri� auf lokales Dateisystem

Gedacht z.B. für Vorschaubilder vor dem Upload vonFotos

Im OpenStreetMap-Umfeld:

FotomappingLaden von lokalen GPX-DateienZwischenspeichern ohne Upload

1Experimentell, fehlende Unterstützung in wichtigen Browsern15 / 20

Page 16: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Weitere HTML5 Techniken (2/2)

Web Workers 1 Lange Hintergrundberechnungen, ohne dieBenutzerober�äche zu blockieren.

Web Storage Ähnlich Cookies zum Speichern von Daten im

Webbrowser.(Aber deutlich mehr Speicherplatz)

Speicherung von EinstellungenSpeicherung von Ressourcen als Alternative zumBrowser-Cache.

WebSockets 1 Bidirektionale Verbindung zwischen einerWebanwendung und einem Server.

Z.B. Kollaboratives Mapping in Echtzeit

1Experimentell, fehlende Unterstützung in wichtigen Browsern16 / 20

Page 17: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Google Web Toolkit (GWT)

Toolkit zur Entwicklung von Webanwendungen

ähnliche Frameworks:

Apache Wicket

Java Server Faces

Java Spring

...

Alleinstellungsmerkmal von GWT:

Java-nach-Javascript-Compiler

→ Sowohl Server- als auch Client-Code kann in Java geschrieben werden

17 / 20

Page 18: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

GWT - JOSM Code-Recycling

→ JOSM Code kann übersetzt und als Javascript im Browser ausgeführtwerden

Beboj:

18 / 20

Page 19: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Google Web Toolkit (GWT)

Klappt so noch nicht vollständig: Same-Origin-PolicyLösung:Cross-Origin Resource Sharing (CORS)

Server (OSM-Datenbank) muss mitspielen.

19 / 20

Page 20: HTML5-Editor für OpenStreetMap - fossgis.de · Weitere HTML5 echnikTen (2/2) Web Workers 1 Lange Hintergrundberechnungen , ohne die Benutzerober äche zu blockieren. Web StorageÄhnlich

Zusammenfassung

HTML 5 Editor ist in der Entwicklung (soll keine Machbarkeitsstudiebleiben)

Schlüsseltechnologien: Canvas & SVG

Anregungen / Designvorschläge gern gesehen

Kartendaten: (C) OpenStreetMap Contributors, CC-BY-SA20 / 20