Diskussion:Tourpl: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
(Features)
K
 
(110 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Technologien und Quellen/Daten ==
+
Wichtige Websites:
 
+
* Stand und Weiterentwicklung: Dieses GISWiki
;Technologien:
+
* Ticketing: http://dev.ifs.hsr.ch/redmine/projects/tourpl
* Server: Python, SQLite
+
* Repository (Source Code): git.hsr.ch
* Client: JavaScript: OpenLayers, jQuery. Webbrowser getestet unter Firefox 3, Firefox 4, Chrome 13 und IE 8 (später ev. IE 9 und Safari).
 
* Folgende externe Webservices werden genutzt:
 
** Geocoder/[[Geocoding]]: Yahoo (eine Alternative wäre Mapquest oder Geonames)
 
** Routing: OpenStreetMap-Route-Service (OSRM) [http://map.project-osrm.org/] (eine Alternative wäre MapQuest)
 
*** Routing mit OSRM und mit PostGIS und [http://www.pgrouting.org/ pgrouting] ([http://sourceforge.net/projects/pgroute/ pg_route] ist outdated)
 
*** Dennis Luxen: "Routing with OpenStreetmap data", SOTM Wien, http://sotm-eu.org/talk?74 ([http://sotm-eu.org/slides/74_DennisLuxen.pdf PDF]) (about OSRM)
 
*** [http://neis-one.org/2011/07/comparison-reloaded/ Comparison of (OSM) routing-engines – Reloaded]
 
 
 
;Daten:
 
* Die Strassendaten stammen von der OpenStreetMap-Datenbank. Sie sind ca. 2 Tage alt (vgl. [[EOSMDBOne]]), weil unser Download um 3 Uhr eine halbe vor dem Bereitstellen der Geodaten-Extrakts von Geofabrik startet.
 
* Bei Widersprüchen zwischen PLZ und Ortsname wird die PLZ verwendet (Näheres dazu siehe Geocoder).
 
  
 
== Stand und Weiterentwicklung ==
 
== Stand und Weiterentwicklung ==
  
;Mögliche Premium-Funktionen (MyTourpl, mit Login):
+
;Aktueller Stand: Die Funktionalität wird zurzeit laufend erweitert - ausser "grosse Erweiterungen", wie z.B. eine Adressverwaltung, die wir gerne über unsere Premium-Services realisieren.  
* Unlimitierte Anzahl Routen
 
* Werbefrei
 
* Priorisierter Betrieb
 
* Editieren und Selektieren im Kontakt-Stamm
 
* Kalender-Anbindung (Google, Outlook, Exchange)
 
* Version für Mobiles/Smartphone
 
 
 
;Aktueller Stand: Die Funktionalität wird zurzeit laufend erweitert - ausser "grosse Erweiterungen", wie z.B. eine Adressverwaltung, die wir gerne über unsere Premium-Services realisieren.
 
  
Erledigtes unten in History einordnen.
+
;Was gibt es für Alternativen zu tourpl?: Keine, die kostenlos ist, wie Tourpl. Und keine, die vor hat, Stau-Informationen zu integrieren. Für grössere Aufgaben in der Logistil, die häufig mit komplexen Touren zu tun habe, ist uns folgende kostenpflichtige Software bekannt:
 +
* "Online Tourenplaner" gb consite GmbH [http://www.standortanalyse.biz/de/standortanalyse-tourenplaner.html]
 +
* smartTour - Desktop-Programm (Client) zur kurzfristigen und dynamischen Planung Touren und Reisen [http://www.smartgis.at/index.php?id=439].
 +
* Portatour [http://www.impact.co.at/produkte/portatour/], rexx [http://www.rexx-systems.com/tourenplanung.php], Hermes [http://www.dataphone.ch/produkte/logistik_systeme/hermes_proof_of_delivery/], Tourenplanungssystems CATRIN [http://www.smartlogics.net/], PRA'CAR 3000 [http://www.wanko.de/tourenplanungssoftware.htm], mapandguide.com [http://www.mapandguide.com/index.php?id=4718&L=0].
  
 
== Task List ==
 
== Task List ==
  
* Bugs/Errors
+
Erledigtes unten in History einordnen.
* Features
 
  
 
=== Bugs/Errors ===
 
=== Bugs/Errors ===
  
T1: Tab/Button "Verbessern" - " Analyse Simulated Annealing: Warum wechselt die Route ständig bei kleiner Anzahl Zwischenstationen?
+
* Authentifizierung mit OpenID
 +
** <code>{"error": "Error fetching XRDS document: (7, 'Failed to connect to 2001:620:130:a036::121: Network is unreachable')"}</code>
 +
** <code>{"error": "No template named error"}</code>
 +
* Bei zu kleinen Window-Auflösungen wird die Karte ganz unterhalb (und damit ausserhalb) des Layouts gezeigt. Man hat den Eindruck, dass die Karte weg ist und jede Interaktion wird unmöglich.
 +
* Karte (OpenLayers) verschwindet nach unten, wenn Breite zu schmal.
 +
* Daten seit 02.06.2014 05:06 nicht mehr aktualisiert?
  
T2: GUI - Der IE Explorer 8 stellt die Karte rechts statt unterhalb der Tabs/Buttons dar.
+
=== Features ===
  
T3: Nach visuellem Umordnen der Liste oder in der Karte muss die Gesamtdistanz neu berechnet werden.
+
'''1. Priorität'''
 +
* Nachträgliches Umsortieren der Adressen (über Tabelle links).
  
T4: Tab/Button  "Upload": Error bei Aufruf von http://tourpl.ch/7nz2wuijijdupa4mbu35wisge4 ([[Datei:Tourpl_err.zip]] mit Umlauten gemischt UTF-8 und ANSI?)
+
'''Nice to have''' (T1):
<small>
+
* Neue Reihenfolge der Felder: Tourpl, (Abfahrt,) (Dauer,) Name, Vorname, Anrede, Strasse, PLZ, Ort, Telefon, Bemerkungen, (Mail) (Koordinaten).
  <class 'app.helpers.route.RouteNotFound'> at /7nz2wuijijdupa4mbu35wisge4
+
* Funktion Permalink: Speichert URL mit Zoomfaktor, lat/lon (Zentrum) und aktive Layers (siehe u.a. [[PostGIS-Terminal]])
  no such child: {http://www.opengis.net/kml/2.2}Placemark
+
* Funktion "Zoom-to-extent" als OpenLayers-Standard-Button "Weltkugel" (vgl. den Button zwischen den Zoom-Pfeilen auf http://openpoimap.ch/ )
  Python  lxml.objectify.pyx in lxml.objectify._lookupChildOrRaise (src/lxml/lxml.objectify.c:5310), line 484
+
* GUI (Tabs/Buttons 'Vorlage', 'Upload', 'Download', etc.) mit einheitlicher Schrift.
  Web  GET http://tourpl.ch/7nz2wuijijdupa4mbu35wisge4
 
</small>
 
 
 
=== Features ===
 
  
F1. ''Adressen-Stamm'': Vollständige Adress-Liste für Tour laden, darstellen ("Read Only" ohne Login) und daraus per Mausklick die Zwischenhalte selektieren und zur Tour hinzufügen:
+
'''Adressen-Tab + Tour-Tab''' (T2): Adress-Liste und Tour-Liste als Tabs darstellen, daraus Zwischenhalte selektieren und zur Tour hinzufügen, bzw. entfernen:
* Wie Tourpl und nun der Adressen-Stamm sicher ins Web gestellt werden? https?
+
* In Tour selektierte Adressen farblich kennzeichnen
* Upload:
+
* Falls Adresse beim Geocodieren nicht erkannt wird => aus Tour entfernen und kennzeichnen.
** Immer alle Adressen in Liste und v.a. in Karte darstellen (rote Pins), selektierte (gelbe Pins) werden zur Tour verbunden.
+
* Adress-Tab aktiv:
** Alle, die beim im Tourpl-Feld "X" haben für die Tour selektieren.
+
** Adressen in Liste einzeln selektieren (= in Tour-Tab legen), bzw. deselektieren (= aus Tour-Tab entfernen).  
** Falls Adresse beim Geocodieren nicht erkannt wird => deselektieren und in Liste kennzeichnen.
 
* Kontakte in Liste einzeln selektieren, bzw. deselektieren.
 
* Kontakte in Karte einzeln selektieren, bzw. deselektieren (Farbe ändert von rot auf gelb).
 
* (optional) Kontakte in Karte mit Lasso selektieren.
 
* Bei dieser Gelegenheit: Speichern der IP-Adresse sowie des Upload-Datums (bzw. des Datums des letzten Aufrufs) in der DB. Das kann für Logging und für "Verfalldatum" verwendet werden.
 
  
F2. ''Interaktives Umordnen (in Karte)'': Reihenfolge der Zwischenhalte in der Karte umstellen zur nachträglichen Anpassung der Tour (z.B. Einschränkungen/Abmachungen mit Kunden/Externen, deren Eingabe zu kompliziert wäre): 
+
'''Premium-Funktionen'''
* OpenLayersKnacknuss-Code einbauen (Code von Michael Weibel)! (vgl. [http://wiki.hsr.ch/StefanKeller/wiki.cgi?OpenLayersKnacknuss OpenLayers Knacknuss]).
+
* Möglichkeit, Premium-User einfach (= von Hand?) zu bestimmen. (Zurzeit: M. Rueegg, S. Keller und Lukas Müller).
  
F3. ''Fahrtenzeilen-Ausgabe'' - Routen verbinden zwei Zwischenhalte einer Tour. Diese Fahrten werden beim Download/Export einer Zeile mit einer Fahrtbeschreibung (Abfahrt, Fahrtdauer und Fahrtziel) ausgegeben (vgl. Beispiel unten):
+
== Ideen ==
* Tab/Button "Download":
 
** der Abfahrtszeit im Feld "Abfahrt", Fahrtdauer im Feld "Dauer" und im Feld Name kommt "Fahrt nach <xxx>" (Bsp. vgl. unten).
 
** Die Abfahrtszeit wird mit Abfahrt und Dauer des vorangehenden Zwischenhalts berechnet.
 
** Der Text in Name wird durch den Ort des Nachfolgers ergänzt (Koordinaten falls Ort nicht vorhanden).
 
** Die letzte Zusatzzeile verwendet den Ort (Koordinaten) des Starts. 
 
* Tab/Button  "Upload":
 
** "Fahrtenzeilen" ignorieren (Zeilen, bei denen nur in den ersten beiden Kolonnen Werte sind); Zukunft: Zwischenspeichern?.
 
  
F4. ''Stau-Vermeidung'' - Gibt es bei der internen Bewertung der Tourenplan-Vorschläge (= Liste von Zwischenhalten, deren Abfolge die schnellste Gesamtzeit ergeben) Routen, bei denen Stau prognostiziert ist, so werden alternative Vorschläge bevorzugt. Geht es nicht anders, soll vermerkt weren, dass entlang der Route mit Stau oder stockendem Verkehr zu rechnen ist (man beachte, dass die eigentliche konkrete Umfahrung nicht mit Tourpl geschieht, sondern z.B. unterwegs mittels Navi erfolgt).
+
Adressen:
* Eingabe/Anzeige Abfahrtszeit.
+
* Sämtliche Adressen in Karte darstellen und zur Selektion anbieten.
* Eingabe/Anzeige Aufenthaltsdauer" (Default für Dauer des Aufenthalt bei jedem Zwischenhalt, z.B. 2h).
+
* Interaktives Umordnen (in Karte): Reihenfolge der Zwischenhalte in der Karte umstellen zur nachträglichen Anpassung der Tour (z.B. Einschränkungen/Abmachungen mit Kunden/Externen, deren Eingabe zu kompliziert wäre): OpenLayers-Knacknuss-Code einbauen (Code von Michael Weibel)! (vgl. [http://wiki.hsr.ch/StefanKeller/wiki.cgi?OpenLayersKnacknuss OpenLayers Knacknuss]).
* Vermerk in Bemerkungen(?): falls das auf die Fahrt zu dieser Zeit zutrifft: "Ev. Stau oder stockender Verkehr".
 
  
F5. ''Permalink sowie Ansicht erhalten'':
+
"Demo"-Button:  
* <s>Initial beim Seitenaufruf von tourpl bbox für CH nehmen</s>
+
* Ruft vordefinierte Adressliste => Vorlage oder Permalink sein, der nicht gelöscht werden kann.
* Permalink mit Zoomfaktor, lat/lon Zentrum, aktive Layers (siehe PostGISTerminal)
 
* <s>BBox für einen "Zoom to full extent" berechnen und hereinzomen.</s>
 
* <s>Bei "Drucken" (und anderen Aktionen, wie z.B. "Abbrechen") soll die aktuelle Ansicht erhalten bleiben.</s>
 
  
F6. ''GUI / Verschiedenes'':
+
"Download"-Button:
* Nicht nur Gesamtdistanz sondern die Gesamtreisezeit anzeigen "(54 min./86.96 km)".
+
* Option Garmin Navi: Direktes Herunterladen der Tour als Route auf Garmin-Geräte mittels [http://www.garmin.com/garmin/cms/us/communicatorplugin Garmin Communicator Plugin] (a free Internet browser plugin that sends and retrieves data to and from your Garmin GPS device).  
* Einbau Anzeige Datum+Zeit: siehe [[Diskussion:PostGIS Terminal]].
 
* Bei Exceptions/Fehler einen schönen Dialog anzeigen und zur Startseite zurückkehren.
 
* <s>Tourpl-Logo als Weblink (wie "Home").</s>
 
* <s>Weblink der Werbung hinterlegen, so dass man drauf klicken kann und (z.Zt.) in einem neuen Tab sich http://ambienteverde.ch öffnet</s>
 
* Kleiner Versatz des Balkens oben rechts beim HSR-Logo um ein Pixel beheben (ist ev. mit Icons obsolet).
 
* Bei Umschalten auf bzw. Zoomen von Google Hybrid, den Dialog "Kartendaten: Grafiken (c) 2011 Terrametrics <Schließen>" entfernen. Ist möglicherweise nicht im Sinne von Google, doch die Terms of use lassen ev. zu, dass man einen Copyright-Text separat platziert. Hier eine angebliche Lösung des Problems: "Hide the Google Logo in Google Maps" [http://oelna.de/blog/?p=166].
 
* Kontext-Menu (= "Right Click") in der Karte entweder disablen oder idealerweise mit Funktinen belegen (ähnlich Google Maps) wie "Zoom in, Zoom out, Karte hier zentrieren" (=> vgl. Code auf [[Diskussion:OpenPOIMap]]).
 
 
 
=== Ideen ===
 
  
 
"Upload":
 
"Upload":
 
* CSV-Parser/Reader: Zellen mit unsichtbaren Spaces nach letztem Eintrag sollen ignoriert werden.
 
* CSV-Parser/Reader: Zellen mit unsichtbaren Spaces nach letztem Eintrag sollen ignoriert werden.
 
* Weitere Formate, z.B. Excel (.xlsx) oder Office Calc (.odx)?
 
* Weitere Formate, z.B. Excel (.xlsx) oder Office Calc (.odx)?
* Erläuterungen zum Upload a la Google...: [https://mail.google.com/support/bin/answer.py?answer=12119 CSV in Google Contats importieren].
+
* Erläuterungen zum Upload a la Google...: [https://mail.google.com/support/bin/answer.py?answer=12119 CSV in Google Contacts importieren].
  
 
"Print":
 
"Print":
* Drucken (Druckansicht) = Print View = Drucken mit Liste und Karte
+
* Drucken (Druckansicht) (= Print View); Drucken der Karte mit der Route auf eine A4-Seite angepasst (ev. Variante mit und ohne Routenbeschrieb).
 
* Editieren und Speichern (Druck-)Titel und -Beschreibung  
 
* Editieren und Speichern (Druck-)Titel und -Beschreibung  
  
 
GUI / Statisches Layout:  
 
GUI / Statisches Layout:  
 +
* Hashcode: "Verlässlicher" Hashcode (das letzte Zeichen kann verändert werden und die URL ist immer noch gültig).
 
* Sprachwahl mit zusätzlicher Sprache Französich
 
* Sprachwahl mit zusätzlicher Sprache Französich
 
* Nahe beieinander liegende Marker?
 
* Nahe beieinander liegende Marker?
 
* Icons statt Weblinks in den Tabs (Vorlage, Upload, Download, etc.)
 
* Icons statt Weblinks in den Tabs (Vorlage, Upload, Download, etc.)
 +
* Kontakte in Karte mit Lasso selektieren.
 +
* Bei Google Hybrid den Dialog "Kartendaten: Grafiken (c) 2011 Terrametrics <Schließen>" entfernen. Ist möglicherweise nicht im Sinne von Google, doch die Terms of use lassen ev. zu, dass man einen Copyright-Text separat platziert. Hier eine angebliche Lösung des Problems: "Hide the Google Logo in Google Maps" [http://oelna.de/blog/?p=166].
  
 
Verschiedenes/Allgemeines:
 
Verschiedenes/Allgemeines:
 +
* Zusätzlich zum Start auch Ziel ("Z" / "T") festlegen?
 +
* Tour-Optimieren-Algorithmus: Analyse Simulated Annealing: Warum wechselt die Route ständig bei kleiner Anzahl Zwischenstationen?
 +
* Routenberechnung (OSRM) wählbar: Auto, Velo, Fussgänger.
 +
* Klick auf Icon lässt ein Popup aufklappen.
 +
* Klick auf ein Item in der Liste/Tab (links) klappt ebenfalls ein Popup hoch.
 
* Anzeigen der zuletzt aufgerufenen Touren, so wie das http://bitly.com/ auch macht (mittels Cookie?).
 
* Anzeigen der zuletzt aufgerufenen Touren, so wie das http://bitly.com/ auch macht (mittels Cookie?).
* Marker nicht nur mit Nummer sondern neu auch mit Name beschriften
 
* Logging von "Neu erstellen Tourenplan" und von Löschen.
 
 
* Job robuster machen für weniger Ausfallzeiten à la [[EOSMDBOne]]
 
* Job robuster machen für weniger Ausfallzeiten à la [[EOSMDBOne]]
 
* Werbung verwalten
 
* Werbung verwalten
 
* Weitere Eingabe von Rahmenbedingungen, so dass z.B. eine Tour nur zwischen bestimmten Zwischenhalten optimiert (?)
 
* Weitere Eingabe von Rahmenbedingungen, so dass z.B. eine Tour nur zwischen bestimmten Zwischenhalten optimiert (?)
 
* Verfallzeit: Touren (und deren Adressen), die während eine bestimmten Zeit (z.B. 3 Monate?) nicht mehr gebraucht wurden, werden automatisch gelöscht.
 
* Verfallzeit: Touren (und deren Adressen), die während eine bestimmten Zeit (z.B. 3 Monate?) nicht mehr gebraucht wurden, werden automatisch gelöscht.
 +
* https?
 +
* Feedback: Funktioniert das Kontaktformular? (oder etwas wie http://alternativeto.net/software/uservoice-custumer-feedback-system/?platform=online&license=free z.B. http://idea.informer.com/ , http://userecho.com/pricing/ , http://www.onedesk.com/pricing/ )
 +
 +
''Stau-Vermeidung'' - Gibt es bei der internen Bewertung der Tourenplan-Vorschläge (= Liste von Zwischenhalten, deren Abfolge die schnellste Gesamtzeit ergeben) Routen, bei denen Stau prognostiziert ist, so werden alternative Vorschläge bevorzugt. Geht es nicht anders, soll vermerkt weren, dass entlang der Route mit Stau oder stockendem Verkehr zu rechnen ist (man beachte, dass die eigentliche konkrete Umfahrung nicht mit Tourpl geschieht, sondern z.B. unterwegs mittels Navi erfolgt).
 +
* Eingabe/Anzeige Abfahrtszeit und Datum der geplanten Tour.
 +
* Eingabe/Anzeige Aufenthaltsdauer" (Default für Dauer des Aufenthalt bei jedem Zwischenhalt, z.B. 2h).
 +
* Vermerk in Bemerkungen(?): falls das auf die Fahrt zu dieser Zeit zutrifft: "Ev. Stau oder stockender Verkehr".
 +
* Quelle: Baustellen Stadt Zürich siehe KMZ-Datei ([http://www.stadt-zuerich.ch/ted/de/index/taz/bauen/baustellenliste_a-z/google-earth.html]).
  
Tab Adressen mit Konto/OpenID (MyTourpl) - Verwalten ganze Kontakte-Stamm in sep. Tab.:
+
Tab Adressen mit Konto/OpenID (MyTourpl) - Verwalten ganzer Kontakte-Stamm in sep. Tab.
* Use Cases und Screen Mocks für Anschauen / Editieren Modi (Download "alle Adressen" vs. "nur Tour")
 
 
* Kontakt editieren und neuer hinzufügen.
 
* Kontakt editieren und neuer hinzufügen.
 
* Download ganzer Kontakte-Stamm.
 
* Download ganzer Kontakte-Stamm.
Zeile 129: Zeile 102:
 
** Importieren von MS Exchange-Kontakten
 
** Importieren von MS Exchange-Kontakten
 
** Importieren von Google-Kontakten und anderen Social Software (vgl. [http://openinviter.com/ OpenInviter]).
 
** Importieren von Google-Kontakten und anderen Social Software (vgl. [http://openinviter.com/ OpenInviter]).
 +
 +
;Weitere Ideen zu den Premium-Funktionen (MyTourpl, mit Login):
 +
* Werbefrei
 +
* Support
 +
** Priorisierter Betrieb(?)
 +
** Editieren und Selektieren im Kontakt-Stamm
 +
** Kalender-Anbindung (Google, Outlook, Exchange)
 +
** Version für Mobiles/Smartphones, entweder als Mobile Webapp (Android & iOS, Offline) oder als Webapp (HTML5).
 +
** Download für Routenplaner (GPX-Format)
 +
** Kombination mit Mobility Car Sharing [http://www.mobility.ch/de/pub/so_funktionierts/das_ist_mobility.htm]
 +
* Anbindung an Google Latitude; falls Google Account Login, Benutzer fragen, ob er seine existierenden Touren, die er täglich macht, optimieren möchte? (Idee von Mirko)
  
 
== Spezifikation CSV-Input und -Output ==
 
== Spezifikation CSV-Input und -Output ==
Zeile 143: Zeile 127:
 
** Die Kolonnen Vorname; Telefon; Email und Bemerkungen werden eingelesen und im Download wieder mitgegeben (aber noch nicht angezeigt).
 
** Die Kolonnen Vorname; Telefon; Email und Bemerkungen werden eingelesen und im Download wieder mitgegeben (aber noch nicht angezeigt).
 
** Zeilen, die aus weniger als drei Werte in den Kolonnen haben, werden ignoriert. Das betrifft konkret auch die Wegbeschreibung (vgl. dort) des Outputs.
 
** Zeilen, die aus weniger als drei Werte in den Kolonnen haben, werden ignoriert. Das betrifft konkret auch die Wegbeschreibung (vgl. dort) des Outputs.
 +
* <s>Header-Zeile anpassen (alt => neu) - Premiumservices, Presse, Feedback-> alles Links zum Wiki. Impressum: gleicher Link wie Kontakt.
 +
  Home | Twitter | Über | AGB | Datenschutz | Hilfe | Kontakt
 +
  Home | Über | Premiumservices | Presse | AGB | Datenschutz | Hilfe | Feedback | Impressum</s>
  
 
Kolonnen/Felder für CSV-Download/Druckansicht:
 
Kolonnen/Felder für CSV-Download/Druckansicht:
Zeile 159: Zeile 146:
 
Beispiel für CSV-Download/Druckansicht mit Wegbeschreibung (man beachte auch neue Reihenfolge der Kolonnen!): (Vorgabe Dauer bei Zwischenhalt ist 01:00h; und Vorgabe Dauer bei "Reise nach..." ist 0:30h).
 
Beispiel für CSV-Download/Druckansicht mit Wegbeschreibung (man beachte auch neue Reihenfolge der Kolonnen!): (Vorgabe Dauer bei Zwischenhalt ist 01:00h; und Vorgabe Dauer bei "Reise nach..." ist 0:30h).
 
   X;Abfahrt;Dauer;Name                    ;Strasse        ;Ort        ;PLZ ; Land    ;Vorname; Anrede; Telefon; Email; Bemerkungen; Koordinaten
 
   X;Abfahrt;Dauer;Name                    ;Strasse        ;Ort        ;PLZ ; Land    ;Vorname; Anrede; Telefon; Email; Bemerkungen; Koordinaten
   X;08:00 ;     ;"Schreinerei"            ;"Jonastrasse 8" ;"Wald ZH"  ;8636;"Schweiz"; ; ; ; ; ;"47.27613,8.91014"
+
   X;08:00 ;00:00 ;"Schreinerei"            ;"Jonastrasse 8" ;"Wald ZH"  ;8636;"Schweiz"; ; ; ; ; ;"47.27613,8.91014"
   ;08:00 ;00:30 ;"Fahrt nach Rapperswil" ;;;;;;;;;
+
   ;08:00 ;00:35 ;"Reise von Wald ZH nach Rapperswil";;;;;;;;;
 
   X;08:30 ;01:00 ;"HSR"                    ;"Oberseestr. 10";"Rapperswil";8640:"Schweiz"; ; ; ; ; ;"47.22306,8.81651"
 
   X;08:30 ;01:00 ;"HSR"                    ;"Oberseestr. 10";"Rapperswil";8640:"Schweiz"; ; ; ; ; ;"47.22306,8.81651"
   ;09:30 ;00:30 ;"Fahrt nach Wollerau"   ;;;;;;;;;
+
   ;09:30 ;00:33 ;"Reise von Rapperswil nach Wollerau";;;;;;;;;
 
   X;10:00 ;01:00 ;"Conrad Electronic"      ;Roosstrasse 53" ;"Wollerau"  ;8832;"Schweiz"; ; ; ; ; ;"47.18978,8.72249"
 
   X;10:00 ;01:00 ;"Conrad Electronic"      ;Roosstrasse 53" ;"Wollerau"  ;8832;"Schweiz"; ; ; ; ; ;"47.18978,8.72249"
   ;11:00 ;00:30 ;"Rückfahrt nach Wald ZH" ;;;;;;;;;
+
   ;11:00 ;00:31 ;"Reise von Wollerau nach Wald ZH";;;;;;;;;
  X;11:30 ;      ;"Schreinerei"            ;"Jonastrasse 8" ;"Wald ZH"  ;8636;"Schweiz"; ; ; ; ; ;"47.27613,8.91014"
 
  
 
== History ==
 
== History ==
 +
 +
* Adresse löschen.
 +
* Adresse ad-hoc textuell erfassen (Adress-Tab aktiv).
 +
* Adresse ad-hoc mit Koordinate erfassen: Bei Angabe von Koordinaten entweder eine Mittelsenkrechte auf die nächste Strasse oder eine Geradenverbindung zum nächstgelegenen Strassenendpunkt berechnen.
 +
* Login mit OpenID etc.
 +
* Premium-Funktion: Begrenzung auf 10 Adressen.
 +
 +
Adressen:
 +
* <s>Bug: Statt "Data 24.01.2012 CC-By-SA by OpenStreetMap" neu "Daten 24.01.2012 ODbL by OpenStreetMap".</s>
 +
* <s>Bug: "Verbessern" (bzw. neu "Schnelle Route", "Tour-Optimieren-Algorithmus (F4)"): Start bleibt nicht erhalten. Vgl. [http://www.tourpl.ch/KFjBGgQDQ_exDuMm4MpbHQ].</s>
 +
* <s>Anzeige von "Service Unavailable" (u.a. bei http error 503 von OSMDBOne).</s>
 +
* <s>Tab "Drucken" entfernen.</s>
 +
* <s>Nach Button "Hin- und Rückfahrt" / "Einfache Fahrt" soll Fokus auf Tab "Tour-Tab" legen</s>
 +
* <s>Vorlage mit korrekten Umlauten (UTF-8 BOM!).</s>
 +
* <s>Fusszeile anpassen  (alt => neu) - twitter-Logo analog openpoimap.ch aber blau:
 +
  © HSR Hochschule für Technik Rapperswil · Data 20.07.2011 12:00 ODbL by OpenStreetMap
 +
  © Geometa Lab HSR · Data 20.07.2011 12:00 ODbL by OpenStreetMap · twitter</s>
 +
* <s>Alle Adressen werden in Adress-Tab dargestellt (Tour = eigener Layer?). Im Upload enthaltene Tourpl-Feld berücksichtigen: Start "S" und "X".</s>
 +
* <s>Adressen in Karte einzeln selektieren, bzw. deselektieren (Symbol ändert Farbe).</s>
 +
* <s>Adresse ad-hoc in Karte per Mausklick erfassen (= Reverse Geocoding, d.h. suche nächstgelegene Adresse vgl. [http://developer.yahoo.com/geo/placefinder/ Yahoo Placefinder]). Achtung: Das Reverse Geocoding kann ev. mehrer Adressen zurückgeben: Anzeigen "Mehrere Adressen gefunden: Bitte näher hereinzoomen!". Falls auf grösser Zoomstufe immer derjenige mit dem besten Match.</s>
  
 
Erste Use Cases (vgl. [http://wiki.hsr.ch/StefanKeller/wiki.cgi?Tourpl Tourpl-Tagesrapport]):
 
Erste Use Cases (vgl. [http://wiki.hsr.ch/StefanKeller/wiki.cgi?Tourpl Tourpl-Tagesrapport]):
Zeile 210: Zeile 216:
 
* Verschiedenes:
 
* Verschiedenes:
 
** <s>http://labs.geometa.info/tourpl/ löschen</s>
 
** <s>http://labs.geometa.info/tourpl/ löschen</s>
 +
 +
GUI:
 +
* <s>Der IE Explorer 8 stellt die Karte rechts statt unterhalb der Tabs/Buttons dar.</s>
 +
* <s>Nach visuellem Umordnen der Liste oder in der Karte muss die Gesamtdistanz neu berechnet werden.</s>
 +
* <s>Nicht nur Gesamtdistanz sondern die Gesamtreisezeit anzeigen "(54 min./86.96 km)".</s>
 +
* <s>Bei Exceptions/Fehler einen schönen Dialog anzeigen und zur Startseite zurückkehren.</s>
 +
* <s>Tourpl-Logo als Weblink (wie "Home").</s>
 +
* <s>Wartedialog auch bei Upload anzeigen.</s>
 +
* <s>Weblink der Werbung hinterlegen, so dass man drauf klicken kann und (z.Zt.) in einem neuen Tab sich http://ambienteverde.ch öffnet</s>
 +
* <s>Kleiner Versatz des Balkens oben rechts beim HSR-Logo um ein Pixel beheben (ist ev. mit Icons obsolet).</s>
 +
* <s>Bei Routen die OSRM nicht auflösen kann, Luftlinie nehmen</s>
 +
* <s>Kontext-Menu (= "Right Click") in der Karte mit Funktionen belegen (z.B. ähnlich Google Maps wie "Zoom in, Zoom out, Karte hier zentrieren" => vgl. Code auf [[Diskussion:OpenPOIMap]]).</s>
 +
* <s>Jenkins-Build für Tourpl auf geometa.hsr.ch einrichten</s>
 +
* <s>Aufruf von Tourpl mit falscher URL/Hashcode zeigt eine Warnung an (anstelle nichts tun wie aktuell).</s>
 +
 +
<s>
 +
''Fahrtenzeilen-Ausgabe'' - Routen verbinden zwei Zwischenhalte einer Tour. Diese Fahrten werden beim Download/Export einer Zeile mit einer Fahrtbeschreibung (Abfahrt, Fahrtdauer und Fahrtziel) ausgegeben (vgl. Beispiel unten):
 +
* Tab/Button "Download":
 +
** der Abfahrtszeit im Feld "Abfahrt", Fahrtdauer im Feld "Dauer" und im Feld Name kommt "Fahrt nach <xxx>" (Bsp. vgl. unten).
 +
** Die Abfahrtszeit wird mit Abfahrt und Dauer des vorangehenden Zwischenhalts berechnet.
 +
** Der Text in Name wird durch den Ort des Nachfolgers ergänzt (Koordinaten falls Ort nicht vorhanden).
 +
** Die letzte Zusatzzeile verwendet den Ort (Koordinaten) des Starts. 
 +
* Tab/Button  "Upload":
 +
** "Fahrtenzeilen" ignorieren (Zeilen, bei denen nur in den ersten beiden Kolonnen Werte sind); Zukunft: Zwischenspeichern?.
 +
</s>
 +
 +
Chronologisch ab 31.3.2012 (unten anhängen):
 +
* <s>Initial beim Seitenaufruf von tourpl bbox für CH nehmen</s>
 +
* <s>BBox für einen "Zoom to full extent" berechnen und hereinzomen.</s>
 +
* <s>Bei "Drucken" (und anderen Aktionen, wie z.B. "Abbrechen") soll die aktuelle Ansicht erhalten bleiben.</s>
 +
* <s>Logging, vgl. IFS Wiki.</s> - erledigt mit Piwik von HSR --[[Benutzer:Stefan|Stefan]] 00:19, 1. Apr. 2012 (CEST)
 +
* <s>Anstelle Tab „Verbessern“ zwei Tabs „Hin- und Rückfahrt“ und  „Einfache Fahrt“. Das wird dann ergänzend bei/unterhalb „Adressen“ links angezeigt als „Schnellste Hin- und Rückfahrt“ und „Schnellste einfache Fahrt“.</s>
 +
* <s>Alle, die beim im Tourpl-Feld "X" haben für die Tour selektieren.</s>

Aktuelle Version vom 29. September 2014, 13:50 Uhr

Wichtige Websites:

Stand und Weiterentwicklung

Aktueller Stand
Die Funktionalität wird zurzeit laufend erweitert - ausser "grosse Erweiterungen", wie z.B. eine Adressverwaltung, die wir gerne über unsere Premium-Services realisieren.
Was gibt es für Alternativen zu tourpl?
Keine, die kostenlos ist, wie Tourpl. Und keine, die vor hat, Stau-Informationen zu integrieren. Für grössere Aufgaben in der Logistil, die häufig mit komplexen Touren zu tun habe, ist uns folgende kostenpflichtige Software bekannt:
  • "Online Tourenplaner" gb consite GmbH [1]
  • smartTour - Desktop-Programm (Client) zur kurzfristigen und dynamischen Planung Touren und Reisen [2].
  • Portatour [3], rexx [4], Hermes [5], Tourenplanungssystems CATRIN [6], PRA'CAR 3000 [7], mapandguide.com [8].

Task List

Erledigtes unten in History einordnen.

Bugs/Errors

  • Authentifizierung mit OpenID
    • {"error": "Error fetching XRDS document: (7, 'Failed to connect to 2001:620:130:a036::121: Network is unreachable')"}
    • {"error": "No template named error"}
  • Bei zu kleinen Window-Auflösungen wird die Karte ganz unterhalb (und damit ausserhalb) des Layouts gezeigt. Man hat den Eindruck, dass die Karte weg ist und jede Interaktion wird unmöglich.
  • Karte (OpenLayers) verschwindet nach unten, wenn Breite zu schmal.
  • Daten seit 02.06.2014 05:06 nicht mehr aktualisiert?

Features

1. Priorität

  • Nachträgliches Umsortieren der Adressen (über Tabelle links).

Nice to have (T1):

  • Neue Reihenfolge der Felder: Tourpl, (Abfahrt,) (Dauer,) Name, Vorname, Anrede, Strasse, PLZ, Ort, Telefon, Bemerkungen, (Mail) (Koordinaten).
  • Funktion Permalink: Speichert URL mit Zoomfaktor, lat/lon (Zentrum) und aktive Layers (siehe u.a. PostGIS-Terminal)
  • Funktion "Zoom-to-extent" als OpenLayers-Standard-Button "Weltkugel" (vgl. den Button zwischen den Zoom-Pfeilen auf http://openpoimap.ch/ )
  • GUI (Tabs/Buttons 'Vorlage', 'Upload', 'Download', etc.) mit einheitlicher Schrift.

Adressen-Tab + Tour-Tab (T2): Adress-Liste und Tour-Liste als Tabs darstellen, daraus Zwischenhalte selektieren und zur Tour hinzufügen, bzw. entfernen:

  • In Tour selektierte Adressen farblich kennzeichnen
  • Falls Adresse beim Geocodieren nicht erkannt wird => aus Tour entfernen und kennzeichnen.
  • Adress-Tab aktiv:
    • Adressen in Liste einzeln selektieren (= in Tour-Tab legen), bzw. deselektieren (= aus Tour-Tab entfernen).

Premium-Funktionen

  • Möglichkeit, Premium-User einfach (= von Hand?) zu bestimmen. (Zurzeit: M. Rueegg, S. Keller und Lukas Müller).

Ideen

Adressen:

  • Sämtliche Adressen in Karte darstellen und zur Selektion anbieten.
  • Interaktives Umordnen (in Karte): Reihenfolge der Zwischenhalte in der Karte umstellen zur nachträglichen Anpassung der Tour (z.B. Einschränkungen/Abmachungen mit Kunden/Externen, deren Eingabe zu kompliziert wäre): OpenLayers-Knacknuss-Code einbauen (Code von Michael Weibel)! (vgl. OpenLayers Knacknuss).

"Demo"-Button:

  • Ruft vordefinierte Adressliste => Vorlage oder Permalink sein, der nicht gelöscht werden kann.

"Download"-Button:

  • Option Garmin Navi: Direktes Herunterladen der Tour als Route auf Garmin-Geräte mittels Garmin Communicator Plugin (a free Internet browser plugin that sends and retrieves data to and from your Garmin GPS device).

"Upload":

  • CSV-Parser/Reader: Zellen mit unsichtbaren Spaces nach letztem Eintrag sollen ignoriert werden.
  • Weitere Formate, z.B. Excel (.xlsx) oder Office Calc (.odx)?
  • Erläuterungen zum Upload a la Google...: CSV in Google Contacts importieren.

"Print":

  • Drucken (Druckansicht) (= Print View); Drucken der Karte mit der Route auf eine A4-Seite angepasst (ev. Variante mit und ohne Routenbeschrieb).
  • Editieren und Speichern (Druck-)Titel und -Beschreibung

GUI / Statisches Layout:

  • Hashcode: "Verlässlicher" Hashcode (das letzte Zeichen kann verändert werden und die URL ist immer noch gültig).
  • Sprachwahl mit zusätzlicher Sprache Französich
  • Nahe beieinander liegende Marker?
  • Icons statt Weblinks in den Tabs (Vorlage, Upload, Download, etc.)
  • Kontakte in Karte mit Lasso selektieren.
  • Bei Google Hybrid den Dialog "Kartendaten: Grafiken (c) 2011 Terrametrics <Schließen>" entfernen. Ist möglicherweise nicht im Sinne von Google, doch die Terms of use lassen ev. zu, dass man einen Copyright-Text separat platziert. Hier eine angebliche Lösung des Problems: "Hide the Google Logo in Google Maps" [9].

Verschiedenes/Allgemeines:

  • Zusätzlich zum Start auch Ziel ("Z" / "T") festlegen?
  • Tour-Optimieren-Algorithmus: Analyse Simulated Annealing: Warum wechselt die Route ständig bei kleiner Anzahl Zwischenstationen?
  • Routenberechnung (OSRM) wählbar: Auto, Velo, Fussgänger.
  • Klick auf Icon lässt ein Popup aufklappen.
  • Klick auf ein Item in der Liste/Tab (links) klappt ebenfalls ein Popup hoch.
  • Anzeigen der zuletzt aufgerufenen Touren, so wie das http://bitly.com/ auch macht (mittels Cookie?).
  • Job robuster machen für weniger Ausfallzeiten à la EOSMDBOne
  • Werbung verwalten
  • Weitere Eingabe von Rahmenbedingungen, so dass z.B. eine Tour nur zwischen bestimmten Zwischenhalten optimiert (?)
  • Verfallzeit: Touren (und deren Adressen), die während eine bestimmten Zeit (z.B. 3 Monate?) nicht mehr gebraucht wurden, werden automatisch gelöscht.
  • https?
  • Feedback: Funktioniert das Kontaktformular? (oder etwas wie http://alternativeto.net/software/uservoice-custumer-feedback-system/?platform=online&license=free z.B. http://idea.informer.com/ , http://userecho.com/pricing/ , http://www.onedesk.com/pricing/ )

Stau-Vermeidung - Gibt es bei der internen Bewertung der Tourenplan-Vorschläge (= Liste von Zwischenhalten, deren Abfolge die schnellste Gesamtzeit ergeben) Routen, bei denen Stau prognostiziert ist, so werden alternative Vorschläge bevorzugt. Geht es nicht anders, soll vermerkt weren, dass entlang der Route mit Stau oder stockendem Verkehr zu rechnen ist (man beachte, dass die eigentliche konkrete Umfahrung nicht mit Tourpl geschieht, sondern z.B. unterwegs mittels Navi erfolgt).

  • Eingabe/Anzeige Abfahrtszeit und Datum der geplanten Tour.
  • Eingabe/Anzeige Aufenthaltsdauer" (Default für Dauer des Aufenthalt bei jedem Zwischenhalt, z.B. 2h).
  • Vermerk in Bemerkungen(?): falls das auf die Fahrt zu dieser Zeit zutrifft: "Ev. Stau oder stockender Verkehr".
  • Quelle: Baustellen Stadt Zürich siehe KMZ-Datei ([10]).

Tab Adressen mit Konto/OpenID (MyTourpl) - Verwalten ganzer Kontakte-Stamm in sep. Tab.

  • Kontakt editieren und neuer hinzufügen.
  • Download ganzer Kontakte-Stamm.
  • Kontakte synchronisieren/anbinden (zusätzlich zum CSV-Upload)
  • Importieren von Outlook-Kontakten (mit Plugin; funktioniert für Outlook 2007 und 2010; Realisierungsansatz: SmartClient AddIn für Microsoft Outlook).
    • Importieren von MS Exchange-Kontakten
    • Importieren von Google-Kontakten und anderen Social Software (vgl. OpenInviter).
Weitere Ideen zu den Premium-Funktionen (MyTourpl, mit Login)
  • Werbefrei
  • Support
    • Priorisierter Betrieb(?)
    • Editieren und Selektieren im Kontakt-Stamm
    • Kalender-Anbindung (Google, Outlook, Exchange)
    • Version für Mobiles/Smartphones, entweder als Mobile Webapp (Android & iOS, Offline) oder als Webapp (HTML5).
    • Download für Routenplaner (GPX-Format)
    • Kombination mit Mobility Car Sharing [11]
  • Anbindung an Google Latitude; falls Google Account Login, Benutzer fragen, ob er seine existierenden Touren, die er täglich macht, optimieren möchte? (Idee von Mirko)

Spezifikation CSV-Input und -Output

Kolonnen/Felder für CSV-Upload/Input (fett obligatorisch):

  • Kolonnen-Namen: Name; Vorname; Anrede; Strasse; PLZ; Ort; Land; Telefon; Email; Koordinaten; Tourpl; Bemerkungen.
  • Mitzugeben sind mind. die Felder Name; sowie entweder 1. Adresse; PLZ; Ort; (ev. Land) oder 2. Koordinaten.
  • Felder/Kolonnen gehen keine verloren, wenn sie wie oben angegeben heissen (Case Insensitive) - ausser die Felder 'Abfahrt' und 'Dauer'.
  • Die Felder 'Abfahrt' und Dauer werden beim Druck/Download überschrieben mit neuen Tourenangaben.
  • Feld-Delimiter ist Strichpunkt, Komma, oder Tab. Strings-Delimiter ist Anführungszeichen.
  • Die Reihenfolge der Kolonnen ist irrelevant.
  • Für den mehrmaligen Upload, sollte der Upload/Import zusätzlich imstande sein, wie folgt mit dem Input umzugehen:
    • Die Kolonnen 'Abfahrt' und Dauer: Inhalt wird gelöscht und überschrieben.
    • Die Kolonnen Vorname; Telefon; Email und Bemerkungen werden eingelesen und im Download wieder mitgegeben (aber noch nicht angezeigt).
    • Zeilen, die aus weniger als drei Werte in den Kolonnen haben, werden ignoriert. Das betrifft konkret auch die Wegbeschreibung (vgl. dort) des Outputs.
  • Header-Zeile anpassen (alt => neu) - Premiumservices, Presse, Feedback-> alles Links zum Wiki. Impressum: gleicher Link wie Kontakt.
 Home | Twitter | Über | AGB | Datenschutz | Hilfe | Kontakt 
 Home | Über | Premiumservices | Presse | AGB | Datenschutz | Hilfe | Feedback | Impressum

Kolonnen/Felder für CSV-Download/Druckansicht:

  • Alle eingelesenen Kolonnen. Reihenfolge der Kolonnen...
  • Kolonnen-Namen: Abfahrt; Dauer; Name; Vorname; Anrede; Adresse; PLZ; Ort; Land; Telefon; Email; Koordinaten; Bemerkungen.
  • Der Feld-Delimiter ist Strichpunkt. Strings-Delimiter ist Anführungszeichen (später als Option?).
  • Das Feld 'Abfahrt' enthält die Tageszeit-Angabe, wann die Tour weitergeht zum nächsten Zwischenhalt.
  • Das Feldformat für Koordinaten ist Lat/Lon.

Beispiel für CSV-Upload/Input:

 Strasse            ;Ort          ;PLZ  ;Land      ;Name
 "Oberseestr. 10"   ;"Rapperswil" ;8640 ;"Schweiz" ;"HSR"
 "Jonastrasse 8"    ;"Wald ZH"    ;8636 ;"Schweiz" ;"Schreinerei"
 "Roosstrasse 53"   ;"Wollerau"   ;8832 ;"Schweiz" ;"Conrad Electronic" 

Beispiel für CSV-Download/Druckansicht mit Wegbeschreibung (man beachte auch neue Reihenfolge der Kolonnen!): (Vorgabe Dauer bei Zwischenhalt ist 01:00h; und Vorgabe Dauer bei "Reise nach..." ist 0:30h).

 X;Abfahrt;Dauer;Name                     ;Strasse         ;Ort         ;PLZ ; Land    ;Vorname; Anrede; Telefon; Email; Bemerkungen; Koordinaten
 X;08:00 ;00:00 ;"Schreinerei"            ;"Jonastrasse 8" ;"Wald ZH"   ;8636;"Schweiz"; ; ; ; ; ;"47.27613,8.91014"
  ;08:00 ;00:35 ;"Reise von Wald ZH nach Rapperswil";;;;;;;;;
 X;08:30 ;01:00 ;"HSR"                    ;"Oberseestr. 10";"Rapperswil";8640:"Schweiz"; ; ; ; ; ;"47.22306,8.81651"
  ;09:30 ;00:33 ;"Reise von Rapperswil nach Wollerau";;;;;;;;;
 X;10:00 ;01:00 ;"Conrad Electronic"      ;Roosstrasse 53" ;"Wollerau"  ;8832;"Schweiz"; ; ; ; ; ;"47.18978,8.72249"
  ;11:00 ;00:31 ;"Reise von Wollerau nach Wald ZH";;;;;;;;;

History

  • Adresse löschen.
  • Adresse ad-hoc textuell erfassen (Adress-Tab aktiv).
  • Adresse ad-hoc mit Koordinate erfassen: Bei Angabe von Koordinaten entweder eine Mittelsenkrechte auf die nächste Strasse oder eine Geradenverbindung zum nächstgelegenen Strassenendpunkt berechnen.
  • Login mit OpenID etc.
  • Premium-Funktion: Begrenzung auf 10 Adressen.

Adressen:

  • Bug: Statt "Data 24.01.2012 CC-By-SA by OpenStreetMap" neu "Daten 24.01.2012 ODbL by OpenStreetMap".
  • Bug: "Verbessern" (bzw. neu "Schnelle Route", "Tour-Optimieren-Algorithmus (F4)"): Start bleibt nicht erhalten. Vgl. [12].
  • Anzeige von "Service Unavailable" (u.a. bei http error 503 von OSMDBOne).
  • Tab "Drucken" entfernen.
  • Nach Button "Hin- und Rückfahrt" / "Einfache Fahrt" soll Fokus auf Tab "Tour-Tab" legen
  • Vorlage mit korrekten Umlauten (UTF-8 BOM!).
  • Fusszeile anpassen (alt => neu) - twitter-Logo analog openpoimap.ch aber blau:
 © HSR Hochschule für Technik Rapperswil · Data 20.07.2011 12:00 ODbL by OpenStreetMap
 © Geometa Lab HSR · Data 20.07.2011 12:00 ODbL by OpenStreetMap · twitter
  • Alle Adressen werden in Adress-Tab dargestellt (Tour = eigener Layer?). Im Upload enthaltene Tourpl-Feld berücksichtigen: Start "S" und "X".
  • Adressen in Karte einzeln selektieren, bzw. deselektieren (Symbol ändert Farbe).
  • Adresse ad-hoc in Karte per Mausklick erfassen (= Reverse Geocoding, d.h. suche nächstgelegene Adresse vgl. Yahoo Placefinder). Achtung: Das Reverse Geocoding kann ev. mehrer Adressen zurückgeben: Anzeigen "Mehrere Adressen gefunden: Bitte näher hereinzoomen!". Falls auf grösser Zoomstufe immer derjenige mit dem besten Match.

Erste Use Cases (vgl. Tourpl-Tagesrapport):

  • UC1 "Tour erstellen": User: Adressliste vorbereiten (CSV-Format) - Upload Adressliste
  • UC5 "Neue Tour eröffnen" User: Button "Neu", Neueinstieg über Startseite
    • System: Eröffnet neue Tour: ** tour_id generiert (verkürzte uuid); Längen- und Breitengrade ergänzt durch Yahoo Geocoding; dann in sqlite DB persistieren
    • Umleitung uf tourpl.ch/?id=tour_id (besser direkt im Pfad à la Doodle)
    • Darstellung gemäss Reihenfolge Adressliste mit openlayers in Karte (Markers numerisch und mit Name) und mit JQuery in Liste
  • UC3 "Tour optimieren lassen" (Prio 3) User: Wählt "Optimieren". System: Berechnet Liste neu mit TSP-Heuristik und (vorläufig) direkte Distanzen zwischen den 'Posten'.
  • UC4 "Tour download" (CVS-Datei): User: Wählt "Download". System: Defaults Start um 08:00 Uhr, Aufenthalt 1h
  • Upload:
    • Felder "Anrede", "Email", "Telefon" und "Koordinate" sollten nicht obligatorisch sein, ggf. auch "Land" ("Land" und "Koordinate" ggf. erzeugen).
    • Adresse "Muster, Max, Dorfstrasse 100, 8105, Watt" => Gibt Error wegen "Dorfstrasse 100, 8105, Watt" (AttributeError "no such child: {http://www.opengis.net/kml/2.2}Placemark" in lxml.objectify._lookupChildOrRaise (src/lxml/lxml.objectify.c:5310), line 484)
    • Test mit realistischem Datensatz mit > 50 Adressen (tourpl_stud_test_alle.csv )
    • Permalink ohne "=", d.h. neu mit "no padding" ("=") (Standard "Base32, uppercase" ist ok und lässt das zu). Sonst kann der Link nicht in Mails verschickt werden. => Sorry: Wollte schreiben lowercase (also "Base32, lowercase, no padding")
    • Umlaute auch in ANSI/cp1251 (MS Excel).
    • Berücksichtigen derjenigen Kontakte, die im Tourpl-Feld einen Wert (ein "X") haben (Feldname und Inhalt case insensitive).
    • Falls es kein Tourpl-Feld gibt, so sollen - wie bisher - alle Adressen importiert werden
    • Feldname darf "Adresse" oder neu "Strasse" heissen.
    • Robusterer CSV-Upload (Reader), u.a. mit Leerzeilen, etc..
    • Wenn die CSV-Vorlage in MS Excel (unter Windows) importiert und wieder gespeichert (bzw. als CSV exportiert) wird, gibt es immer noch Fehler beim Upload in Tourpl. Das Problem scheint die Codierung zu sein: Die Vorlage hat Filecodierung UNIX/ANSI und nach Speicherung durch Excel hat es PC/ANSI.
  • Löschen:
    • Sicherheitsrückfrage ("Wollen Sie wirklich löschen? Ok (Abbrechen)").
  • Tab/Button "Verbessern" (Tour optimieren):
    • BUG: Der neue Algo. (mit < 20 Adressen) verändert den Startpunkt (Test http://www.tourpl.ch/v5yq4esjuvda7iicmd3nktp2ry )
    • mit Sicherheitsrückfrage ("Diese Funktion verändert die Reihenfolge. Fortfahren? (Abbrechen)").
    • mit Warte-Dialog! (graue Fläche über die Karte mit zentrierter Schrift "Bitte warten...").
    • Einbau von Brute Force Algo für Touren mit max. 10 Städten (10! ist wahrscheinlich vernünftige obere Grenze)
    • Alle Tabs/Buttons ausser "Drucken" in Fettschrift, also: | Vorlage | Upload | Download | Drucken | Löschen | Verbessern |
  • GUI:
    • Anzeige wahlweise OpenStreetMap oder Google Satellit. => "Google Hybrid" ([13]) ist noch besser - und ohne das komische Feld "Kartendaten: Grafiken (c) 2011 Terrametrics <Schließen>"
    • Die Layernamen sollen anstelle "lines" und "Markers" neu heissen "Tour" und "Adressnummer"
    • Anzeige Name - Ort (statt "Adresse" /Strasse).
    • Nach Umarrangieren und "Verbessern" soll der aktuelle Ausschnitt der Karte erhalten bleiben.
  • Statisches Layout:
    • Werbung einbauen, ev. Layout (CSS) anpassen. Banner im Format "Wide Skyscraper" (gem. Standard-Werbeform IAB), d.h. 160 Pixel breit x 600 Pixel hoch, max. 50 kB, Dateiformate GIF, PNG, JPEG. Es kann auch ein animiertes SWF sein.
    • Neues FavIcon einbauen
  • Verschiedenes:

GUI:

  • Der IE Explorer 8 stellt die Karte rechts statt unterhalb der Tabs/Buttons dar.
  • Nach visuellem Umordnen der Liste oder in der Karte muss die Gesamtdistanz neu berechnet werden.
  • Nicht nur Gesamtdistanz sondern die Gesamtreisezeit anzeigen "(54 min./86.96 km)".
  • Bei Exceptions/Fehler einen schönen Dialog anzeigen und zur Startseite zurückkehren.
  • Tourpl-Logo als Weblink (wie "Home").
  • Wartedialog auch bei Upload anzeigen.
  • Weblink der Werbung hinterlegen, so dass man drauf klicken kann und (z.Zt.) in einem neuen Tab sich http://ambienteverde.ch öffnet
  • Kleiner Versatz des Balkens oben rechts beim HSR-Logo um ein Pixel beheben (ist ev. mit Icons obsolet).
  • Bei Routen die OSRM nicht auflösen kann, Luftlinie nehmen
  • Kontext-Menu (= "Right Click") in der Karte mit Funktionen belegen (z.B. ähnlich Google Maps wie "Zoom in, Zoom out, Karte hier zentrieren" => vgl. Code auf Diskussion:OpenPOIMap).
  • Jenkins-Build für Tourpl auf geometa.hsr.ch einrichten
  • Aufruf von Tourpl mit falscher URL/Hashcode zeigt eine Warnung an (anstelle nichts tun wie aktuell).

Fahrtenzeilen-Ausgabe - Routen verbinden zwei Zwischenhalte einer Tour. Diese Fahrten werden beim Download/Export einer Zeile mit einer Fahrtbeschreibung (Abfahrt, Fahrtdauer und Fahrtziel) ausgegeben (vgl. Beispiel unten):

  • Tab/Button "Download":
    • der Abfahrtszeit im Feld "Abfahrt", Fahrtdauer im Feld "Dauer" und im Feld Name kommt "Fahrt nach <xxx>" (Bsp. vgl. unten).
    • Die Abfahrtszeit wird mit Abfahrt und Dauer des vorangehenden Zwischenhalts berechnet.
    • Der Text in Name wird durch den Ort des Nachfolgers ergänzt (Koordinaten falls Ort nicht vorhanden).
    • Die letzte Zusatzzeile verwendet den Ort (Koordinaten) des Starts.
  • Tab/Button "Upload":
    • "Fahrtenzeilen" ignorieren (Zeilen, bei denen nur in den ersten beiden Kolonnen Werte sind); Zukunft: Zwischenspeichern?.

Chronologisch ab 31.3.2012 (unten anhängen):

  • Initial beim Seitenaufruf von tourpl bbox für CH nehmen
  • BBox für einen "Zoom to full extent" berechnen und hereinzomen.
  • Bei "Drucken" (und anderen Aktionen, wie z.B. "Abbrechen") soll die aktuelle Ansicht erhalten bleiben.
  • Logging, vgl. IFS Wiki. - erledigt mit Piwik von HSR --Stefan 00:19, 1. Apr. 2012 (CEST)
  • Anstelle Tab „Verbessern“ zwei Tabs „Hin- und Rückfahrt“ und „Einfache Fahrt“. Das wird dann ergänzend bei/unterhalb „Adressen“ links angezeigt als „Schnellste Hin- und Rückfahrt“ und „Schnellste einfache Fahrt“.
  • Alle, die beim im Tourpl-Feld "X" haben für die Tour selektieren.