Michail Tziotis - Postgraduate Diploma Thesis - An Intermodal ...
Michail Tziotis - Postgraduate Diploma Thesis - An Intermodal ...
Michail Tziotis - Postgraduate Diploma Thesis - An Intermodal ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
ΔΘΝΗΚΟ ΜΔΣΟΒΗΟ ΠΟΛΤΣΔΥΝΔΗΟ<br />
ΓΗΑΣΜΖΜΑΣΗΚΟ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΗΑΚΩΝ ΠΟΤΓΩΝ<br />
“ΓΔΩΠΛΖΡΟΦΟΡΗΚΖ”<br />
ΜΔΣΑΠΣΤΥΙΑΚΗ ΔΡΓΑΙΑ:<br />
ΓΖΜΗΟΤΡΓΗΑ ΔΝΟ ΥΔΓΗΑΣΖ ΣΑΞΗΓΗΩΝ ΜΔ ΜΜΜ<br />
ΓΗΑ ΣΟΤ ΔΠΗΚΔΠΣΔ ΣΖ ΑΘΖΝΑ<br />
ΔΠΗΒΛΔΠΩΝ: ΣΗΜΟΛΔΩΝ ΔΛΛΖ – ΚΑΘΖΓΖΣΖ Δ.Μ.Π.<br />
ΜΗΥΑΖΛ ΣΕΗΩΣΖ<br />
ΓΔΚΔΜΒΡΙΟ 2010
v MT2.1.1el /20110310
THESIS:<br />
National Technical University of Athens<br />
<strong>Postgraduate</strong> Studies Programme on<br />
“Geoinformatics”<br />
DEVELOPMENT OF AN INTERMODAL JOURNEY PLANNER<br />
FOR THE VISITORS OF ATHENS<br />
SUPERVISOR: TIMOLEON SELLIS – PROF. N.T.U.A.<br />
MICHAIL TZIOTIS<br />
DECEMBER 2010
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
i
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ΜΗΝ ΕΚΤΥΠΩΝΕΤΕ ‘Η ΦΩΤΟΤΥΠΕΙΤΕ<br />
ΑΝ ΔΕΝ ΕΙΝΑΙ ΑΠΑΡΑΙΤΗΤΟ<br />
ii
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
iii
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ύνοψη<br />
Η Εργασία που αναλύεται στο παρόν τεύχος αποτελεί την Διπλωματική Εργασία για το Μεταπτυχιακό<br />
Πρόγραμμα πουδών ―Γεωπληροφορική‖ τού Εθνικού Μετσόβιου Πολυτεχνείου.<br />
Αντικείμενο της Εργασίας ήταν η δημιουργία ενός χεδιαστή Σαξιδιών Με Μέσα Μαζικής<br />
Μεταφοράς (<strong>Intermodal</strong> Journey Planner), που να απευθύνεται κατά κύριο λόγο στους επισκέπτες<br />
της πόλης. Για τον λόγο αυτό η σχετική εφαρμογή σχεδιάστηκε ώστε να είναι αρκετά απλή στην<br />
χρήση και να μπορεί να δίνει με λίγα βήματα και γρήγορα μια πολύ καλή καθοδήγηση, ενώ ως<br />
γλώσσα του περιβάλλοντος χρήσης επιλέχθηκε η Αγγλική.<br />
Η εφαρμογή παρέχεται μέσω ενός web interface και στηρίζεται σε open source λογισμικά. Η<br />
δημιουργία της στάθηκε ως πλαίσιο για την απόκτηση γνώσης σχετικά με την γλώσσα<br />
προγραμματισμού Java, την δημιουργία web sites και εφαρμογών, την πλοήγηση με χρήση γράφων,<br />
όπως επίσης και με την λογική της ανάπτυξης λογισμικού ανοικτού κώδικα και των μεθοδολογιών<br />
λειτουργίας μιας κοινότητας ανάπτυξης τέτοιου λογισμικού.<br />
Λέξεις Κλειδιά:<br />
χεδιαστής Σαξίδι Διαδρομή Αθήνα Επισκέπτης Μέσα Μαζικής Μεταφοράς ΜΜΜ Γράφος<br />
Διπλωματική Γεωπληροφορική Open Trip Planner Tsoop Flex<br />
iv
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
v
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Abstract<br />
The Project that is being described in this volume is a <strong>Thesis</strong> for the ―Geoinformatics‖<br />
<strong>Postgraduate</strong> Studies Programme of the National Technical University of Athens.<br />
Goal of the Project was the implementation of an <strong>Intermodal</strong> Journey Planner for Athens‘ region,<br />
targeting its foreign visitors. Thus, the service was designed to be easy in use and capable to<br />
provide a good routing solution with only a few steps. Additionally, the language of the user<br />
interface is English.<br />
The service is provided by a web interface and is based mainly on open source software. Its<br />
development was the frame for the acquisition of knowledge regarding Java, Web Sites‘ Creation,<br />
Rich Internet Applications, Routing, Data Manipulation, as also regarding open source software<br />
development and team collaboration.<br />
Keywords:<br />
<strong>Intermodal</strong> Journey Planner Route Athens Visitor Mass Transit Graph <strong>Thesis</strong> Post Graduate<br />
Geoinformatics OpenTripPlanner Tsoop Flex<br />
vi
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
vii
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
1 ΕΙΣΑΓΩΓΗ ............................................................................................................................. 1<br />
1.1<br />
1.2<br />
1.3<br />
1.4<br />
ΣΧΕΔΙΑΣΤΕΣ ΤΑΞΙΔΙΩΝ. ........................................................................................................... 1<br />
Η ΑΥΞΑΝΟΜΕΝΗ ΣΗΜΑΝΤΙΚΟΤΗΤΑ ΤΩΝ ΣΧΕΔΙΑΣΤΩΝ ΤΑΞΙΔΙΩΝ. .................................................. 3<br />
ΑΝΤΙΚΕΙΜΕΝΟ ΤΗΣ ΕΓΑΣΙΑΣ. .................................................................................................. 4<br />
ΟΓΑΝΩΣΗ ΚΕΙΜΕΝΟΥ. .......................................................................................................... 5<br />
2 ΥΡΑΧΟΥΣΕΣ ΑΝΑΛΟΓΕΣ ΕΦΑΜΟΓΕΣ, ΣΤΗΝ ΑΘΗΝΑ ΚΑΙ ΑΛΛΟΥ. .................................... 7<br />
2.1 ΛΙΓΗ ΙΣΤΟΙΑ. ....................................................................................................................... 7<br />
2.2 ΡΑΟΥΣΙΑΣΗ ΥΡΑΧΟΥΣΩΝ ΑΝΤΙΣΤΟΙΧΩΝ ΕΦΑΜΟΓΩΝ. ........................................................... 10<br />
2.2.1 TRANSPORT FOR LONDON (EFA APPLICATION) ..................................................................... 10<br />
2.2.2 EFA (ELEKTRONISCHE FAHRPLANAUSKUNFT). ....................................................................... 12<br />
2.2.3 GOOGLE TRANSIT (ΣΕ ΔΙΑΦΟΕΣ ΡΕΙΟΧΕΣ ΑΝΑ ΤΟΝ ΚΟΣΜΟ). ................................................ 14<br />
2.2.4 RATP (ÎLE-DE-FRANCE). ................................................................................................... 17<br />
2.2.5 ΑΔΑΜΑΣ (ΑΘΗΝΑ) ......................................................................................................... 22<br />
2.2.6 ΡΥΛΗ ΔΟΜΟΛΟΓΗΣΗΣ ΡΕΙΦΕΕΙΑΣ ΑΤΤΙΚΗΣ .......................................................... 25<br />
2.2.7 YOUDRIVE (ΑΘΗΝΑ). ....................................................................................................... 28<br />
2.3 ΓΕΝΙΚΕΣ ΡΑΑΤΗΗΣΕΙΣ – ΔΙΑΦΟΟΡΟΙΗΣΗ ΤΗΣ ΡΑΟΥΣΑΣ ΥΡΗΕΣΙΑΣ. ...................................... 31<br />
3 ΘΕΩΗΤΙΚΟ ΥΡΟΒΑΘΟ. – ΒΑΣΙΚΕΣ ΡΛΗΟΦΟΙΕΣ. ....................................................... 35<br />
3.1 ΓΑΦΟΙ. ............................................................................................................................ 35<br />
3.1.1 ΟΙ ΕΡΤΑ ΓΕΦΥΕΣ ΤΟΥ KÖNIGSBERG. ................................................................................... 37<br />
3.1.2 ΤΟ ΡΟΒΛΗΜΑ ΤΗΣ ΔΙΑΔΟΜΗΣ ΜΕ ΤΟ ΜΙΚΟΤΕΟ ΚΟΣΤΟΣ. ............................................... 39<br />
3.2 ΑΛΓΟΙΘΜΟΙ ΕΡΙΛΥΣΗΣ. ....................................................................................................... 40<br />
3.2.1 ΓΕΝΙΚΑ ΡΕΙ ΑΛΓΟΙΘΜΩΝ................................................................................................ 40<br />
3.2.2 ΕΥΕΤΙΚΕΣ (HEURISTICS). ................................................................................................... 40<br />
3.3 ΑΛΓΟΙΘΜΟΙ ΓΙΑ ΤΗΝ ΕΥΕΣΗ ΤΗΣ ΒΕΛΤΙΣΤΗΣ ΔΙΑΔΟΜΗΣ ΑΡΟ ΚΟΜΒΟ ΣΕ ΚΟΜΒΟ. .................... 41<br />
3.3.1 ΓΕΝΙΚΑ. .......................................................................................................................... 41<br />
3.3.2 Ο ΑΛΓΟΙΘΜΟΣ ΤΟΥ DIJKSTRA. .......................................................................................... 42<br />
3.3.3 Ο ΑΛΓΟΙΘΜΟΣ Α* (A-STAR). ........................................................................................... 44<br />
3.3.4 Ο ΑΛΓΟΙΘΜΟΣ/ΤΕΧΝΙΚΗ ‘CONTRACTION HIERARCHIES’ (‘ΣΥΝΑΙΕΤΙΚΕΣ ΙΕΑΧΙΕΣ’). ................. 48<br />
3.4<br />
ΤΟ ΔΙΚΤΥΟ ΜΜΜ ΤΗΣ ΑΘΗΝΑΣ. .......................................................................................... 54<br />
viii
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
4 ΑΡΑΙΤΗΣΕΙΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΥΡΗΕΣΙΑΣ. ....................................................................... 57<br />
4.1 ΤΙ ΕΙΝΑΙ ΚΑΙ ΣΕ ΡΟΙΟΥΣ ΑΡΕΥΘΥΝΕΤΑΙ Η ΥΡΗΕΣΙΑ. ................................................................. 57<br />
4.2 ΒΑΣΙΚΕΣ ΑΧΕΣ ΤΟΥ ΣΧΕΔΙΑΣΜΟΥ. ......................................................................................... 58<br />
4.3 ΤΟΡΟΙ ΚΑΙ ΜΕΣΑ ΡΑΟΧΗΣ ΤΗΣ ΥΡΗΕΣΙΑΣ. .......................................................................... 60<br />
4.4 ΤΟΡΟΙ ΚΑΙ ΕΓΑΛΕΙΑ ΥΛΟΡΟΙΗΣΗΣ. ...................................................................................... 61<br />
4.5 ΟΙΚΟΝΟΜΙΚΑ ΘΕΜΑΤΑ. ....................................................................................................... 61<br />
4.6 ΟΝΟΜΑΣΙΑ ΤΗΣ ΥΡΗΕΣΙΑΣ. ................................................................................................. 62<br />
4.7 ΡΕΙΓΑΦΗ ΤΗΣ ΥΡΗΕΣΙΑΣ ΠΣΟΝ ΑΦΟΑ ΤΟΝ ΧΗΣΤΗ. .......................................................... 62<br />
4.7.1 ΓΕΝΙΚΑ. .......................................................................................................................... 63<br />
4.7.2 Ο ΧΑΤΗΣ. ...................................................................................................................... 64<br />
4.7.3 ΕΡΙΛΟΓΕΣ ΤΑΞΙΔΙΟΥ. ......................................................................................................... 64<br />
4.7.4 ΑΡΟΤΕΛΕΣΜΑΤΑ. ............................................................................................................. 66<br />
4.8 ΡΕΙΓΑΦΗ ΤΗΣ ΥΡΗΕΣΙΑΣ ΠΣΟΝ ΑΦΟΑ ΤΗΝ ΑΝΑΡΤΥΞΗ. ..................................................... 67<br />
5 ΔΕΔΟΜΕΝΑ. ...................................................................................................................... 69<br />
5.1 ΔΕΔΟΜΕΝΑ ΔΙΚΤΥΟΥ ΜΜΜ. ............................................................................................... 69<br />
5.1.1 ΡΩΤΟΓΕΝΗ ΔΕΔΟΜΕΝΑ ΜΜΜ. ....................................................................................... 72<br />
5.1.2 GENERAL TRANSIT FEED SPECIFICATION (GTFS) ΚΑΙ ΔΗΜΙΟΥΓΙΑ ΤΟΥ FEED. ............................. 77<br />
5.2 ΔΕΔΟΜΕΝΑ ΟΔΙΚΟΥ ΔΙΚΤΥΟΥ. ............................................................................................. 107<br />
5.2.1 ΓΕΝΙΚΑ. ........................................................................................................................ 107<br />
5.2.2 OPEN STREET MAP (OSM). ............................................................................................ 107<br />
5.2.3 ΡΑΑΤΗΗΣΕΙΣ. ............................................................................................................. 109<br />
5.3 ΔΗΜΙΟΥΓΙΑ ΓΑΦΟΥ. ....................................................................................................... 110<br />
6 ΥΛΟΡΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ. ............................................................................................. 111<br />
6.1 ΕΓΑΛΕΙΑ ΡΟΥ ΧΗΣΙΜΟΡΟΙΗΘΗΚΑΝ. .................................................................................. 111<br />
6.1.1 JAVA. ........................................................................................................................... 112<br />
6.1.2 ECLIPSE. ....................................................................................................................... 114<br />
6.1.3 APACHE SUBVERSION. .................................................................................................... 114<br />
6.1.4 APACHE MAVEN. ........................................................................................................... 115<br />
6.1.5 APACHE TOMCAT. .......................................................................................................... 115<br />
6.1.6 APACHE HTTP SERVER. .................................................................................................. 116<br />
6.1.7 ALIVEPDF. ................................................................................................................... 116<br />
6.1.8 OPEN STREET MAP (OSM). ............................................................................................ 117<br />
6.1.9 POSTGRESQL. ............................................................................................................... 117<br />
6.1.10 GOOGLE MAPS – GOOGLE MAPS API. ............................................................................ 118<br />
6.1.11 GOOGLE GEOCODING API. ............................................................................................ 120<br />
6.1.12 GOOGLE DIRECTIONS API. ............................................................................................ 121<br />
6.1.13<br />
ADOBE FLEX 4, ADOBE FLASH BUILDER 4. ........................................................................ 121<br />
ix
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.1.14 OPENTRIPPLANNER (OTP). ........................................................................................... 123<br />
6.1.15 ΒΑΣΙΚΟΙ ΣΥΜΜΕΤΟΧΟΙ. ................................................................................................. 124<br />
6.1.16 ΚΥΙΑ ΧΑΑΚΤΗΙΣΤΙΚΑ ΤΟΥ OTP. .................................................................................. 125<br />
6.1.17 ΤΑ ΤΜΗΜΑΤΑ ΡΟΥ ΑΡΟΤΕΛΟΥΝ ΤΟΝ OPEN TRIP PLANNER. ............................................... 128<br />
6.2 ΔΟΜΗ ΣΥΣΤΗΜΑΤΟΣ. ........................................................................................................ 134<br />
6.3 ΛΕΙΤΟΥΓΙΕΣ ΧΗΣΤΗ. ........................................................................................................ 135<br />
6.3.1 ΓΕΝΙΚΑ ΓΙΑ ΤΗΝ ΕΦΑΜΟΓΗ ΧΗΣΤΗ. ................................................................................ 135<br />
6.3.2 ΛΕΙΤΟΥΓΙΚΗ ΟΗ ΤΗΣ ΕΦΑΜΟΓΗΣ ΧΗΣΤΗ. ..................................................................... 137<br />
6.3.3 ΛΕΙΤΟΥΓΙΚΗ ΑΝΑΛΥΣΗ ΤΗΣ ΕΦΑΜΟΓΗΣ ΧΗΣΤΗ. .............................................................. 138<br />
6.4 ΤΕΧΝΙΚΗ ΡΕΙΓΑΦΗ. ........................................................................................................ 161<br />
6.4.1 ΓΕΝΙΚΑ. ........................................................................................................................ 164<br />
6.4.2 ΛΕΙΤΟΥΓΙΕΣ ΣΤΟΝ HTTP SERVER. .................................................................................... 164<br />
6.4.3 ΛΕΙΤΟΥΓΙΕΣ ΣΤΟΝ TOMCAT SERVER. ................................................................................ 165<br />
6.4.4 ΛΕΙΤΟΥΓΙΕΣ ΡΟΥ ΡΑΓΜΑΤΟΡΟΙΟΥΝΤΑΙ ΜΕ ΧΗΣΗ ΤΩΝ ΥΡΗΕΣΙΩΝ ΡΟΥ ΡΑΕΧΟΝΤΑΙ ΑΡΟ ΤΗΝ<br />
GOOGLE. .................................................................................................................................. 166<br />
6.4.5 ROUTING ENGINE. ......................................................................................................... 167<br />
6.4.6 ΕΥΕΣΗ ΕΝΑΛΛΑΚΤΙΚΩΝ ΓΑΜΜΩΝ. ................................................................................. 181<br />
6.4.7 ΣΥΝΟΡΤΙΚΟ ΔΙΑΓΑΜΜΑ ΤΗΣ ΔΟΜΗΣ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ ΤΩΝ ΣΥΝΔΕΣΕΩΝ. ....................... 188<br />
6.4.8 ΡΟΓΑΜΜΑΤΙΣΤΙΚΗ ΔΟΜΗ ΤΗΣ ΕΦΑΜΟΓΗΣ ΧΗΣΤΗ & ΣΥΝΔΕΣΕΙΣ. .................................... 189<br />
7 ΡΑΑΔΕΙΓΜΑ ΧΗΣΗΣ. .................................................................................................... 217<br />
8 ΣΥΜΡΕΑΣΜΑΤΑ – ΣΚΕΨΕΙΣ - ΕΡΟΜΕΝΑ ΒΗΜΑΤΑ. ...................................................... 229<br />
8.1 ΓΕΝΙΚΑ. ........................................................................................................................... 229<br />
8.2 ΡΕΙΒΑΛΛΟΝ ΕΦΑΜΟΓΗΣ. ................................................................................................ 230<br />
8.3 ΡΟΤΑΣΕΙΣ ΤΑΞΙΔΙΟΥ. ........................................................................................................ 231<br />
8.3.1 ΔΕΔΟΜΕΝΑ ΔΙΚΤΥΟΥ ΜΜΜ. .......................................................................................... 231<br />
8.3.2 ΧΗΣΙΜΟΡΟΙΟΥΜΕΝΟΙ ΧΑΤΕΣ. ....................................................................................... 233<br />
8.3.3 ΑΛΓΟΙΘΜΟΙ ΑΝΑΖΗΤΗΣΗΣ ΡΟΤΑΣΕΩΝ ΤΑΞΙΔΙΟΥ. ............................................................. 233<br />
8.4<br />
ΒΕΛΤΙΩΣΕΙΣ – ΜΕΛΛΟΝΤΙΚΕΣ ΕΡΕΚΤΑΣΕΙΣ. ............................................................................. 237<br />
x
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
xi
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
1Εισαγωγή<br />
1.1 χεδιαστές Σαξιδιών.<br />
Σα τελευταία χρόνια, η ανάπτυξη των υπολογιστικών συσκευών και των επικοινωνιών, σε συνδυασμό<br />
με τις τεχνολογίες εντοπισμού θέσης, έχουν δώσει σημαντική ώθηση στα συστήματα πλοήγησης.<br />
Κατά κανόνα, τα συστήματα αυτά αφορούν<br />
το οδικό δίκτυο και τις μετακινήσεις με το<br />
αυτοκίνητο. μως, έχει υπάρξει εξέλιξη και σε<br />
συστήματα που αφορούν την μετακίνηση<br />
πεζή, με ποδήλατο, ή ακόμη και με τις<br />
σιδηροδρομικές και αεροπορικές<br />
μεταφορές.<br />
ε όλες αυτές τις περιπτώσεις επιλύεται<br />
ένας γράφος, στον οποίο κόμβοι μπορεί<br />
να είναι π.χ. οι διασταυρώσεις, τα<br />
σημεία ενδιαφέροντος, οι σιδηροδρομικοί<br />
σταθμοί, τα αεροδρόμια, κοκ, ενώ σύνδεσμοι μπορεί να είναι οι δρόμοι, οι<br />
σιδηροδρομικές και αεροπορικές συνδέσεις, κ.α..<br />
1
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ε κάθε σύνδεσμο ορίζονται βάρη, είτε σε αριθμητική μορφή, όπως είναι η απόσταση, ο χρόνος<br />
διέλευσης, το οικονομικό κόστος, κτλ, είτε σε ποιοτική μορφή, όπως είναι η ασφάλεια διέλευσης, η<br />
δυνατότητα διέλευσης για διάφορες κατηγορίες χρηστών, ή ακόμη και το ταξιδιωτικό ενδιαφέρον.<br />
Οι χεδιαστές Σαξιδιών (Trip Planners, ή Journey Planners), κάνουν χρήση διάφορων αλγόριθμων<br />
(Dijkstra, A* [Α-Star], κ.α.) έτσι ώστε να ελαχιστοποιούν το συνολικό κόστος, σε συνδυασμό με τους<br />
όποιους περιορισμούς τίθενται. Π.χ. το ζητούμενο σε ένα ταξίδι με αυτοκίνητο μπορεί να είναι ο<br />
περιορισμός του χρόνου ταξιδιού, με αποφυγή πιθανόν των οδών όπου πρέπει να πληρωθούν διόδια.<br />
Εικόνα 1: Επίλυση ενός γράφου με τον αλγόριθμο του Dijkstra, με χρήση λογισμικού που οπτικοποιεί<br />
την διαδικασία επίλυσης κατά βήμα. Πηγή: http://www.uweschmidt.org.<br />
Πέρα από την «μηχανή» επίλυσης του σχετικού γράφου, ένας χεδιαστής Σαξιδιού αποτελείται<br />
συνήθως κι από κάποιο ή κάποια περιβάλλοντα χρήστη (π.χ. σε υπολογιστή, σε κινητό τηλέφωνο),<br />
διάφορους geolocators για την εύρεση διευθύνσεων και σημείων ενδιαφέροντος, ενώ μπορεί να<br />
παρέχει ακόμη και συνδέσεις σε διευθύνσεις που διευκολύνουν την πραγματοποίηση του<br />
προτεινόμενου ταξιδιού, όπως είναι π.χ. για την αγορά εισιτηρίων ενός μεταφορικού μέσου.<br />
2
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
τα πλαίσια της ενοποίησης και ολοκλήρωσης των τεχνολογιών κι υπηρεσιών, οι χεδιαστές Σαξιδιών<br />
εξελίσσονται συνεχώς, είτε με το να ενσωματώνουν άλλες υπηρεσίες, είτε με το ενσωματώνονται<br />
αυτοί οι ίδιοι σε κάποιες άλλες, γενικότερες, π.χ. σε ταξιδιωτικά portals.<br />
Γίνεται φανερό πως, για την όσο το δυνατόν αποτελεσματικότερη λειτουργία ενός χεδιαστή<br />
Σαξιδιών, μεγάλη σημαντικότητα έχουν τα δεδομένα που αυτός χρησιμοποιεί, τόσο ως προς την<br />
μορφή τους, όσο και ως προς την πληρότητά τους και την εγκυρότητά τους.<br />
1.2 Η Αυξανόμενη ημαντικότητα των χεδιαστών Σαξιδιών.<br />
Η εξέλιξη της τεχνολογίας, ιδίως στον τομέα των τηλεπικοινωνιών και κατ‘ επέκταση στην<br />
φορητότητα των τεχνολογικών συσκευών και των παρεχόμενων υπηρεσιών, έχει δώσει εκρηκτική<br />
ώθηση σε πάρα πολλούς τομείς. ε αυτό έχει συνεισφορά και η ολοένα και μεγαλύτερη εξοικείωση<br />
του πληθυσμού με την τεχνολογία, κάτι το οποίο γίνεται και αντίστροφα, καθώς η εξέλιξη της<br />
τεχνολογίας δεν την κάνει αυτήν κατά ανάγκη πολυπλοκότερη, αλλά σε αρκετές περιπτώσεις<br />
φιλικότερη.<br />
Η βελτίωση της δυνατότητας δορυφορικού εντοπισμού της θέσης, τόσο λόγω της μεγαλύτερης<br />
ευαισθησίας των δεκτών, του περιορισμού του μεγέθους τους και του κόστους κτήσης τους, όσο και<br />
λόγω της άρσης της επιλεκτικής διαθεσιμότητας (selective availability), δημιούργησε τις συνθήκες<br />
στις οποίες βρήκαν πρόσφορο έδαφος να παρουσιαστούν και να διεισδύσουν σε μεγάλο κοινό οι<br />
χεδιαστές Σαξιδιών για τις μετακινήσεις με αυτοκίνητο.<br />
Τπήρξαν υλοποιήσεις και πριν την χρήση του GPS, με εφαρμογές που είχαν αναπτυχθεί για PCs και<br />
συνεισέφεραν στην ανάπτυξη σχετικών αλγορίθμων (π.χ MS AutoRoute), όμως η αποδοχή από το<br />
κοινό δεν ήταν ιδιαίτερα μεγάλη. Αφενός γιατί απαιτούνταν η γνώση χρήσης HY, αφετέρου γιατί ο<br />
προσχεδιασμός της διαδρομής δεν είναι το ίδιο ελκυστικός και το ίδιο αποτελεσματικός με την κατά<br />
την οδήγηση πλοήγηση.<br />
Η χρήση των χεδιαστών Σαξιδιών στο αυτοκίνητο βοήθησε & εξακολουθεί να βοηθάει αρκετούς<br />
ανθρώπους να κινηθούν πιο εύκολα, γρήγορα, με μεγαλύτερη άνεση και ίσως και ασφάλεια, στα<br />
οδικά δίκτυα που έχουν γιγαντωθεί τόσο ώστε να είναι σε αρκετές περιπτώσεις δύσκολη, όχι μόνο η<br />
απομνημόνευση της γενικής μορφής αυτών και αρκετών χαρακτηριστικών τους σημείων, αλλά και η<br />
ίδια η διαδικασία επιλογής της συντομότερης διαδρομής, ότι συνεισφέρει δηλαδή στην πλοήγηση με<br />
χρήση του ανθρώπινου εγκεφάλου.<br />
Ψφέλεια από τους χεδιαστές Σαξιδιών δεν υπάρχει όμως μόνο για τον κάθε άνθρωπο ξεχωριστά,<br />
αλλά και συνολικά για το σύστημα μεταφορών. Αφενός γιατί όταν μεγάλο κομμάτι του πληθυσμού<br />
πηγαίνει από ένα σημείο σε κάποιο άλλο, ακολουθώντας την συντομότερη διαδρομή, περιορίζεται η<br />
3
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
μη ωφέλιμη φόρτιση του δικτύου, η κατανάλωση καυσίμων, και η εκπομπή ρύπων, αλλά κι<br />
αφετέρου, γιατί με την μετάδοση πληροφοριών τροχαίας κίνησης σε πραγματικό χρόνο, γίνεται<br />
δυνατόν ολοένα και περισσότερο να επιτυγχάνεται καλύτερη διαχείριση της κυκλοφορίας.<br />
την σημερινή εποχή έχει γίνει φανερό ότι η δημιουργία νέων δρόμων, ειδικά εντός αστικών<br />
περιοχών, ελάχιστα έχει να προσφέρει στην βελτίωση των μετακινήσεων, και με πολύ μεγάλο<br />
μάλιστα κόστος, καθώς οι απαλλοτριώσεις και οι πιθανότατες κατεδαφίσεις είναι πανάκριβες, έως<br />
κοινωνικά απαγορευτικές. Αντί λοιπόν της δημιουργίας νέων δρόμων, γίνεται προσπάθεια για την<br />
βελτιστοποίηση της απόδοσης των υφιστάμενων, κυρίως μέσω της τεχνολογίας. Έτσι είναι προφανής,<br />
σύμφωνα και με τα προηγούμενα, η συνεισφορά των χεδιαστών Σαξιδιών στην προσπάθεια αυτή.<br />
Η μεγαλύτερη βελτιστοποίηση της απόδοσης του οδικού δικτύου, και κυρίως του συνολικού δικτύου<br />
μεταφορών, είχε γίνει από πολύ παλιά φανερό όμως ότι επιτυγχάνεται με την ευνόηση της χρήσης<br />
των Μέσων Μαζικής Μεταφοράς. το σημείο αυτό ακριβώς είναι που έρχονται να συνεισφέρουν<br />
σημαντικά οι χεδιαστές Σαξιδιών με ΜΜΜ, πολύ περισσότερο συνεπώς από ότι οι αντίστοιχοι για τα<br />
αυτοκίνητα.<br />
Η πολυπλοκότητα των δικτύων των Μέσων Μαζικής Μεταφοράς έχει γιγαντωθεί σε αντιστοιχία με<br />
αυτή των οδικών δικτύων, καθιστώντας έτσι δύσκολη την αποδοτικότερη αξιοποίηση τους από τον<br />
πληθυσμό.<br />
Ακόμη, ο σωστός σχεδιασμός ενός ταξιδιού με ΜΜΜ είναι περισσότερο κρίσιμος σε σχέση με τον<br />
αντίστοιχο για ταξίδι με αυτοκίνητο, καθώς τα ΜΜΜ έχουν δρομολόγια, κάτι που σημαίνει ασυνέχεια<br />
στην δυνατότητα μετακίνησης. Αν δηλαδή κάποιος χάσει ελάχιστα λεπτά σε ένα σκέλος του ταξιδιού,<br />
αυτό μπορεί να του κοστίσει πολύ περισσότερο στον συνολικό χρόνο, καθώς πιθανότατα θα<br />
δημιουργηθούν σημαντικά μεγαλύτεροι χρόνοι αναμονής για τα ΜΜΜ των επόμενων σκελών του<br />
ταξιδιού.<br />
1.3 Αντικείμενο Σης Εργασίας.<br />
Η Εργασία που αναλύεται στο παρόν τεύχος πραγματοποιήθηκε ως Διπλωματική Εργασία για το<br />
Μεταπτυχιακό Πρόγραμμα πουδών ―Γεωπληροφορική‖ του Εθνικού Μετσόβιου Πολυτεχνείου.<br />
Αντικείμενό της είναι η δημιουργία και η λειτουργία ενός χεδιαστή Σαξιδιών για τις μετακινήσεις με<br />
Μέσα Μαζικής Μεταφοράς (ΜΜΜ) στην περιοχή της Αθήνας. Απευθύνεται κυρίως σε επισκέπτες της<br />
Πόλης και για αυτό έχει υλοποιηθεί υιοθετώντας την Αγγλική γλώσσα για την επικοινωνία με τον<br />
χρήστη. Μελλοντική εξέλιξη μπορεί να περιέχει φυσικά κι άλλες γλώσσες. Ας σημειωθεί ότι οι<br />
επισκέπτες μιας Πόλης σαν την Αθήνα βασίζονται πολύ περισσότερο στην χρήση των ΜΜΜ για τις<br />
4
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
μετακινήσεις τους από ότι οι μόνιμοι κάτοικοι, αφού συνήθως δεν διαθέτουν κατά την επίσκεψη το<br />
αυτοκίνητό τους, ενώ και η ενοικίαση αυτοκινήτων στις αστικές περιοχές είναι περιορισμένη.<br />
Η επικοινωνία με τον χρήστη γίνεται μέσω ενός web interface, στο οποίο μπορεί εύκολα να έχει<br />
κάποιος πρόσβαση από ηλεκτρονικό υπολογιστή, ή και από κινητό τηλέφωνο με σχετικά εξελιγμένο<br />
browser και σύνδεση mobile Internet. Από την αρχή της εκπόνησης, και με δεδομένο το σε ποιους<br />
απευθύνεται, τέθηκε ως πλαίσιο να διαθέτει η εφαρμογή ένα απλό περιβάλλον χρήσης, από το οποίο<br />
με λίγα βήματα και σε σύντομο χρόνο να λαμβάνει κάποιος μια πολύ καλή πρόταση διαδρομής, με<br />
λεπτομερή επεξήγησή της.<br />
Είναι προφανές ότι δεν υπάρχει ιδιαίτερος λόγος ένας επισκέπτης σε μία Πόλη να πρέπει να μπει<br />
στην διαδικασία εκμάθησης μιας, έστω και λίγο, πολύπλοκης εφαρμογής. Επίσης, τα σημεία που τον<br />
ενδιαφέρουν είναι σχετικά περιορισμένα, ενώ δεν τον νοιάζει αν η λύση που του προτείνεται είναι η<br />
τελειότερη δυνατή, καθώς την συγκεκριμένη διαδρομή θα την πραγματοποιήσει ίσως για μία μόνο<br />
φορά.<br />
1.4 Οργάνωση Κειμένου.<br />
Σο παρόν κείμενο, το οποίο παρουσιάζει και αναλύει την εκπονηθείσα Εργασία, ακολουθεί στη<br />
συνέχεια την εξής δομή:<br />
το Κεφάλαιο 2 γίνεται παρούσιαση υφιστάμενων εφαρμογών που λειτουργούν ανά τον κόσμο<br />
και σχετίζονται με την σχεδίαση ταξιδιών με Μέσα Μαζικής Μεταφοράς. το τέλος<br />
παρουσιάζονται εφαρμογές που λειτουργούν για την Αθήνα, και επισημαίνονται τα σημεία τα<br />
οποία έρχεται να υιοθετήσει, επεκτείνει, ή κυρίως να καλύψει εξαρχής η υφιστάμενη Εργασία.<br />
το Κεφάλαιο 3 γίνεται μία αναφορά στο θεωρητικό υπόβαθρο πάνω στο οποίο βασίζεται η<br />
Εργασία. Περισσότερο παρουσιάζεται σαν συνοπτική συγκέντρωση όλων των σχετικών θεμάτων,<br />
για ενθύμιση στον αναγνώστη, καθώς το παρόν Κείμενο απευθύνεται σε αναγνώστη που είναι<br />
ήδη γνώστης του γενικού έστω πλαισίου αυτών.<br />
το Κεφάλαιο 4 γίνεται η περιγραφή των απαιτήσεων από την Τπηρεσία της Εργασίας, δηλαδή<br />
του Λειτουργικού χεδιασμού της, γίνεται αναφορά στις επιλογές που πραγματοποιήθηκαν και<br />
5
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
με ποιό σκεπτικό έγιναν αυτές, π.χ. διαθεσιμότητα δεδομένων κτλ., ενώ αναφέρονται και<br />
μελλοντικές επεκτάσεις που λήφθηκαν υπόψη.<br />
το Κεφάλαιο 5 γίνεται παρουσίαση των θεμάτων που σχετίζονται με τα δεδομένα.<br />
Περιγράφεται το πρότυπο GTFS, και το πως από τα πρωτογενή δεδομένα του Οργανισμού<br />
Αστικών υγκοινωνιών δημιουργήθηκε ένα τέτοιο GT Feed για τα ΜΜΜ της Αθήνας. Γίνεται<br />
εκτενής αναφορά, τόσο για τα προβλήματα που υπάρχουν, όσο και για τους τρόπους<br />
αντιμετώπισής τους, παράλληλα με την ανάπτυξη της λογικής που ακολουθήθηκε. Επίσης,<br />
παρουσιάζονται ανάλογα και τα δεδομένα που αφορούν το οδικό δίκτυο της περιοχής, το οποίο<br />
χρησιμοποιείται κι αυτό μαζί με τα προηγούμενα για την δημιουργία του γράφου του<br />
υστήματος.<br />
το Κεφάλαιο 6 γίνεται αρχικά μία σύντομη περιγραφή των εργαλείων, τεχνολογιών και<br />
προτύπων που χρησιμοποιήθηκαν για την υλοποίηση της Τπηρεσίας, και στην συνέχεια<br />
αναλυέται με αρκετό βαθμό λεπτομέρειας η ανάπτυξη της Τπηρεσίας. Επίσης, στο Κεφάλαιο<br />
αυτό γίνεται αναφορά του πως η Εφαρμογή διαμορφώθηκε ανάλογα με την αξιολόγηση των<br />
αποτελεσμάτων και τον επανασχεδιασμό των σχετικών τμημάτων της Εφαρμογής ώστε αυτά να<br />
προκύπτουν καλύτερα.<br />
το Κεφάλαιο 7 παρουσιάζεται ένα παράδειγμα χρήσης της Τπηρεσίας.<br />
το Κεφάλαιο 8, που είναι και το επιλογικό του Κειμένου, αναφέρονται συμπεράσματα, όπως<br />
επίσης σκέψεις και προτάσεις για την βελτίωση, αλλά και εξέλιξη, της Τπηρεσίας.<br />
το τέλος παρατίθενται βιβλιογραφικές, και όχι μόνο, αναφορές, όπου ο αναγνώστης μπορεί να<br />
ξεκινήσει την αναζήτησή του για περισσότερες πληροφορίες σχετικά με διάφορα θέματα που<br />
αναφέρονται στο παρόν Κείμενο.<br />
6
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
2Τπάρχουσες Ανάλογες<br />
Εφαρμογές, στην Αθήνα και<br />
Αλλού.<br />
2.1 Λίγη Ιστορία.<br />
αν πρώτο πρόβλημα σχετικό με την πλοήγηση σε ένα δίκτυο θεωρείται το ―Επτά Γέφυρες του<br />
Königsberg‖, το οποίο τέθηκε το 1735 από τον Leonard Euler [Αναφορά #38: Euler Leonard<br />
(1741)), Solutio problematis ad geometriam situs pertinentis, Commentarii academiae<br />
scientiarum Petropolitanae] και το οποίο τον οδήγησε στην ανάπτυξη της θεωρίας των Γράφων.<br />
Περισσότερες πληροφορίες για το πρόβλημα δίνονται σε επόμενο σημείο του Κειμένου, στην<br />
παράγραφο 3.1.1.<br />
Ο Αλγόριθμος του Dijkstra, ο οποίος δημοσιεύθηκε το 1959 [Αναφορά #39: Dijkstra Edsger Wybe<br />
(1959), A note on two problems in connexion with graphs, Numerische Mathematik 1: 269–271]<br />
και χρησιμοποιείται και σήμερα ως η βάση για κάθε Journey ή Route Planner, είναι το επόμενο<br />
βήμα, το οποίο έκανε πιο άμεση την σύνδεση του προβλήματος της εύρεσης μιας διαδρομής σε έναν<br />
7
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Γράφο με τα υπολογιστικά συστήματα. Περισσότερες πληροφορίες για τον Αλγόριθμο του Dijkstra<br />
μπορεί κανείς να βρει επίσης στην σχετική παράγραφο (3.3.2) του Κειμένου.<br />
Αρχικά ο σχεδιασμός ενός ταξιδιού με διάφορα μέσα γινόταν, ελλείψει και της σχετικής ελάχιστης<br />
τεχνολογίας, καθαρά με την χρήση του ανθρώπινου εγκεφάλου. Άλλωστε τα μέσα συγκοινωνίας δεν<br />
ήταν πάρα πολλά, τα δρομολόγια ήταν εξίσου λίγα, και η ανάγκη για συχνή πραγματοποίηση<br />
διαφορετικών ταξιδιών, με συνδυασμό μάλιστα διαφόρων μέσων, ήταν αρκετά περιορισμένη.<br />
Σις ανάγκες για τον σχεδιασμό ενός ταξιδιού τις κάλυπταν κατά κανόνα μερικοί χάρτες, κάποιοι<br />
πίνακες δρομολογίων, και φυσικά κάποιο υπάλληλοι των συγκοινωνιακών εταιρειών, οι οποίοι<br />
προσπαθούσαν να ενημερώσουν και να βοηθήσουν, είτε πίσω από ένα γκισέ, είτε πίσω από ένα<br />
τηλεφωνικό κέντρο.<br />
ημαντική τομή στην εξυπηρέτηση του επιβατικού κοινού για τον σχεδιασμό ενός ταξιδίου θεωρείται<br />
η δημιουργία του πρώτου διαγραμματικού χάρτη για το metro του London, ο οποίος σχεδιάστηκε<br />
από τον Harry Beck το 1933. Ο Beck ήταν υπάλληλος του Τπόγειου ιδηροδρόμου, και πρώτος<br />
αυτός συνειδητοποίησε ότι οι επιβάτες δεν νοιάζονταν για τις φυσικές θέσεις των σταθμών και τις<br />
διαδρομές, παρά μόνο για την τοπολογία, δηλαδή πως μπορούν να φτάσουν από έναν σταθμό σε<br />
έναν άλλον, και τι εξυπηρετεί ο κάθε σταθμός. Η πρόσεγγιση του Becker είναι όμοια με αυτή των<br />
διγραμμάτων ηλεκτρικών κυκλωμάτων, αν και πηγή έμπνευσής του για τον σχεδιασμό ήταν τα<br />
διαγράμματα για τα υπόγεια συστήματα αποχέτευσης.<br />
Εικόνα 2: Ο πρώτος Διαγραμματικός Φάρτης του Harry Beck (1933) για το Metro του London.<br />
8
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Ο τρόπος απεικόνισης ενός μεταφορικού συστήματος που εισήγαγε ο Becker, σταδιακά έγινε ο<br />
τρόπος απεικόνισης όλων των πολύπλοκων δικτύων ανά τον κόσμο, ενώ ειδικά ο χάρτης του London<br />
έχει γίνει πλέον εμβληματικός και πηγή έμπνευσης διάφορων καλλιτεχνικών έργων.<br />
Οι πρώτοι ηλεκτρονικοί χεδιαστές Σαξιδίων ήταν εφαρμογές που αποτελούσαν μέρος ενός<br />
συστήματος κρατήσεων για μεταφορές υψηλής αξίας, όπως είναι π.χ. οι αερομεταφορές και οι<br />
σιδηροδρομικές μεταφορές ποιότητας. Οι πρώτες αυτές εφαρμογές CRS (Computer Reservations<br />
Systems) χρησιμοποιούσαν mainframe βάσεις δεδομένων και OLTP συστήματα (OnLine Transaction<br />
Processing). Φαρακτηριστικά αναφέρονται οι εφαρμογές Sabre (Semi-Automatic Business<br />
Research Environment, αρχικά για την American Airlines), Amadeus (αρχικά για τις Air France,<br />
Lufthansa, Iberia, SAS), Galileo (αρχικά ως Apollo της United Airlines, συμμετείχε και η Ολυμπιακή<br />
ως αντιπρόσωπος), Worldspan (από την συνένωση του PARS της TWA και του DATAS II της DELTA)<br />
και η Rail Journey Information System, η οποία αναπτύχθηκε από την British Rail. Οι μετεξελίξεις<br />
αυτών των συστημάτων λειτουργούν ακόμη και σήμερα, έχοντας υπηρεσίες και για άλλους τομείς,<br />
όπως οι κρατήσεις ξενοδοχειακών δωματίων και η ενοικίαση αυτοκινήτων.<br />
Με την ανάπτυξη της τεχνολογίας, και ιδιαίτερα όσο αυτή διαχεόταν ολοένα και περισσότερο προς<br />
τον απλό άνθρωπο, αναπτύχθηκαν σταδιακά νέα κανάλια, άμεσης μάλιστα επικοινωνίας, μεταξύ του<br />
(υποψήφιου) επιβάτη και των συστημάτων σχεδιασμού ταξιδίων και κράτησης εισιτηρίων. Σέτοια νέα<br />
κανάλια είναι π.χ. οι προσωπικοί υπολογιστές, τα SMS, και πιο πρόσφατα οτιδήποτε είναι<br />
διασυνδεδεμένο μέσω internet, όπως π.χ. τα κινητά τηλέφωνα.<br />
τις αρχές της δεκαετίας του 2000 έγιναν διαθέσιμοι οι πρώτοι web planners που αφορούσαν<br />
αστικές συγκοινωνίες μητροπολιτικών περιοχών, όπως είναι π.χ. ο planner του Transport For London<br />
(παράγραφος 2.2.1). Σην ίδια περίπου εποχή η υπηρεσία Traveline παρείχε multimodal σχεδιασμό<br />
ταξιδίων για ολόκληρο το Ηνωμένο Βασίλειο.<br />
ταδιακά οι σχεδιαστές ταξιδίων άρχισαν να γίνονται διαθέσιμοι από ολοένα και περισσότερες<br />
εταιρείες μεταφορών, με επόμενο βήμα κάθε φορά να είναι η συνένωση συστημάτων, ώστε να<br />
συμπεριλαμβάνονται περισσότερες εταιρείες, περισσότερα μέσα, και μεγαλύτερες περιοχές.<br />
Λόγω της ραγδαίας γιγάντωσης αυτών των συστημάτων, ολόενα και περισσότερο γίνεται φανερή η<br />
ανάγκη υιοθέτησης προτύπων, αλλά και δημιουργίας κατανεμημένων συστημάτων, όπου κάθε<br />
επιμέρους σύστημα θα είναι υπεύθυνο για τον λεπτομερή σχεδιασμό μόνο ενός τμήματος του<br />
ταξιδίου. Ήδη έχουν δημιουργηθεί κάποια σχετικά πρωτόκολλα, όπως είναι το EU Spirit, το<br />
JourneyWeb, το Delpfi, αλλά και το Xephos, ενώ κάποιοι σχεδιαστές λειτουργούν στην ουσία ως<br />
metaplanners, αξιοποιούν δηλαδή τα Interfaces διαφόρων σχεδιαστών και συνδυάζουν τα<br />
αποτελέσματα.<br />
9
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
2.2 Παρουσίαση Τπαρχουσών Αντίστοιχων Εφαρμογών.<br />
τη συνέχεια γίνεται μια σύντομη παρουσίαση εφαρμογών για τον χεδιασμό Σαξιδιών με ΜΜΜ σε<br />
ένα αστικό περιβάλλον, από την Ελλάδα κι από άλλες χώρες. Οι εφαρμογές που παρουσιάζονται<br />
είναι ενδεικτικές, καθώς υπάρχει αυτή την στιγμή μεγάλος αριθμός τέτοιων εφαρμογών,<br />
προσβάσιμες μέσω του WWW. Σο μεγάλο πλήθος τους είναι αποτέλεσμα της έντονης<br />
διαφορετικότητας που υπάρχει στις δομές και τη λειτουργία των δικτύων ΜΜΜ, όπως επίσης και στις<br />
ανάγκες του επιβατικού κοινού κάθε πόλης. Έτσι, η κάθε εφαρμογή μπορεί και να βασίζεται σε<br />
κάποιον σχετικό κορμό υλοποίησης, περιέχει όμως αρκετά στοιχεία προσαρμογής.<br />
2.2.1 Transport For London (EFA application)<br />
To Transport For London (Tfl) είναι ο φορέας που ιδρύθηκε το έτος 2000 και είναι υπεύθυνος για τις<br />
μεταφορές της πόλης, υλοποιώντας τις στρατηγικές που επιλέγονται, και παρέχοντας τις σχετικές<br />
υπηρεσίες.<br />
Οι υπηρεσίες αυτές αφορούν:<br />
Σα αστικά λεωφορεία,<br />
Σον υπόγειο σιδηρόδρομο,<br />
Σο Docklands Light Railway (DLS),<br />
Σον υπέργειο σιδηρόδρομο,<br />
Σο Tramlink,<br />
Σις μετακινήσεις με πλοιάρια,<br />
Σον σταθμό υπεραστικών λεωφορείων Victoria.<br />
τα πλαίσια της εξυπηρέτησης του επιβατικού κοινού λειτουργεί το site http://site www.tfl.gov.uk,<br />
στο οποίο μπορεί κανείς να βρει πλήθος πληροφοριών σχετικά με το δίκτυο, την λειτουργία του, τα<br />
δρομολόγια, τα είδη και τις τιμές των εισιτηρίων/καρτών, διάφορους χάρτες, κ.α..<br />
Μία πολύ χρήσιμη λειτουργία είναι ο Journey Planner, ο οποίος έκανε την εμφάνισή του το 2002 και<br />
παρέχεται σε αρκετές γλώσσες, μεταξύ των οποίων και τα Ελληνικά.<br />
Ο Journey Planner αποτελεί εφαρμογή του EFA της εταιρίας Mentz Datenverarbeitung GmbH, και<br />
περιέχει όλα τα μέσα που διενεργούν αστική συγκοινωνία και προαναφέρθηκαν, όπως επίσης μπορεί<br />
να σχεδιάσει λαμβάνοντας υπόψη την μετακίνηση με ποδήλατο ή την χρήση αναπηρικού αμαξιδίου.<br />
10
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Τπάρχει ένα πολύ απλό interface, με<br />
την επιλογή της προέλευσης και του<br />
προορισμού ως κείμενα, όπου ο<br />
χρήστης μπορεί να επιλέξει όμως την<br />
πιο σύνθετη δημιουργία ταξιδιού,<br />
βάζοντας περισσότερες παραμέτρους.<br />
Η αναζήτηση θέσεων προέλευσης και<br />
προορισμού μπορεί να γίνει μέσω<br />
λέξεων που να αφορούν τα ονόματα<br />
στάσεων και σταθμών, διευθύνσεις, ή<br />
σημεία ενδιαφέροντος, όχι όμως μέσω<br />
κάποιου χάρτη.<br />
Η παραμετροποίηση, μεταξύ άλλων,<br />
έχει να κάνει με το αν η σχεδίαση<br />
ταξιδιού θα δίνει την ταχύτερη<br />
διαδρομή, αυτή με τις λιγότερες<br />
μετεπιβιβάσεις, ή αυτή με το λιγότερο<br />
περπάτημα. Επίσης, με την επιλογή<br />
ενός ενδιάμεσου προορισμού, με το<br />
ποια μέσα επιθυμείται να<br />
χρησιμοποιηθούν, με τον αν μπορούν<br />
να χρησιμοποιηθούν σκάλες στους<br />
σταθμούς ή όχι, κ.α.. Ο χρήστης<br />
μπορεί να ορίσει τις τιμές για το<br />
μέγιστο περπάτημα, ή την μέγιστη<br />
ποδηλασία.<br />
Αφού ο χρήστης κάνει τις επιλογές που<br />
επιθυμεί, σε επόμενο βήμα του<br />
παρουσιάζεται μια λίστα με τις<br />
προτάσεις ταξιδιού, και με επιλογές για<br />
προβολή προγενέστερων ή<br />
μεταγενέστερων επιλογών.<br />
ε επόμενο βήμα, γίνεται αναλυτική<br />
παρουσίαση της πρότασης ή των<br />
προτάσεων που έχει επιλέξει ο χρήστης.<br />
Εικόνα 4: υνοπτικά οι διάφορες προτάσεις<br />
ταξιδίου από μία αναζήτηση στον Journey<br />
Planner του Tfl.<br />
Εικόνα 3: Οι διάφορες επιλογές στον χεδιαστή Σαξιδιών<br />
του TfL.<br />
11
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
το βήμα αυτό, μπορεί κανείς να δει σχηματικά<br />
το προτεινόμενο ταξίδι, να δει σε ένθετο χάρτη<br />
τις περιοχές γύρω από τις στάσεις, να τυπώσει<br />
την πρόταση, ή να την αποστείλει σε κάποια<br />
διεύθυνση email. Επίσης, παρέχονται<br />
πληροφορίες σχετικά με την ζώνη εισιτηρίων,<br />
και τα πιθανά έργα π.χ. που εκτελούνται και<br />
μειώνουν την αξιοπιστία ή το επίπεδο<br />
εξυπηρέτησης.<br />
Αξιοσημείωτο είναι πως το TfL παρέχει τα<br />
στοιχεία του σε διάφορες μορφές (text files,<br />
KML files, κτλ), για ενσωμάτωση σε sites<br />
άλλων.<br />
2.2.2 EFA (Elektronische<br />
Fahrplanauskunft).<br />
O Journey Planner του TfL είναι η<br />
χαρακτηριστικότερη εφαρμογή του EFA, το<br />
οποίο είναι προϊόν της εταιρίας Mentz<br />
Datenverarbeitung GmbH.<br />
Η εταιρία δραστηριοποιείται πολλά χρόνια στην ανάπτυξη λογισμικού για ΜΜΜ. Ιδρύθηκε το 1972<br />
και το 1979 παρουσίασε το DIVA, λογισμικό κυρίως για την διαχείριση δρομολογίων. Σο 1988<br />
παρουσίασε το EFA, το οποίο είναι ένας <strong>Intermodal</strong> Journey Planner.<br />
Αρχικά τα προϊόντα αυτά ανεπτύχθησαν για τους υπολογιστές Nixdorf, όμως τα πρώτα χρόνια της<br />
δεκαετίας ‘90 έγινε μετάβαση στο Unix, και μετέπειτα, το 1998, στο λειτουργικό Windows.<br />
To 2001 έγινε ανάληψη της δημιουργίας ενός χεδιαστή Σαξιδιού για την βρετανική πρωτεύουσα, ο<br />
οποίος τέθηκε σε λειτουργία το 2002. Η συγκεκριμένη υλοποίηση είναι η μεγαλύτερη σε μέγεθος που<br />
έχει γίνει για το EFA. Άλλες μικρότερου μεγέθους υλοποιήσεις έχουν γίνει σε διάφορες περιοχές του<br />
κόσμου: στην Αυστραλία, στην Αυστρία, στην Γερμανία, στην Ιταλία, στην Ελβετία, στα Ηνωμένα<br />
Αραβικά Εμιράτα, τις ΗΠΑ, και στην υπόλοιπη Βρετανία.<br />
Ας σημειωθεί ότι το EFA δεν είναι μόνο ένας χεδιαστής Σαξιδιών. Αυτός είναι ένα module σε ένα<br />
πακέτο που περιλαμβάνει διάφορα χαρακτηριστικά και δυνατότητες. Σα βασικότερα από αυτά είναι<br />
τα εξής:<br />
Εικόνα 5: Εμφάνιση λεπτομερειών για μία<br />
πρόταση ταξιδίων του Journey Planner του Tfl.<br />
12
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
χεδιαστής Σαξιδιών μέσω Web.<br />
χεδιαστής Σαξιδιών για τηλεφωνικά κέντρα εξυπηρέτησης κοινού.<br />
Η βασική διαφοροποίηση του ως προς τον διατιθέμενο απευθείας στον κοινό χεδιαστή είναι πως<br />
πρόκειται για εφαρμογή με λιτότερο περιβάλλον και για χρήστες-γνώστες, με μεγαλύτερη όμως<br />
απόδοση.<br />
Εικόνα 6: Ο χεδιαστής Σαξιδιών για τηλεφωνικά κέντρα του EFA.<br />
Διαχείριση πληροφοριών που αφορούν ΑΜΕΑ.<br />
Διαχείριση πληροφοριών που αφορούν συμβάντα μη κανονικής λειτουργίας.<br />
Δημιουργία προσωπικών πινάκων δρομολογίων (ανά στάση π.χ.).<br />
Εκτίμηση σε πραγματικό χρόνο της διέλευσης ενός οχήματος, πέρα από τον<br />
προγραμματισμό, με χρήση υστημάτων Εντοπισμού Θέσης.<br />
Παροχή υπηρεσιών μέσω κινητών τηλεφώνων.<br />
χεδιασμό διαδρομών με αυτοκίνητο, ποδήλατο, ή πεζή.<br />
Σο EFA υποστηρίζει τα πρωτόκολλα DELPHI, EU-Spirit, και JourneyWeb σχετικά με την κατανεμημένη<br />
πληροφορία που χρησιμοποιούν οι χεδιαστές Σαξιδιών.<br />
13
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
2.2.3 Google Transit (ε διάφορες περιοχές ανά τον κόσμο).<br />
Η Google είναι εταιρία που δεν χρειάζεται ιδιαίτερες συστάσεις, καθώς δραστηριοποιείται σε ένα<br />
ευρύ φάσμα υπηρεσιών μέσω Internet, οι οποίες μάλιστα κατά κανόνα παρέχονται δωρεάν στην<br />
βασική τους μορφή (π.χ. Μηχανή Αναζήτησης, Gmail, YouTube).<br />
Μία από τις πλέον γνωστές και χρησιμοποιούμενες υπηρεσίες είναι η παροχή χαρτών και<br />
φωτοχαρτών για ολόκληρο τον πλανήτη, είτε μέσω του Google Maps, είτε μέσω του Google Earth.<br />
Με την χρησιμοποίηση ιδιαίτερα του Google Maps API, οι χάρτες της Google αποτελούν το<br />
υπόβαθρο για πάρα πολλές εφαρμογές ανά τον κόσμο, με μεγάλη ποκιλία θεμάτων, καθώς μάλιστα<br />
δίνεται η δυνατότητα αξιοποίησης λειτουργιών πέρα από το απλό χαρτογραφικό υπόβαθρο, όπως<br />
είναι π.χ. η εύρεση διαδρομών, το geocoding, κ.α..<br />
Μία από τις υπηρεσίες της Google που βασίζεται στo Google Μaps είναι και το Google Transit.<br />
Μέσω της υπηρεσίας αυτής είναι δυνατόν να βρίσκει κανείς προτεινόμενες διαδρομές για να τις<br />
πραγματοποιήσει όχι μόνο πεζή ή με το αυτοκίνητο, αλλά και με Μέσα Μαζικής Μεταφοράς.<br />
Οι περιοχές κάλυψης αυξάνονται συνεχώς, με αυτή την στιμή να συμπεριλαμβάνονται περίπου 450<br />
πόλεις ανά τον κόσμο. Σα συγκοινωνιακά στοιχεία για κάθε πόλη προσφέρονται από τους ίδιους τους<br />
φορείς που είναι υπεύθυνοι για την λειτουργία των αστικών συγκοινωνιών, μέσω ενός προγράμματος<br />
συμμετοχής.<br />
τα πλαίσια αυτού του προγράμματος, ο όποιος νδιαφερόμενος συγκοινωνιακός φορέας χρειάζεται<br />
να υλοποιήσει ένα feed δεδομένων σύμφωνα με το format που έχει υιοθετήσει η Google, το οποίο<br />
ονομάζεται General Transit Feed Specification (GTFS, πρώην Google Transit Feed Specification) και<br />
το οποίο εξετάζεται σε επόμενο Κεφάλαιο. Ας σημειωθεί προς το παρόν ότι το format αυτό έχει γίνει<br />
πλέον το de facto πρότυπο για όλες τις σχετικές εφαρμογές.<br />
τη συνέχεια κι αφού κάνει τους δικούς του ελέγχους, ο φορέας χρειάζεται να έρθει σε επαφή με την<br />
Google, έτσι ώστε τo feed να είναι προσβάσιμο και να συμμετέχει στο Google Transit. Για κάποιο<br />
διάστημα στην άρχη τα συγκεκριμένα δεδομένα δεν είναι διαθέσιμα παρά μόνο στον ίδιον τον<br />
φορέα, έτσι ώστε αυτός να μπορέσει να διεξάγει επιπλέον ελέγχους. ταν πλέον τα δεδομένα<br />
κριθούν ικανοποιητικά για την ποιότητα και πληρότητά τους, τότε συμμετέχουν στην κανονική<br />
χρήση. Κάθε feed έχει μία ημερομηνία λήξης της εγκυρότητάς του, και ο ίδιος ο φορέας είναι<br />
υπεύθυνος για την ανανέωσή του.<br />
Σο περιβάλλον χρήσης του Google Transit είναι αρκετά απλό κι εύχρηστο, και δανείζεται στοιχεία<br />
από το Google Maps. Αυτό είναι μεγάλο πλεονέκτημα, καθώς έτσι παρέχει ένα περιβάλλον χρήστη<br />
σχετικά οικίο σε πάρα πολύ μεγάλο πληθυσμό.<br />
14
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 7: Σο περιβάλλον του Google Transit με αποτελέσματα από αναζήτηση για αστική μετακίνηση<br />
στο Amsterdam. τα αριστερά της εικόνας παρουσιάζονται 4 διαφορετικές προτάσεις, κι από κάτω,<br />
λεπτομέρειες για την επιλεγμένη από αυτές.<br />
Άλλο μεγάλο πλεονέκτημα είναι ότι το ίδιο το περιβάλλον, πέρα από το ότι μοιάζει με το Google<br />
Maps, όσο αυξάνονται οι πόλεις που καλύπτονται, τόσο αυτό μαθαίνεται από περισσότερο κόσμο.<br />
Έτσι, κάποιος μπορεί να αναζητήσει μια πρόταση διαδρομής σε μία άλλη πόλη, σε μία άλλη χώρα,<br />
που θα επισκεφτεί ή ήδη επισκέφτεται, χρησιμοποιώντας ένα εργαλείο που το έχει<br />
ξαναχρησιμοποιήσει στο παρελθόν. Λαμβάνοντας υπόψη ότι οι υπηρεσίες της Google παρέχονται σε<br />
αρκετές γλώσσες, τότε η εξάπλωση του Google Transit είναι φανερό ότι θα γίνεται με ολοένα και πιο<br />
γρήγορους ρυθμούς.<br />
σο μάλιστα θα προστίθενται νέες περιοχές κάλυψης, το Google Transit θα γίνεται όλο και<br />
περισσότερο ένας intermodal trip planner, καθώς θα καλύπτονται αστικές, προαστιακές, αλλά και<br />
υπεραστικές μετακινήσεις.<br />
Σο μειονέκτημά του όμως είναι ότι δεν μπορεί να ακολουθήσει εύκολα τις ιδιομορφίες κάθε<br />
διαφορετικής πόλης, κι επίσης είναι πάρα πολύ απίθανο να προσαρμοστούν σταδιακά οι λειτουργίες<br />
των αστικών συγκοινωνιών, επηρεαζόμενες ώστε να συγκλίνουν στην λειτουργία πάνω στην οποία<br />
έχει δομηθεί το Google Transit.<br />
Κατά αυτόν τον τρόπο, ως φαίνεται, το Google Transit θα αποτελεί στο μέλλον την εφαρμογή που<br />
θα χρησιμοποιεί σε πρώτη προσέγγιση κάποιος για να κινηθεί μεταξύ διαφορετικών συστημάτων<br />
15
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
συγκοινωνιών, όπως π.χ. από μία πόλη σε μία άλλη, αλλά και μέσα σε μία άγνωστη για αυτόν πόλη.<br />
μως, όταν πλέον αυτός ο κάποιος θα χρειάζεται περισσότερο εξειδικευμένη πληροφόρηση, τότε θα<br />
χρησιμοποιεί τις εφαρμογές των φορέων συγκοινωνιών των επιμέρους τμημάτων διαδρομής, ή της<br />
πόλης στην οποία θα κινείται.<br />
Αν δηλαδή κάποιος θα θέλει να μετακινηθεί π.χ. από ένα σημείο στο Amsterdam προς ένα σημείο<br />
στo Hamburg, τότε θα χρησιμοποιεί αρχικά το Google Transit ώστε να του δωθούν οι γενικές οδηγίες<br />
και να εκτιμήσει χρόνους (π.χ. tram μέχρι τον κεντρικό σιδηροδρομικό σταθμό του Amsterdam,<br />
τρένο μέχρι τον αντίστοιχο σταθμό του Hamburg, κι έπειτα λεωφορείο μέχρι το ξενοδοχείο), αλλά<br />
στη συνέχεια θα χρησιμοποιεί τις εξειδικευμένες εφαρμογές για τις αστικές συγκοινωνίες στις δύο<br />
πόλεις και την υπεραστική μετακίνηση μεταξύ αυτών.<br />
Με την χρησιμοποίηση των εξιδεικευμένων εφαρμογών ο χρήστης θα έχει πιθανόν εγκυρότερη, αλλά<br />
και περισσότερη πληροφόρηση, όπως σχετικά με έκτατες τροποποιήσεις διαδρομών και<br />
δρομολογίων, με τιμή ή/και αγορά εισιτηρίων, οδηγίες για<br />
μετεπιβιβάσεις κ.α..<br />
Είναι προφανές πάντως ότι μία εφαρμογή όπως της Google, η οποία<br />
απευθύνεται σε παγκόσμιο κοινό, θα θέτει συνεχώς τον κορμό<br />
λειτουργίας γύρω από τον οποίο θα πρέπει να περιστρέφονται οι<br />
υπόλοιπες εφαρμογές, κύρια ώστε να εξασφαλίζεται η μεγιστοποίηση<br />
της αρχικής γνώσης χρήσης.<br />
Ας σημειωθεί ότι η υπηρεσία της Google παρέχεται προασρμοσμένη και<br />
για κινητά τηλέφωνα, έτσι ώστε να γίνεται καλύτερη απεικόνιση σε<br />
μικρή οθόνη.<br />
Η εφαρμογή βρίσκεται στην εξής διεύθυνση: www.google.com/transit.<br />
Εικόνα 8: Φαρακτηριστική<br />
εικόνα από το Google<br />
Transit σε οθόνη κινητού.<br />
16
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
2.2.4 RATP (Île-de-France).<br />
Η RATP είναι ο φορέας για τις αστικές και μέρους των<br />
προαστιακών (RER) συγκοινωνιών στην περιοχή του Paris.<br />
Ιδρύθηκε το 1948, κι έχει υπό την εποπτεία του τις γραμμές<br />
metro, εν μέρει τις γραμμές RER, το σύνολο των<br />
λεωφορειακών γραμμών, και τις 3 από τις 4 γραμμές tram, με<br />
τα υπόλοιπα συγκοινωνιακά στοιχεία να είναι υπό την<br />
εποπτεία της SNCF.<br />
τα πλαίσια της εξυπηρέτησης του επιβατικού κοινού<br />
λειτουργεί σχετικό site σε 7 γλώσσες, το οποίο περιλαμβάνει μεταξύ άλλων και trip planner για την<br />
περιοχή κάλυψης (Île-de-France). Ο trip planner προσφέρεται σε δύο εκδοχές.<br />
Η πρώτη εκδοχή βασίζεται αμιγώς σε κείμενο, καθώς κάποιος εισάγει το μέρος εκκίνησης και το<br />
μέρος τερματισμού, επιλέγοντας το πότε επιθυμεί να μετακινηθεί και με ποιά μέσα.<br />
17
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 9: Σο περιβάλλον χρήσης για τον trip planner της RATP με βάση το κείμενο.<br />
Ας σημειωθεί ότι η αναζήτηση των σημείων εκκίνησης και τερματισμού μπορεί να γίνει είτε με την<br />
διεύθυνση, είτε με την ονομασία σταθμού, είτε με την ονομασία της περιοχής. Επίσης παρέχεται η<br />
δυνατότητα διατήρησης bookmarks.<br />
Σα αποτελέσματα παρουσιάζονται κι αυτά σε μορφή κειμένου, με μικρό ένθετο χάρτη, είτε για την<br />
περιοχή αναχώρησης, είτε για την περιοχή άφιξης, σε διάταξη που διευκολύνει την εκτύπωση.<br />
18
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 10: Αποτελέσματα του trip planner της RATP.<br />
19
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Πέρα όμως από τον trip planner σε μορφή κειμένου, η RATP παρέχει έναν διαδραστικό (Interactif)<br />
trip planner, ο οποίος είναι ιδιαίτερα εύχρηστος κι αρκετά εντυπωσιακός.<br />
Εικόνα 11: Ο διαδραστικός χάρτης/trip planner της RATP.<br />
Λειτουργεί σαν μία Flash εφαρμογή, με έναν χάρτη που απεικονίζει τους σταθμούς metro, RER,<br />
tram, και τις ζώνες εισιτηρίων.<br />
Σο μειονέκτημα είναι βεβαίως ότι έτσι δεν παρέχεται η δυνατότητα να εντοπίσει κανείς κάτι πέρα<br />
από τους σταθμούς του δικτύου. Θα πρέπει δηλαδή να γνωρίζει ήδη τους σταθμούς οι οποίοι<br />
εξυπηρετούν τα σημεία εκκίνησης και τερματισμού. Επίσης, δεν παρέχεται καθοδήγηση με χρήση<br />
των λεωφορειακών γραμμών, αν και υπάρχει άλλος διαδραστικός χάρτης που παρουσιάζει το δίκτυό<br />
τους.<br />
τα θετικά και των δύο συστημάτων είναι η δυνατότητα εμφάνισης κι εκτύπωσης των αναλυτικών<br />
δρομολογίων ανά σταθμό ή/και γραμμή, όπως επίσης των έκτακτων συμβάντων/τροποποιήσεων,<br />
γεγονός που βοηθά ιδιαίτερα στον προγραμματισμό μίας μετακίνησης. Επίσης, παρέχεται<br />
πληροφόρηση για τις επόμενες αφίξεις οχημάτων σε σταθμό ή στάση.<br />
Η παροχή των περισσότερων υπηρεσιών γίνεται και με χρήση κινητού τηλεφώνου, είτε iPhone, είτε<br />
<strong>An</strong>droid, με προσαρμογή ώστε να υπάρχει περιορισμός του όγκου των διακινούμενων δεδομένων,<br />
αλλά και καλύτερη απεικόνιση σε μικρή οθόνη.<br />
20
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 12: Η εφαρμογή RATP Premium σε iPhone.<br />
Η εφαρμογή ονομάζεται ―Ma RATP dans la poche‖ και είναι διαθέσιμη σε δύο εκδόσεις, την RATP<br />
Lite που παρέχεται δωρεάν, και την RATP Premium που παρέχεται έναντι μικρού τιμίματος ($ 0.99).<br />
Δεν ήταν δυνατό να γίνει χρήση των εφαρμογών αυτών, και δεν είναι ξεκάθαρες οι διαφορές μεταξύ<br />
των δύο εκδόσεων. Πιθανόν η δωρεάν έκδοση να μην παρέχει χάρτες και την δυνατότητα<br />
προσαρμογής ανάλογα με την τρέχουσα θέση (geolocalisation), όπως επίσης να μην εμφανίζει<br />
στοιχεία σε πραγματικό χρόνο για τις αφίξεις.<br />
Η διεύθυνση του site της RATP είναι η εξής: www.ratp.fr,<br />
ενώ υπάρχει τμήμα που απευθύνεται στους επισκέπτες της περιοχής, με πλήθος επεξηγήσεων,<br />
προτεινόμενων τουριστικών αξιοθεάτων, κτλ.<br />
21
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
2.2.5 ΑΔΑΜΑ (Αθήνα)<br />
Ο ΟΑΑ είναι ο φορέας που έχει υπό την εποπτεία του τις αστικές συγκοινωνίες της ευρύτερης<br />
περιοχής της Αθήνας.<br />
το site του Οργανισμού φιλοξενείται η εφαρμογή ΑΔΑΜΑ, το όνομα της οποίας προέρχεται από τα<br />
αρχικά των λέξεων: ‗Αττική Δικτυακή εφαρμογή Αριστοποίησης Μετακινήσεων με Αστικές<br />
υγκοινωνίες‘. Σο έργο υλοποιήθηκε στο πλαίσιο του Επιχειρησιακού Προγράμματος<br />
«Ανταγωνιστικότητα» του Γ‘ ΚΠ (Πρόγραμμα Σεχνολογικών Επιδεικτικών Έργων ΠΕΠΕΡ) και<br />
συγχρηματοδοτήθηκε από την Ευρωπαϊκή Ένωση και τη<br />
Γενική Γραμματεία Έρευνας & Σεχνολογίας. Ο φορέας<br />
υλοποίησης του ΑΔΑΜΑ είναι η εταιρεία THESA ΑΕ, με<br />
συνεργαζόμενο φορέα την εταιρεία MDM AEE.<br />
Αν και λειτουργεί αρκετά χρόνια, στην αρχική σελίδα<br />
αναφέρεται ότι βρίσκεται σε δοκιμαστική λειτουργία.<br />
Σο περιβάλλον της εφαρμογής είναι αμιγώς κειμένου. Ο<br />
xρήστης έχει την δυνατότητα να επιλέξει την Αφετηρία και<br />
τον προορισμό μέσα από ιεραρχημένα Combo Boxes. Έτσι,<br />
δίνεται η δυνατότητα περιορισμένης επιλογής, ανάμεσα<br />
από Γραμμές-τάσεις, Οδούς και τάσεις, ημεία<br />
Ενδιαφέροντος, ή Διασταυρώσεις.<br />
Οι οδοί που διατίθενται είναι αυτές στις οποίες υπάρχουν<br />
στάσεις, γεγονός που σημαίνει ότι ο χρήστης θα πρέπει να<br />
γνωρίζει ήδη τις περιοχές εκκίνησης και τερματισμού, ώστε<br />
να είναι σε θέση να προσδιορίσει ποιές οδοί με διερχόμενα<br />
Μέσα Μαζικής Μεταφοράς βρίσκονται κοντά.<br />
Επίσης, κατά αυτόν τον τρόπο πρέπει ο ίδιος να επιλέξει<br />
στάσεις αφετηρίας και προορισμού, δεν του παρέχει<br />
δηλαδή η εφαρμογή λύσεις που να περιέχουν όλες τις<br />
γειτονικές στάσεις, εκτός αν κάνει αναζήτηση με κάποιο από τα παρεχόμενα σημεία ενδιαφέροντος<br />
που πιθανόν να είναι κοντά του.<br />
Σα σημεία ενδιαφέροντος χωρίζονται σε διάφορες κατηγορίες (π.χ. Κινηματογράφοι, Εκκλησίες),<br />
όμως δεν είναι πλήρη σε όλες τις κατηγορίες.<br />
Εικόνα 13: Εισαγωγή/αναζήτηση<br />
Αφετηρίας-Σερματισμού στην<br />
εφαρμογή ΑΔΑΜΑ.<br />
22
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σα αποτελέσματα που δίνονται δεν διαθέτουν καθόλου χαρτογραφική πληροφόρηση, όπως επίσηε<br />
δεν παρέχεται πληροφόρηση για την διάρκεια του ταξιδιού, την διάρκεια κάθε επιμέρους κλάδου, τις<br />
τιμές των εισιτηρίων. Σα μόνα διατιθέμενα στοιχεία είναι αυτά των γραμμών, των στάσεων<br />
επιβίβασης/αποβίβασης, και του μήκους της διαδρομής που χρειάζεται να γίνει πεζή.<br />
Δίνεται μία κύρια και διάφορες εναλλακτικές προτάσεις, όμως στις εναλλακτικές υπάγονται και<br />
αυτές που είναι απλά χρήση άλλης λεωφορειακής γραμμής μεταξύ δύο ίδιων στάσεων.<br />
23
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 14: Φαρακτηριστική εικόνα προτεινόμενων διαδρομών από την εφαρμογή ΑΔΑΜΑ.<br />
Η εφαρμογή παρέχεται μόνο στην Ελληνική γλώσσα, και βρίσκεται στη web διεύθυνση: tp.oasa.gr.<br />
24
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
2.2.6 ΠΤΛΗ ΔΡΟΜΟΛΟΓΗΗ ΠΕΡΙΥΕΡΕΙΑ ΑΣΣΙΚΗ<br />
Η Περιφέρεια Αττικής παρέχει μία διαδικτυακή πύλη (portal) σχετικά με την δρομολόγηση στην<br />
περιοχή της. Δημιουργήθηκε στα πλαίσια του «Ενοποιημένου υστήματος υνδυασμένων<br />
Μεταφορών στην Περιφέρεια» και εντάχθηκε στο μέτρο 2.4 «Περιφερειακά Γεωγραφικά υστήματα<br />
Και Καινοτόμες Ενέργειες» του Επιχειρησιακού Προγράμματος «Κοινωνία της Πληροφορίας»,<br />
χρηματοδοτούμενο κατα 80% από κοινοτικούς πόρους. Η πύλη προσφέρεται τόσο στην Ελληνική,<br />
όσο και στην Αγγλική γλώσσα.<br />
Η δρομολόγηση αφορά τα Μέσα Μαζικής Μεταφοράς, αλλά και τις μετακινήσεις με ΙΦ αυτοκίνητο.<br />
Επίσης, υπάρχει η δυνατότητα συνδυασμού αυτών, καθώς αν η διαδρομή μέχρι την πλησιέστερη<br />
στάση ή σταθμό είναι μεγαλύτερη από 500 m, τότε οι προσφερόμενες λύσεις είναι συνδυασμός<br />
μετακίνησης με αυτοκίνητο και ΜΜΜ, κι όχι πεζή και ΜΜΜ.<br />
Ας σημειωθεί ότι η πύλη παρέχει και πληροφόρηση σχετικά με τις επικρατούσες συνθήκες<br />
κυκλοφορίας, κι άλλες χρήσιμες πληροφορίες που συνδέονται με τις μετακινήσεις, όπως είναι π.χ. τα<br />
εφημερεύοντα φαρμακεία και νοσοκομεία, ή ο καιρός.<br />
Σο περιβάλλον χρήσης είναι αρκετά καλά δομημένο, όμως λόγω της πληθώρας αντικειμένων κι<br />
επιλογών γίνεται δύσχρηστο, ιδιαίτερα λόγω της αργής λειτουργίας των διαφόρων ενεργών στοιχείων.<br />
Αρκετά αργή είναι επίσης γενικότερα η απόκριση, όπως π.χ. η ενημέρωση του χάρτη, γεγονός<br />
βεβαία που οφείλεται σε αργή σύνδεση με τον server.<br />
Η επιλογή αφετηρίας και τερματισμού μπορεί να γίνει είτε με την διεύθυνση, είτε με τις<br />
συντεταγμένες (σπάνια χρήσιμο), είτε με βάση κάποια διασταύρωση, μία στάση, ή ένα σημείο<br />
ενδιαφέροντος.<br />
25
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 15: Φαρακτηριστικό στιγμιότυπο από την Πύλη Δρομολόγησης της Περιφέρειας Αττικής.<br />
26
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σο σημεία ενδιαφέροντος είναι κατανεμημένα σε κατηγορίες και υποκατηγορίες (π.χ. Πολιτισμός ><br />
Μουσείο). Δεν παρέχεται απευθείας λίστα με τα αντικείμενα, αλλά πρέπει κανείς να πληκτρολογήσει<br />
το όνομα και, αφού η εφαρμογή κάνει αλφαριθμητική έυρεση,<br />
να εμφανιστεί λίστα επιλογής. Δυστυχώς, πολλά αντικείμενα με<br />
παρόμοιο όνομα εμφανίζονται στη λίστα χωρίς επιπλέον<br />
πληροφορία, οπότε είναι δύσκολο να επιλέξει κάποιος το σημείο<br />
ενδιαφέροντος που επιθυμεί. Π.χ. η ονομασία ‗Αγιος<br />
Κωνσταντίνος‘ θα δημιουργήσει μία λίστα με 7 ίδια αντικείμενα.<br />
Αν υπήρχε δίπλα στην ονομασία ο Δήμος, τότε θα ήταν<br />
ευκολότερη η αναγνώριση.<br />
Ένα ενδιαφέρον στοιχείο είναι η δυνατότητα επιλεκτικής<br />
οπτικοποίησης των σημείων ενδιαφέροντος, και μάλιστα η<br />
παράθεση σε λίστα αυτώς που υπάρχουν κάθε στιγμή στο<br />
παράθυρο της οθόνης.<br />
Σα αποτέλεσματα της εφαρμογής, όσον αφορά μετακινήσεις με<br />
τα ΜΜΜ, αποτελούνται από 1 κύρια και 2 εναλλακτικές<br />
προτάσεις. Παρέχονται αναλυτικότατα στοιχεία, που αφορούν<br />
χρόνους διαδρομής, οδηγίες κίνησης, τα στοιχεία των<br />
χρησιμοποιούμενων ΜΜΜ, και όλα αυτά δίνονται και<br />
οπτικοποιημένα πάνω σε χάρτη, η λειτουργία του οποίου<br />
βασίζεται στo OpenLayers.<br />
Η διαδικασία Routing βασίζεται σε συγκεκριμένους χώρους<br />
διέλευσης των ΜΜΜ από τις στάσεις του δικτύου. τα πλαίσια<br />
αυτά δεν προσφέρονται πληροφορίες για τις εναλλακτικές γραμμές ώστε να μετακινηθεί κάποιος σε<br />
ένα τμήμα της διαδρομής που ορίζεται από δύο συγκεκριμένες στάσεις. Οι εναλλακτικές διαδρομές<br />
που παρουσιάζονται μπορούν να αφορούν και διαφοροποίηση του τμήματος που γίνεται πεζή.<br />
Δηλαδή οι 2 προτάσεις να χρησιμοποιούν τις ίδιες γραμμές ΜΜΜ και τα ίδια δρομολόγια, όμως να<br />
διαφέρουν π.χ. ως προς την τελική στάση αποβίβασης, και συνεπώς την διαδρομή πεζή από αυτήν<br />
ως το σημείο τερματισμού.<br />
Σα αποτέλεσματα παράγονται σε σύντομο χρόνο, όμως φαίνεται να προτείνονται ταξίδια που<br />
περιλαμβάνουν πολλές μετεπιβιβάσεις, ακόμη κι όταν επιλεγεί ως μέθοδος βελτιστοποίησης αυτή<br />
των λιγότερων αλλαγών μέσου.<br />
τον χρήστη παρέχεται η δυνατότητα εκτύπωσης των αποτελεσμάτων, χωρίς όμως να γίνεται<br />
ιδιαίτερη τροποποίηση της μορφοποίησης των αποτελεσμάτων έτσι ώστε να ταιριάζουν καλύτερα<br />
στην έντυπη μορφή.<br />
Εικόνα 16: Παράδειγμα<br />
εμφάνισης ημείων<br />
Ενδιαφέροντος με ίδια ονομασία,<br />
χωρίς δυνατότητα άμεσης<br />
αναγνώρισής τους.<br />
27
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Η εφαρμογή βρίσκεται διαθέσιμη στην διεύθυνση: http://www.atticaroute.gr.<br />
2.2.7 YouDrive (Αθήνα).<br />
Πρόκειται για site που παρέχει προτάσεις ταξιδίου στην Αθήνα αμιγώς με χρήση των ΜΜΜ και πεζή.<br />
Δεν εμφανίζεται συγκεκριμένος φορέας ή εταιρεία υλοποίησης και λειτουργίας. Είναι δομημένο<br />
πάνω στο σύστημα μεταφορών της Αθήνας, κι έτσι παρέχεται η δυνατότητα π.χ. λεπτομερέστερων<br />
επιλογών για την χρήση ή όχι μέσων (Μετρό/ΗΑΠ/Προαστιακός κι όχι όλων μαζί ως Μετρό).<br />
Σο περιβάλλον χρήσης είναι απλό κι εύχρηστο, βασισμένο στον χάρτη των Google Maps, και<br />
γενικότερα στο Google Maps API. Παρέχεται επίσης η δυνατότητα εύρεσης σημείων ενδιαφέροντος<br />
και η επιλεκτική οπτικοποίησή τους, μέσα από μία μεγάλη λίστα σημείων, και μάλιστα<br />
κατηγοριοποιημένων. Δυστυχώς, το site μέχρι στιγμής παρέχεται μόνο στην ελληνική γλώσσα.<br />
τον χρήστη παρέχονται παραπάνω από μία προτάσεις ταξιδίου, χωρίς να είναι σταθερός ο αριθμός<br />
αυτών, προβαλλόμενες κατά σειρά χρόνου διαδρομής. Δεν είναι γνωστό πως γίνεται η διαδικασία<br />
του routing, όμως κάτι πολύ θετικό στην περίπτωση της Αθήνας είναι πως αυτή δεν βασίζεται σε<br />
αυστηρούς χρόνους διέλευσης των μέσων από τις στάσεις. Βασίζεται δηλαδή στις συχνότητες<br />
διέλευσης. ¨Ομως, ο χρήστης μπορεί να επιλέξει μόνο τον τύπο της ημέρας που θέλει να ταξιδέψει<br />
(Καθημερινή/αββάτο/Κυριακή) κι όχι την ώρα, ή έστω την περίοδο μέσα στην ημέρα (πχ. Πρωί,<br />
Μεσημέρι, Βράδυ). Αυτό σημαίνει ότι τα στοιχεία συχνοτήτων που χρησιμοποιούνται είναι ίδια για<br />
όλη την όποια ημέρα, οπότε δεν λαμβάνονται υπόψη οι διαφοροποιήσεις που συμβαίνουν στον<br />
προγραμματισμό των δρομολογίων μέσα σε αυτήν.<br />
28
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εκτός από την επιλογή των Μέσων που επιθυμείται να χρησιμοποιηθούν ή όχι, ο χρήστης μπορεί να<br />
επιλέξει να μην υπάρχει αλλαγή μέσου, ακόμη κι αν έτσι παράγονται λύσεις με μεγαλύτερο χρόνο<br />
διαδρομής.<br />
Εικόνα 17: Φαρακτηριστικό στιγμιότυπο από την εφαρμογή YouDrive, όπου εμφανίζεται μία πρόταση<br />
ταξιδίου.<br />
29
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σα αποτελέσματα του routing παρέχονται σε μορφή λίστας στα αριστερά της οθόνης, με κάθε<br />
πρόταση να βρίσκεται σε διαφορετικό tab. ε κάθε λίστα αναφέρονται στοιχεία για τις ονομασίες<br />
των γραμμών ΜΜΜ που πρέπει να χρησιμοποιηθούν, τις ονομασίες των στάσεων επιβίβασης κι<br />
αποβίβασης σε/από αυτά, τις συχνότητες διέλευσης, όπως επίσης το μήκος και τον χρόνο που<br />
απαιτείται για τις μετακινήσεις πεζή. το τέλος εμφανίζεται ο συνολικός χρόνος που απαιτείται για το<br />
ταξίδι, ο χρόνος αναμονής σε στάσεις (εκτιμώμενος ως το ήμισυ του αθροίσματος του χρόνου των<br />
περιόδων διέλευσης), και μία εκτίμηση του αποτυπώματος CO2 για το συγκεκριμένο ταξίδι.<br />
Σα στοιχεία της λίστας παρέχονται οπτικοποιημένα σε InfoBoxes και Marks του Google Maps API.<br />
Επιπλέον των στοιχείων της λίστας, στα Infoboxes εμφανίζονται όλες οι Γραμμές οι οποίες<br />
εξυπηρετούν τις στάσεις. Περεταίρω, μπορεί κανείς να δει σε μεγαλύτερο InfoBox όλα τα κοντινά<br />
σημεία ενδιαφέροντος, κατηγοριοποιημένα και με εκτίμηση του χρόνου που απαιτείται για την<br />
μετακίνηση προς αυτά, είτε πεζή, είτε με αυτοκίνητο.<br />
Η οπτικοποίηση των στοιχείων αφορά απλώς τα σημεία αφετηρίας και τερματισμού, όπως επίσης και<br />
τις στάσεις που χρησιμοποιούνται. Δεν οπτικοποιούνται δηλαδή οι διαδρομές των ΜΜΜ, ενώ δεν<br />
παρέχεται καθόλου πληροφόρηση, ούτε χαρτογραφικά, ούτε με κείμενο, για τις διαδρομές πεζή.<br />
Για κάθε τμήμα της διαδρομής από στάση σε στάση θα πρέπει να σημειωθεί ότι εμφανίζονται όλες οι<br />
Γραμμές που τις συνδέεουν. (π.χ «Επιβιβάζεστε στο λεωφορείο Α17 ή 806, ή 807». μως ως<br />
φαίνεται, οι εναλλακτικές Γραμμές απλώς εμφανίζονται στον χρήστη, χωρίς να συμμετέχουν στον<br />
αλγόριθμο εύρεσης της πρότασης ταξιδίου. Έτσι, η κάθε λύση δεν προκύπτει λαμβάνοντας υπόψη<br />
τον χρόνο αναμονής που προκύπτει από το σύνολο των Γραμμών που συνδέεουν τις στάσεις ανά δύο<br />
μεταξύ τους (που έχουν τις στάσεις αυτές τμήμα του δρομολογίου τους δηλαδή), αλλά για κάθε μία<br />
Γραμμή ξεχωριστά.<br />
Δεν υπάρχει η δυνατότητα εμφάνισης των αποτελεσμάτων προσαρμοσμένων στις ιδιαιτερότητης της<br />
έντυπης μορφής, κι έτσι ο χρήστης θα πρέπει απλά να εκτυπώσει την ιστοσελίδα ως εμφανίζεται.<br />
Η εφαρμογή YouDrive βρίσκεται στην εξής διεύθυνση: www.youdrive.gr.<br />
30
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
2.3 Γενικές Παρατηρήσεις – Διαφοροποίηση Σης Παρούσας<br />
Τπηρεσίας.<br />
πως εύκολα μπορεί να παρατηρηθεί, οι περισσότερες από τις εφαρμογές πλοήγησης με χρήση<br />
ΜΜΜ έχουν ως βασικό στοιχείο τους τον χάρτη της περιοχής για την οποία λειτουργούν. Ο χάρτης<br />
αυτός, είτε έχει φτιαχτεί ειδικά για την περιοχή, είτε είναι κάποιος από τους ευρέως διαδεδομένους<br />
για όλον τον πλανήτη, με κυριότερο αυτόν της Google.<br />
λες οι εφαρμογές έχουν πάνω-κάτω την ίδια λογική βημάτων που απαιτούνται, καθώς αυτά είναι<br />
αρκετά συγκεκριμενοποιημένα από την φύση του αντικειμένου. Έτσι, αρχικά ο χρήστης επιλέγει την<br />
προέλευση και τον προορισμό, ορίζει κάποιες παραμέτρους για τα μέσα που επιθυμεί να<br />
χρησιμοποιήσει, την βελτιστοποίηση κτλ, και τέλος του παρουσιάζονται τα αποτελέσματα.<br />
Μία εφαρμογή, η Google Transit, απευθύνεται με την ίδια ακριβώς μορφή σε όλο τον πληθυσμό, για<br />
διάφορες περιοχές ολόκληρης της Γης. Αυτό της δίνει το πλεονέκτημα ότι γίνεται ευρέως γνωστή,<br />
τόσο σαν ύπαρξη, όσο και σαν χειρισμός. Για τον λόγο αυτό γίνεται ιδιαίτερα θελκτικό για έναν<br />
φορέα ΜΜΜ να ενδιαφερθεί από μόνος του να δώσει τα στοιχεία του για συμμετοχή στην<br />
εφαρμογή, ενισχύοντας ακόμη περισσότερο την ευρύτητα της κάλυψης. Σο μειονέκτημα του Google<br />
Transit όμως είναι ότι έτσι δεν μπορεί να προσαρμοστεί εύκολα, τουλάχιστον προς το παρόν, στις<br />
ιδιαίτερες συνθήκες που αφορούν κάθε περιοχή και τον τρόπο λειτουργίας των ΜΜΜ σε αυτή. Οι<br />
υπόλοιπες εφαρμογές παρουσιάζουν σχετική προσαρμογή για τις ιδιαιτερότητες των περιοχών, όχι<br />
όμως και στο κοινό στο οποίο απευθύνονται. λες οι εφαρμογές απευθύνονται κατά όμοιο τρόπο<br />
στους πάντες, έχοντας ως χρήστη αναφοράς τον τυπικό κάτοικο της περιοχής.<br />
τις περισσότερες από τις εφαρμογές παρατηρείται το φαινόμενο να δίνονται πλήθος στοιχείων, τα<br />
οποία δεν έχουν πάντα μεγάλη χρησιμότητα στον χρήστη. την ουσία οι σχεδιαστές φαίνεται να<br />
υποκύπτουν στον πειρασμό, έχοντας πάρα πολλά διαθέσιμα στοιχεία και την ευκολία να υπολογίζουν<br />
ακόμη περισσότερα, ώστε να υπερβάλουν στην ποσότητα της πληροφορίας που παρουσιάζουν στα<br />
αποτελέσματα. Αυτό μάλιστα γίνεται συνήθως χωρίς να υπάρχει η δυνατότητα επιλογής από τον<br />
χρήστη της αναλυτικότητας των στοιχείων, με τελικό αποτέλεσμα οι εφαρμογές να παρουσιάζονται<br />
ως να μην έχουν στο επίκεντρο τον άνθρωπο-επιβάτη, τι θέλει και πως μπορεί αυτός κατά το<br />
δυνατόν απλά κι εύκολα να κάνει και να μάθει, αλλά περισσότερο να δίνουν την αίσθηση κάποιες<br />
στιγμές ενός interface μεταφοράς δεδομένων, του οποίου η μορφή είναι δυνατόν να αναγνώσκεται.<br />
Η εφαρμογή που αναπτύχθηκε για την παρούσα Εργασία στηρίζεται στην λογική τού να παρέχεται<br />
στον χρήστη άμεσα η πληροφορία που είναι απολύτως απαραίτητη, μέσα από μία όσο το δυνατόν<br />
περισσότερο απλή, εύκολα κατανοητή, αλλά και σύντομη διαδικασία. Επίσης, υπάρχει συγκεκριμένο<br />
κοινό στο οποίο απευθύνεται, το οποίο είναι ο επισκέπτης της πόλης. Αυτό προσιορίζει διαφόρες<br />
ιδιαιτερότητες λειτουργίας, που έχουν να κάνουν τόσο με την ανύπαρκτη εώς πάρα πολύ μικρή<br />
31
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
εμπειρία χρήσης, με το ότι δεν υπάρχει κανείς λόγος ένας επισκέπτης να θέλει να μάθει κάτι το<br />
οποίο θα του χρειαστεί για λίγες μόνο ημέρες, όπως επίσης με το ότι υπάρχει πολύ μικρή γνώση του<br />
επισκέπτη για τον τρόπο λειτουργίας και το δίκτυο ΜΜΜ της πόλης.<br />
Ακόμη, το ενδιαφέρον δεν είναι για την οπωσδήποτε βέλτιστη διαδρομή, καθώς αυτή μπορεί να γίνει<br />
ίσως και μόνο μία φορά, αλλά για μία ικανοποιητική κι εύκολη διαδρομή. Κατά αυτόν τον τρόπο<br />
έχουν μεγάλη σημασία κάποια λίγα τμήματα του δικτύου και σημεία της περιοχής, ενώ τα<br />
περισσότερα άλλα από αυτά δεν έχουν σχεδόν καμία σημασία.<br />
τα πλαίσια αυτά, μία άμεση διαφοροποίηση αφορά την Γλώσσα του περιβάλλοντος χρήσης. Έτσι, η<br />
γλώσσα της Εφαρμογής είναι τα Αγγλικά, κι όχι τα Ελληνικά, με δυνατότητα για την προσθήκη<br />
μελλοντικά ακόμη περισσότερων γλωσσών. Η χρήση άλλης γλώσσας αφορά όχι μόνο το περιβάλλον<br />
χρήσης, αλλά και τον τρόπο με τον οποίο αναφέρονται κάποια στοιχεία, όπως π.χ. ‗AIRPORT‘ ως<br />
ονομασία στάσης, κι όχι ‗AERODROMIO‘. Δίνεται δηλαδή σημασία στην λειτουργική σημασία των<br />
στοιχείων.<br />
Ένα απλό, αλλά χρήσιμο σε αρκετές περιπτώσεις χαρακτηριστικό, είναι η δυνατότητα της<br />
Εφαρμογής που αναπτύχθηκε να δέχεται μέσω άλλων sites έτοιμες κάποιες από τις παραμέτρους<br />
που αφορούν την προέλευση, τον προορισμό, την ημερομηνία κι ώρα κτλ. Με αυτόν τον τρόπο,<br />
αφενός υποβοηθείται η ίδια η Εφαρμογή να γίνει γνωστή, αφετέρου προσφέρεται ένα εργαλείο<br />
στους διοργανωτές ενός συνεδρίου π.χ., ώστε διευκολύνουν τους συμμετέχοντες στην μετακίνησή<br />
τους. Γενικότερα πάντως, με τέτοιες εφαρμογές ευνοοείται η χρήση των ΜΜΜ, με πλήθος άμεσων κι<br />
έμμεσων θετικών επιδράσεων στις συνθήκες διαβίωσης.<br />
Αν και επιλογή ήταν η υιοθέτηση επισήμων και μη προτύπων, και η προσαρμογή στις ιδιαίτερες<br />
συνθήκες διατηρώντας όμως κατά το δυνατόν σχετικές τυποποιήσεις κι ευρύτερα<br />
χρησιμοποιούμενες μεθοδολογίες και γνώσεις, εν τούτοις η εν λόγω Εφαρμογή είναι ένα καλό<br />
εργαλείο ώστε να αναγνωριστούν, επισημανθούν, κι εν μέρει επιλυθούν, ή δρομολογηθεί να<br />
επιλυθούν, τα σχετικά προβλήματα. αν παραδείγματα αναφέρονται το πρότυπο για τα στοιχεία του<br />
Δικτύου, και οι αλγόριθμοι που είναι υπεύθυνοι για το routing.<br />
Οι περισσότερες από τις εφαρμογές πλοήγησης με ΜΜΜ είναι ιδιαίτερα ακριβές. Σο κόστος τους<br />
ποικίλει, ανάλογα με τις παρεχόμενες λειτουργίες, τις αναγκαίες παράλληλες εργασίες, αλλά και με<br />
το μέγεθος του Δικτύου που αφορούν. Η εφαρμογή που αναπτύχθηκε χρησιμοποιεί αποκλειστικά<br />
λογισμικό ανοικτού κώδικα, όπως επίσης δεδομένα διαθέσιμα ελεύθερα. Με αυτόν τον τρόπο<br />
επιτυγχάνεται η δυνατότητα δημιουργίας και λειτουργίας αντίστοιχων εφαρμογών για διάφορες<br />
πόλεις, με πολύ μικρό κόστος, κάνοντας εφικτή την λειτουργία ακόμη και για μικρά δίκτυα, όπου δεν<br />
θα ήταν οικονομικά δυνατόν αυτό να γίνει με άλλες εφαρμογές.<br />
Η ανάπτυξη της εφαρμογής έγινε ώστε να υπάρχει η δυνατότητα αυτής της εύκολης προσαρμογής<br />
σε διαφορετικές ιδιαιτερότητες, όπως επίσης το να μπορεί να τροποποιείται με σκοπό την διαρκή<br />
32
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
βελτίωση. Ακόμη, η πλατφόρμα που χρησιμοποιήθηκε για το περιβάλλον χρήστη (Adobe Flex)<br />
εξελίσσεται διαρκώς, και μάλιστα για διάφορα λειτουργικά συστήματα, επιτρέποντας έτσι και την<br />
εύκολη επέκταση της εφαρμογής προς διάφορες συσκευές, όπως είναι π.χ. τα netbooks με μικρή<br />
οθόνη και τα κινητά τηλέφωνα, διατηρώντας όμως σε μεγάλο βαθμό έναν όμοιο βασικό τρόπο<br />
λειτουργίας.<br />
33
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
34
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
3Θεωρητικό Τπόβαθρο. –<br />
3.1 Γράφοι.<br />
Βασικές Πληροφορίες.<br />
Σα συστήματα μεταφορών αναπαρίστανται σχετικά εύκολα με την χρήση γράφων. Έτσι, προβλήματα<br />
όπως π.χ. η εύρεση της γρηγορότερης διαδρομής ανάγονται σε προβλήματα επίλυσης γράφων,<br />
δηλαδή σε μια γενικότερη αντιμετώπιση και με πλούσιο θεωρητικό υπόβαθρο.<br />
την Ελληνική αλλά και στην Αγγλική γλώσσα, πολλές από τις έννοιες που συνδέονται με τους<br />
Γράφους έχουν ποικίλα ονόματα, και μερικές φορές η ίδια ονοματολογία μπορεί να αφορά<br />
παρεμφερή αλλά διαφορετικά πράγματα. Έτσι, στη συνέχεια του κειμένου γίνεται προσπάθεια να<br />
τηρηθεί αυστηρά η μονοσημαντικότητα, κι επίσης παρατίθενται σε αρκετές περιπτώσεις οι<br />
αντίστοιχες αγγλικές λέξεις, ώστε κάποιος, αναζητώντας περισσότερες πληροφορίες, να μπορεί να<br />
συνδέσει ευκολότερα το παρόν κείμενο με την διεθνή βιβλιογραφία,<br />
35
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Ένας γράφος είναι μια αφαιρετική αναπαράσταση ενός συνόλου αντικειμένων, όπου κάποια από<br />
αυτά τα αντικείμενα σχηματίζουν ζευγάρια μέσω ενός συνδέσμου (link). Σα αντικείμενα που<br />
συνδέονται ονομάζονται Κόμβοι (vertex στον ενικό, vertices στον πληθυντικό), ενώ οι σύνδεσμοι<br />
Ακμές (edges). ε μορφή διαγράμματος, οι κόμβοι αναπαρίστανται με σημεία, και οι σύνδεσμοι με<br />
γραμμές ή καμπύλες.<br />
Οι Ακμές ενός Γράφου μπορεί να έχουν ή όχι φορά, οπότε να είναι ασύμμετρες ή συμμετρικές<br />
αντίστοιχα. Οι Ακμές μπορούν να αναπαριστούν σχέσεις μεταξύ των Κόμβων, όπως π.χ., πρόσβαση ή<br />
γνώση, και δύο άμεσα συνδεδεμένοι Κόμβοι ονομάζονται γειτονικοί (adjacent). ταν όλες οι Ακμές<br />
είναι μίας κατεύθυνσης και υπάρχει μόνο μία Ακμή ανά ζέυγος Κόμβων, τότε ο Γράφος ονομάζεται<br />
απλός, ενώ σε περίπτωση που κάποιες είναι διπλής φοράς και κάποιες όχι, ο Γράφος ονομάζεται<br />
Μικτός. Ο αριθμός των Ακμών ορίζει το μέγεθος του Γράφου, ενώ ο αριθμός των Ακμών που<br />
συνδέεονται με έναν Κόμβο ορίζει τον Βαθμό του συγκεκριμένου Κόμβου. ταν δύο Κόμβοι<br />
συνδέονται άμεσα μεταξύ τους με πάνω από μία Ακμή, τότε ο Γράφος ονομάζεται Πολλαπλός.<br />
Δύο Ακμές ενός Γράφου ονομάζονται γειτονικές (adjacent ή coincident) όταν ο ένας Κόμβος τους<br />
είναι κοινός, ενώ στην περίπτωση Ακμών με φορά, όταν η μία οδηγεί στον Κόμβο και η άλλη<br />
απομακρύνεται από αυτόν, τότε χαρακτηρίζονται ως Διαδοχικές (consecutives).<br />
Εικόνα 18: Διάγραμμα ενός Γράφου. Ο Γράφος μπορεί να περιγραφεί ως V = {1, 2, 3, 4, 5, 6}, E =<br />
{{1, 2}, {1, 5}, {2, 3}, {2, 5}, {3, 4}, {4, 5}, {4, 6}}, δηλαδή από τα σύνολα των Κόμβων και των Ακμών<br />
αντίστοιχα. Σο μέγεθος του Γράφου είναι 7, κι ο Βαθμός π.χ. του Κόμβου 5 είναι 3. Οι Ακμές {4,5},<br />
{2,5}, {5,1} είναι γειτονικές. Επίσης, οι Κόμβοι 1, 2, 4 είναι γειτονικοί του 5.<br />
ταν σε έναν Γράφο έχουν οριστεί Βάρη για κάθε Ακμή, τότε ο Γράφος ονομάζεται Ζυγισμένος<br />
(weighted). Σα Βάρη αυτά μπορεί να αναπαριστούν κόστη, αποστάσεις, χρόνους, δυσκολίες, κ.α.,<br />
ανάλογα με το πρόβλημα. Σο άθροισμα όλων των Βαρών είναι το Βάρος του Γράφου. Φάρη στην<br />
δυνατότητα οι Ακμές να αναπαριστούν ακόμη και ποσοτικά σχέσεις μεταξύ των Κόμβων, οι Γράφοι<br />
36
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
έχουν τεράστια χρησιμότητα στην επίλυση διαφόρων προβλημάτων, όπως είναι π.χ. στην εύρεση<br />
συντομότερης διαδρομής, θέμα που συναντάται στην παρούσα Εργασία.<br />
ε μία εφαρμογή πλοήγησης τα βάρη συνήθως αναπαριστούν τον απαιτούμενο χρόνο μετακίνησης,<br />
και το ζητούμενο είναι το Μονοπάτι (path), δηλαδή το πέρασμα από τους Κόμβους και τις Ακμές,<br />
από έναν Κόμβο-Αφετηρία σε έναν Κόμβο-Σερματισμό, το οποίο έχει το μικρότερο άθροισμα Βαρών<br />
για τις Ακμές που διασχίζονται. Σα Βάρη στο συγκεριμένο παράδειγμα θα μπορούσαν να αφορούν<br />
την έλλειψη ασφάλειας κατά μήκος μίας Ακμής, οπότε το ζητούμενο να είναι το Μονοπάτι με<br />
περισσότερο περιορισμένη την ανασφάλεια, όπως π.χ. όταν γίνεται χρήση ποδηλάτου. Σο Μονοπάτι<br />
που εκκινά και τερματίζει στον ίδιο Κόμβο ονομάζεται Κύκλος.<br />
Ας σημειωθεί ότι, στα μεταφορικά συστήματα οι κόμβοι συνήθως συνδέεονται μεταξύ τους με<br />
περισσότερες από μία Ακμές, είναι δηλαδή Πολλαπλοί (Multigraphs). Κάθε μία από τις Ακμές μεταξύ<br />
δύο Κόμβων μπορεί να αντιπροσωπεύει ένα μεταφορικό μέσο, έχοντας το αντίστοιχο Βάρος. την<br />
πράξη, σε <strong>Intermodal</strong> συστήματα, δηλαδή σε υνδυασμένες Μεταφορές, κάθε τέτοια Ακμή αφορά<br />
Κόμβους του ίδιου μέσου, και οι αντίστοιχοι Κόμβοι των μέσων συνδέεονται μεταξύ τους με Ακμές<br />
που το Βάρος τους αντοιστοιχεί σε «Ποινή» (penalty) για την αλλαγή (π.χ. μετεπιβίβαση).<br />
ταν σε έναν Γράφο με Ακμές χωρίς φορά υπάρχει Μονοπάτι που επιτρέπει την επίσκεψη σε κάθε<br />
Κόμβο μόνο μία φορά, τότε το Μονοπάτι αυτό ονομάζεται Hamiltonian. Αντίστοιχα ονομάζεται και ο<br />
Κύκλος με την ίδια ιδιότητα.<br />
την Ιστορία έχουν υπάρξει διάφορα προβλήματα σχετικά με Γράφους. Σα πιό γνωστά είναι τα εξής:<br />
3.1.1 Οι Επτά Γέφυρες του Königsberg.<br />
Πρόκειται για πρόβλημα που τέθηκε το 1735 από τον Ελβετό μαθηματικό και φυσικό Leonard Euler,<br />
θέτοντας τις αρχές της θεωρίας Γράφων, και προοιωνίζοντας την ιδέα της Σοπολογίας. Η εργασία<br />
του δημοσιεύθηκε με τον τίτλο «Solutio problematis ad geometriam situs pertinentis» («Η επίλυση<br />
ενός πρόβληματος σε σχέση με την γεωμετρία της θέσης») το 1741, στο «Commentarii academiae<br />
scientiarum Petropolitanae» [Αναφορά #38].<br />
Σο Königsberg ήταν τότε πόλη της Πρωσίας (σημερινό Kaliningrad στη Ρωσία), και απλωνόταν στις<br />
δύο πλευρές του ποταμού Pregel. Σμήμα της πόλης βρισκόταν και πάνω σε δύο νησιά που ήταν<br />
συνδεδεμένα μεταξύ τους, και με τις όχθες, μέσω 7 γεφυρών.<br />
37
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 19: Φάρτης του Königsberg την εποχή του Euler, με τονισμένες τις γέφυρες και τον ποταμό.<br />
Σο πρόβλημα που τέθηκε ήταν να βρεθεί μία διαδρομή μέσα στην πόλη ώστε κάποιος να διασχίσει<br />
όλες τις γέφυρες, διερχόμενος από κάθε γέφυρα μία μόνο φορά. Δεν επιτρεπόταν να γίνει<br />
μετακίνηση από μία επιφάνεια γης σε άλλη χωρίς την διάσχιση γέφυρας. Ο Euler δεν βρήκε λύση στο<br />
πρόβλημα, απέδειξε όμως ότι αυτό δεν έχει λύση. Ξεκινώντας, σημείωσε ότι η επιλογή διαδρομής<br />
πάνω σε κάθε επιφάνεια γης που συνδέουν οι γέφυρες, δεν παίζει κάποιο ρόλο. Σο μόνο σημαντικό<br />
στοιχείο ήταν λοιπόν η σειρά διάσχισης των γεφυρών.<br />
Με αυτόν τον τρόπο, ο Euler διαμόρφωσε το πρόβλημα με αφαιρετικούς όρους, θεμελιώνοντας την<br />
θεωρία Γράφων. Πλέον είχε να διαχειριστεί στο πρόβλημά του μόνο τις επιφάνειες γης ως σημεία,<br />
και τις γέφυρες που τις συνδέεουν. Με σημερινή ορολογία, οι επιφάνειες ήταν οι Κόμβοι, και οι<br />
γέφυρες οι Ακμές του Γράφου. Επίσης, με αυτήν την συσχέτιση μπορούσε να αναπαραστήσει<br />
διαγραμματικά το πρόβλημα χωρίς να τον ενδιαφέρει η ακριβής θέση των στοιχείων, παρά μόνο οι<br />
μεταξύ τους συνδέσεις/σχέσεις, ξεκινώντας έτσι την ανάπτυξη της τοπολογίας.<br />
Εικόνα 20: Η αφαιρετική διαδικασία στο πρόβλημα του Euler.<br />
38
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
τη συνέχεια ο Euler παρατήρησε ότι, όταν κάποιος πηγαίνει σε μία επιφάνεια γης μέσω μιας<br />
γέφυρας, την ίδια στιγμή μέσω αυτής της γέφυρας φεύγει από μία άλλη επιφάνεια γης. Αυτό φυσικά<br />
δεν ισχύει για τα αρχικά και τελικά σημεία. Με άλλα λόγια, κάνοντας μία βόλτα στον Γράφο, οι φορές<br />
που κάποιος πηγαίνει σε έναν μη τελικό Κόμβο ισούται με τις φορές που φέυγει από αυτόν. Αν κάθε<br />
γέφυρα διασχίζεται μία και μόνο φορά, επάγεται ότι για κάθε επιφάνεια γης (εκτός από την πρώτη<br />
και την τελευταία), ο αριθμός των γεφυρών που την συνδέουν είναι ζυγός (οι μισές θα διανυθούν<br />
προς την επιφάνεια , και οι άλλες μισές από την επιφάνεια). μως, στην περίπτωση του Königsberg,<br />
και οι τέσσερεις επιφάνειες γης συνδέεονταν με μονό αριθμό γεφυρών, κι αφού μόνο δύο (το<br />
μέγιστο) επιφάνειες μπορούν να γίνουν η αρχική και η τελική, συμπεραίνεται ότι δεν υπάρχει λύση.<br />
Με σημερινή ορολογία, ο Euler έδειξε ότι η ύπαρξη μιας διαδρομής σε έναν Γράφο που να διέρχεται<br />
από κάθε Ακμή μόνο μία φορά, εξαρτάται από τους Βαθμούς των Κόμβων. Αναγκαία λοιπόν<br />
συνθήκη για την ύπαρξη μιας τέτοιας διαδρομής είναι ο Γράφος να είναι συνδεδεμένος και να έχει<br />
ακριβώς μηδέν ή δύο κόμβους περιττού Βαθμού. Η συνθήκη αυτή αργότερα, το 1871 από τον<br />
Γερμανό μαθηματικό Carl Hierholzer [Αναφορά #40: Hierholzer Carl (1871), Ueber eine Fläche der<br />
vierten Ordnung, Mathematische <strong>An</strong>nalen IV, 172-180] αποδείχθηκε ότι είναι και ικανή. Μία τέτοια<br />
διαδρομή καλείται σήμερα Eulerian. Εάν μάλιστα υπάρχουν 2 Κόμβοι περιττού Βαθμού στον Γράφο,<br />
τότε όλες οι Euerian διαδρομές εκκινούν από τον έναν και τερματίζουν στον άλλον.<br />
Αξιοσημείωτο είναι πως σήμερα υπάρχουν 3 μόνο από τις γέφυρες, η μία μάλιστα είναι<br />
ανακατασκευή της αρχικής. Δύο από τις γέφυρες καταστράφηκαν από τους βομβαρδισμούς του 2 ου<br />
Παγκοσμίου Πολέμου, και άλλες δύο κατεδαφίστηκαν αργότερα για την δημιουργία ενός<br />
αυτοκινητοδρόμου. Έτσι, δύο από τους Κόμβους είναι 2 ου Βαθμού (τα νησιά) και οι υπόλοιποι τρεις<br />
είναι 3 ου Βαθμού, γεγονός που σημαίνει την ύπαρξη Eulerian διαδρομής. Επειδή πάντως σημείο<br />
εκκίνησης και τερματισμού είναι τα 2 νησιά, η διαδρομή δεν μπορεί στην πράξη να πραγματοποιηθεί<br />
από κάποιον, εκτός βέβαια αν γεννηθεί σε ένα από αυτά!<br />
3.1.2 Σο Πρόβλημα της Διαδρομής Με Σο Μικρότερο Κόστος.<br />
Σο πρόβλημα συνίσταται στην εύρεση ενός Μονοπατιού μεταξύ δύο Κόμβων, έτσι ώστε το άθροισμα<br />
των Βαρών κατά μήκος των διανυόμενων Ακμών να είναι το ελάχιστο δυνατό. Σα βάρη μπορούν να<br />
αντιπροσωπεύουν οτιδήποτε, συνήθως όμως είναι ο χρόνος ή η απόσταση μεταξύ δύο Κόμβων.<br />
ε πιο μαθηματική γραφή, το πρόβλημα είναι να βρεθεί για έναν ζυγισμένο Γράφο, αποτελούμενο<br />
από το σύνολο των Κόμβων του V και των Ακμών του E, ένα Μονοπάτι P με αφετηρία τον Κόμβο v,<br />
και τερματισμό τον v‘, που να ελάχιστοποιεί την τιμή του αθροίσματος της συνάρτησης f : E → R , η<br />
39
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
οποία εκφράζει το Βάρος μετακίνησης κατά μία Ακμή. Δηλαδή θα πρέπει το να έχει την<br />
ελάχιστη δυνατή τιμή.<br />
τα μεταφορικά συστήματα οι Κόμβοι αντιπροσωπεύον τα διάφορα σημειακά στοιχεία (π.χ.<br />
διασταυρώσεις οδών, ή στάσεις), ενώ οι Ακμές αντιπροσωπεύουν μεμονωμένα οδικά τμήματα ή<br />
επιμέρους τμήματα διαδρομών.<br />
Σο Πρόβλημα βρίσκει εφαρμογές σε πάρα πολλούς τομείς, εκτός από την πλέον προφανή που είναι η<br />
καθοδήγηση μέσα σε ένα σύστημα οδών. Κι αυτό γιατί μπορούν εύκολα με τους Κόμβους, τις Ακμές,<br />
και τα Βάρη, να αναπαρασταθούν με αφαίρεση ένα τεράστιο πλήθος πραγμάτων. Για παράδειγμα,<br />
οι αλγόριθμοι επίλυσης μπορούν να χρησιμοποιηθούν για να βρεθεί η βέλτιστη σειρά επιλογών ώστε<br />
να επιτευχθεί κάποιος στόχος, με την έννοια π.χ. της μείωσης του συνολικού απαιτούμενου χρόνου.<br />
ε πιό συγκεκριμένο παράδειγμα, οι Κόμβοι θα μπορούσαν να αντιπροσωπεύουν τις φάσεις ενός<br />
puzzle όπως ο Κύβος του Rubik, και οι Ακμές τις μοναδιαίες κινήσεις.<br />
3.2 Αλγόριθμοι Επίλυσης.<br />
3.2.1 Γενικά Περί Αλγορίθμων.<br />
Ένας αλγόριθμος (η ονομασία προέρχεται από τον Πέρση μαθηματικό, αστρονόμο, και γεωγράφο al-<br />
Khwārizmī) είναι μία αποτελεσματική μέθοδος επίλυσης ενός προβλήματος, εκφρασμένη σαν μία<br />
πεπερασμένη σειρά βημάτων. ε πιό ανεπτυγμένα ή αφηρημένα θέματα, οι οδηγίες μπορεί να μην<br />
αποτελούν πεπερασμένη σειρά, ούτε καν μία σειρά, όπως π.χ. στους μη ντετερμινιστικούς<br />
αλγόριθμους.<br />
Ξεκινώντας από ένα αρχικό σημείο, οι οδηγίες περιγράφουν έναν υπολογισμό που διέρχεται μέσα<br />
από πολύ καλά καθορισμένες σειρές επιτυχών σημείων, τερματίζοντας στο σημείο αυτό που είναι το<br />
ζητούμενο. Η μετάβαση από το ένα σημείο στο άλλο δεν είναι απαραίτητα ντετερμινιστική, και<br />
κάποιοι αλγόριθμοι εισαγάγουν τυχαιότητα.<br />
3.2.2 Ευρετικές (Heuristics).<br />
τη γενικότερη μορφή οι ευρετικές αφορούν τεχνικές που βασίζονται στην εμπειρία για την επίλυση<br />
προβλημάτων, την μάθηση, και την έρευνα, και κυρίως χρησιμοποιούνται για να επιταχυνθεί η<br />
40
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
διαδικασία. τις ευρετικές ανήκουν έναν μεγάλο πλήθος τεχνικών, από την εκπαιδευμένη μαντεψιά,<br />
μέχρι την κοινή αίσθηση.<br />
την υπολογιστική επιστήμη, η ευρετική είναι η τεχνική που έχει σχεδιαστεί ώστε να επιλύει κάποιο<br />
πρόβλημα αδιαφορώντας εάν η λύση που θα προκύψει μπορεί να αποδειχθεί ότι είναι σωστή, αρκεί<br />
να είναι ικανοποιητική. κοπός της χρησιμοποίησής της είναι η βελτίωση της ταχύητητας ή της<br />
εννοιολογικής απλότητας, με μείωση όμως της ακρίβειας. Πολλές φορές οι ευρετικές λύνουν απλά<br />
προβλήματα, που όμως στην συνέχεια οι λύσεις τους χρησιμοποιούνται ώστε να λυθούν δυσκολότερα<br />
προβλήματα. Φαρακτηριστικό παράδειγμα ευρετικών τεχνικών που χρησιμοποιούνται καθημερινά<br />
είναι οι τεχνικές που έχουν υλοποιηθεί στα λογισμικά κατά των ιών, ιδιαίτερα στο τμήμα που αφορά<br />
την πραγματικού χρόνου εξέταση.<br />
Μία ευρετική μέθοδος μπορεί να λειτουργεί χρησιμοποιώντας δένδρα αναζήτησης. Αντί όμως να<br />
δημιουργούνται όλοι οι δυνατοί κλάδοι λύσεων, μία ευρετική επιλέγει τους κλάδους που είναι<br />
πιθανότερο να παράγξουν το επιθυμητό αποτέλεσμα.<br />
Ένα κρίσιμο σημείο για την επιτυχία ή όχι των ευρετικών σε ένα πρόβλημα είναι το αν οι επιλεγμένες<br />
ευρετικές θα λειτουργούν καλά και στο μέλλον, δηλαδή σε ένα διαφορετικό σύνολο δεδομένων<br />
εισόδου. Αν οι ευρετικές έχουν δημιουργηθεί και επιλεγεί με βάση μόνο το τρέχον κατά την στιγμή<br />
ανάπτυξης του αλγόριθμου σύνολο δεδομένων, δηλαδή με βάση κάποια χαρακτηριστικά του<br />
συνόλου που πιθανότατα δεν θα υπάρχουν σε μελλοντικά σύνολα, τότε η χρησιμότητά τους θα έχει<br />
περιορισμένη χρονική διάρκεια, και ίσως όμοια και ολόκληρης της διαδικασίας που βασίζεται σε<br />
αυτές τις μεθοδολογίες. Έτσι, θα πρέπει να δίνεται ιδιαίτερη σημασία στην ανάλυση των δεδομένων<br />
εισόδου, και να εξετάζεται πολύ καλά το πως αυτά παράγονται.<br />
3.3 Αλγόριθμοι Για Σην Εύρεση Σης Βέλτιστης Διαδρομής Από<br />
Κόμβο ε Κόμβο.<br />
3.3.1 Γενικά.<br />
Η βέλτιστη διαδρομή συνήθως αφορά την ελαχιστοποίηση κάποιου συνολικού κόστους κατά την<br />
διάσχιση των Ακμών ή/και το πέρασμα από τους Κόμβους. Σο κόστος αυτό μπορεί να αφορά την<br />
απόσταση, τον απαιτούμενο χρόνο, το άμεσο ή έμμεσο οικονομικό κόστος, την ανασφάλεια, κ.α..<br />
την παρούσα περίπτωση μας ενδιαφέρει αποκλειστικά το πρόβλημα της βέλτιστης διαδρομής από<br />
ένα σημείο σε ένα μόνο άλλο σημείο, κι όχι η διαδρομή που να διέρχεται από ένα πλήθος σημείων,<br />
τυχαία ή με σειρά, πριν καταλήξει στο τελικό.<br />
41
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
τη συνέχεια αναφέρονται σε θεωρητικό επίπεδο οι αλγόριθμοι που σχετίζονται με την επίλυση του<br />
προβλήματος:<br />
3.3.2 Ο Αλγόριθμος Σου Dijkstra.<br />
Ο αλγόριθμος του Dijkstra, από το όνομα του Ολλανδού Edsger Dijkstra που τον δημοσίευσε το<br />
1959 [Αναφορά #39: Dijkstra Edsger Wybe (1959), A note on two problems in connexion with<br />
graphs, Numerische Mathematik 1: 269–271], επιλύει το πρόβλημα της εύρεσης της συντομότερης<br />
διαδρομής σε γράφους χωρίς αρνητικά κόστη στις ακμές, δηλαδή χωρίς οφέλη. Σο προϊόν της λύσης<br />
είναι το μονοπάτι στον γράφο, με την καθορισμένο κόμβο αφετηρίας και τον καθορισμένο κόμβο<br />
τερματισμού, το οποίο έχει το μικρότερο αθροιστικά κόστος.<br />
Για έναν δοσμένο κόμβο, ο αλγόριθμος βρίσκει στην πραγματικότητα το μονοπάτι με το μικρότερο<br />
κόστος για την διαδρομή από τον κόμβο αφετηρίας και προς οποιονδήποτε άλλον κόμβο. Μπορεί<br />
όμως να χρησιμοποιηθεί και για την εύρεση του κόστους του «φτηνότερου» μονοπατιού προς έναν<br />
μόνο άλλον κόμβο, αν σταματήσει η εκτέλεσή του μόλις έχει βρεθεί το φτηνότερο μονοπάτι προς<br />
αυτόν τον κόμβο προορισμό.<br />
3.3.2.1 Περιγραφή.<br />
Αν θεωρηθεί ως απόσταση του κόμβου Τ, η απόσταση του (κόστος) από τον κόμβο αφετηρίας, τότε,<br />
ο αλγόριθμος θα αποδώσει αρχικές τιμές για κάθε κόμβο, και θα προσπαθήσει να τις βελτιώσει,<br />
δηλαδή να τις μειώσει, μέ τα επόμενα βήματα:<br />
1. Απόδοση σε κάθε κόμβο μίας τιμής απόστασης. Η τιμή αυτή είνα «μηδέν» για τον κόμβο<br />
αφετηρίας, και «άπειρο» για όλους τους υπόλοιπους κόμβους.<br />
2. Μαρκάρισμα όλων των κόμβων ως μη επεσκεμμένους. Θέση αρχικού κόμβου ως τρέχοντα.<br />
3. Για τον τρέχοντα κόμβο, υπολόγισε για όλους τους γειτονικούς του που δεν είναι<br />
επεσκεμμένοι, την προσωρινή τους απόσταση από τον κόμβο αφετηρία. Η προσωρινή<br />
απόσταση υπολογίζεται ως το άθροισμα της απόστασης από τον τρέχοντα προς τον κόμβο,<br />
με την απόσταση του τρέχοντα. Εάν αυτή η προσωρινή απόσταση είναι μικρότερη από την<br />
προηγούμενη καταγεγραμμένη, τότε την αντικαθιστά.<br />
42
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
4. ταν έχει ολοκληρωθεί το προηγούμενο βήμα για όλους τους γειτονικούς του τρέχοντα,<br />
τότε μαρκάρισε αυτόν ως επεσκεμμένους. Η απόστασή του πλέον δεν θα επανεξεταστεί,<br />
και είναι η τελική, συνεπώς και η μικρότερη.<br />
5. Αν όλοι οι κόμβοι είναι επεσκεμμένοι, τότε η εκτέλεση του αλγόριθμου ολοκληρώνεται.<br />
Διαφορετικά, τίθεται ως τρέχον ο κόμβος από τους μη επεσκεμμένους με την μικρότερη<br />
απόσταση, και η διαδικασία συνεχίζεται από το 3 ο βήμα.<br />
ε κάποιες περιπτώσεις είναι ζητούμενο να δωθούν παραπάνω από μία λύσεις, κι ας μην είναι<br />
βέλτιστες. Σότε, αφού γίνει κανονικά ο υπολογισμός των βέλτιστων, αφαιρείται μία ακμή βέλτιστης<br />
λύσης από τον γράφο, κι ο αλγόριθμος επανεκτελείται στο νέο υποσύνολο.<br />
3.3.2.2 Χευδοκώδικας.<br />
1 function Dijkstra(Graph, source):<br />
2 for each vertex v in Graph: // Αρτικοποίηζη.<br />
3 dist[v] := infinity ;<br />
// Άγνωζηη Απόζηαζη από ηην Αρτή μέτρι ηον Κόμβο v.<br />
4 previous[v] := undefined ;<br />
// Προηγούμενος Κόμβος ζηο Βέηιζηο Μονοπάηι από ηην Αρτή.<br />
5 end for ;<br />
6 dist[source] := 0 ;<br />
// Απόζηαζη για ηον Κόμβο Αθεηηρίας.<br />
7 Q := the set of all nodes in Graph ;<br />
// Όλοι οι Κόμβοι αρτικά ανήκοσν ζηο Σύνολο Q αθού δεν έτοσν<br />
επιζκεθθεί.<br />
8 while Q is not empty:<br />
// Ο Κύριος Βρότος.<br />
9 u := vertex in Q with smallest dist[] ;<br />
10 if dist[u] = infinity:<br />
11 break ;<br />
// Όλοι οι εναπομείνανηες Κόμβοι είναι μη προζπελάζιμοι από ηην<br />
Αθεηηρία.<br />
12 fi ;<br />
13 remove u from Q ;<br />
14 for each neighbor v of u:<br />
// Όηαν ο v δεν έτει ακόμη αθαιρεθεί από ηο Q.<br />
15 alt := dist[u] + dist_between(u, v) ;<br />
16 if alt < dist[v]:<br />
43
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
// Ελάηηωζε (u,v,a)<br />
17 dist[v] := alt ;<br />
18 previous[v] := u ;<br />
19 fi ;<br />
20 end for ;<br />
21 end while ;<br />
22 return dist[] ;<br />
23 end Dijkstra.<br />
Εάν ενδιαφέρει μόνο το βέλτιστο μονοπάτι προς έναν συγκεκριμένο κόμβο προορισμό, τότε η<br />
εκτέλεση μπορεί να τερματιστεί αν πριν την γραμμή 13 u = target.<br />
Σο βέλτιστο μονοπάτι μπορεί να ανακτηθεί ως εξής:<br />
1 S := empty sequence<br />
2 u := target<br />
3 while previous[u] is defined:<br />
4 insert u at the beginning of S<br />
5 u := previous[u]<br />
που S θα είναι στο τέλος η λίστα με τους κόμβους ανάμεσα στην αφετηρία και τον τερματισμό, ως<br />
ένα από τα βέλτιστα μονοπάτια, ή κενό, εάν δεν υπάρχει κανένα μονοπάτι. Ας σημειωθεί ότι η S θα<br />
περιέχει ένα από τα βέλτιστα μονπάτια, καθώς μπορεί να υπάρχουν παρά πάνω από ένα με το ίδιο<br />
ελάχιστο κόστος. Αν ζητούνται όλα τα βέλτιστα μονοπάτια, τότε θα πρέπει αντί να αποθηκέυεται<br />
μόνο μία τιμή για τον προηγούμενο κόμβο, να αποθηκεύονται όλες οι τιμές στη γραμμή 5. ε αυτήν<br />
την περίπτωση, η δομή previous[] θα αποτελεί έναν γράφο υποσύνολο του δοσμένου.<br />
3.3.3 Ο Αλγόριθμος Α* (A-Star).<br />
Πρόκειται για μία επέκταση του Αλγόριθμου του Dijkstra, που περιγράφηκε πρώτη φορά το 1968<br />
από τους Peter Hart, Nils Nilsson, και Bertram Raphael [Αναφορά #41: Hart, P. E.; Nilsson, N. J.;<br />
Raphael, B. (1968), IEEE Transactions on Systems Science and Cybernetics SSC4 4 (2): 100–<br />
107. doi:10.1109/TSSC.1968.300136]. Φρησιμοποιεί ευρετικές κι έτσι επιτυγχάνει καλύτερους<br />
χρόνους. Σο όνομά του οφείλεται στην υιοθέτηση της λογικής γύρω από τον Kleene Star ή Kleene<br />
Operator, που αφορά λειτουργίες αλφαριθμητικών συνόλων. Ο πρώτος που έκανε μία ευρετική<br />
προσέγγιση για την αύξηση της ταχύτητας του αλγόριθμου του Dijksta ήταν ο Nils Nilsson το 1964,<br />
κι ο αλγόριθμός του ονομάστηκε Α1 [Δεν έχουν βρεθεί στοιχεία για το που έχει γίνει σχετική<br />
δημοσίευση]. Ο Bertram Raphael έκανε σημαντικές αλλαγές το 1967, αλλά δεν πέτυχε ιδιαίτερη<br />
βελτίωση στην πράξη. Ο αλγόριθμός του ονομάστηκε Α2 [μοια, δεν έχουν βρεθεί στοιχεία για το<br />
που έχει γίνει σχετική δημοσίευση]. Έπειτα από έναν χρόνο ο Peter Hart απέδειξε ότι ο Α2 ήταν<br />
βέλτιστος χρησιμοποιώντας μία σύμφωνη ευρετική, κι ότι μάλιστα ήταν ο καλύτερος δυνατός<br />
44
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
αλγόριθμος για τις συνθήκες [Αναφορά #41]. Με την ονομασία Α* που του έδωσε, ο αλγόριθμος<br />
περιλαμβάνει στην μαθηματική γλώσσα όλους τους αλγόριθμους που ανήκουν στην «σειρά» Α και<br />
έχουν μία αριθμητική έκφραση της έκδοσης.<br />
Ο Α* χρησιμοποιεί μία αναζήτηση τύπου «το καλύτερο πρώτα (best-first)» και βρίσκει το μονοπάτι<br />
ελάχιστου κόστους από έναν αρχικό κόμβο, σε έναν κόμβο στόχο (που μπορεί να είναι περισσότεροι<br />
από ένας). Η αναζήτηση τύπου «το καλύτερο πρώτα» διεισδύει στον γράφο ακολουθώντας την<br />
διαδρομή από έναν κόμβο που είναι η πιο πολλά υποσχόμενη για να δώσει την επιθυμητή λύση.<br />
Για την αναζήτησή του υιοθετεί μία συνάρτηση ευρετικού χαρακτήρα που είναι το άθροισμα του<br />
κόστους μέχρι τον τρέχοντα κόμβο, και ευρετικά από τον τρέχοντα μέχρι τον τερματισμό. Έτσι, αν<br />
ονομαστεί f(x) η συνάρτηση αυτή, θα είναι: f(x) = g(x) + h(x), όπου:<br />
Η συνάρτηση g(x) εκφράζει το κόστος από τον κόμβο εκκίνησης μέχρι τον τρέχοντα,<br />
Η συνάρτηση h(x) εκφράζει την ευρετική εκτίμηση της απόστασης μέχρι τον τερματισμό.<br />
Η τιμή της συνάρτησης της ευρετικής εκτίμησης δεν θα πρέπει να είναι μεγαλύτερη από την<br />
απόσταση προς τον στόχο, δεν θα πρέπει δηλαδή να κάνει υπερεκτίμησή της. Π.χ. σε έναν<br />
αλγόριθμο πλοήγησης με κόστος την απόσταση, θα μπορούσε ευρετική συνάρτηση να είναι η<br />
ευκλείδια άμεση απόσταση μεταξύ των κόμβων, η οποία είναι πάντα μικρότερη ή το πολύ ίση της<br />
πραγματικής που πρέπει να διανυθεί.<br />
την περίπτωση που ισχύει h(x) ≤ d'(x,y) + h(y) για κάθε ακμή (x,y ) του γράφου, όπου d είναι το<br />
μήκος της ακμής, τότε η ευρετική συνάρτηση ονομάζεται μονότονη και ο αλγόριθμος Α* μπορεί να<br />
υλοποιηθεί πιο αποτελεσματικά. Αυτό συμβαίνει επειδή δεν απαιτείται να γίνει επεξεργασία του<br />
οποιουδήποτε κόμβου παραπάνω από μία φορά.<br />
Θα πρέπει να σημειωθεί ότι ο Α* έχει γενικευτεί σε αλγόριθμο δύο κατευθύνσεων, δηλαδή η<br />
αναζήτηση γίνεται και από την αφετηρία προς το τέλος, αλλά και το αντίστροφα, με την διαδικασία<br />
να σταματάει όταν γίνεται συνάντηση των δύο αναζητήσεων.<br />
3.3.3.1 Περιγραφή.<br />
Η γενική αρχή είναι πως ο αλγόριθμος ακολουθεί ένα μονοπάτι με το μικρότερο γνωστό κόστος,<br />
κρατώντας λίστα με εναλλακτικά τμήματα κατά την διαδρομή του. Αν σε οποιοδήποτε σημείο, ένα<br />
τμήμα του μονοπατιού που διασχίζεται έχει υψηλότερο κόστος από ένα άλλο τμήμα που έχει<br />
καταγραφεί, ο αλγόριθμος σταματάει την πορεία του στο υψηλότερου κόστους μονοπάτι και<br />
ακολουθεί το χαμηλότερου κόστους. Η διαδιακασία αυτή είναι συνεχώς επαναλαμβανόμενη μέχρι να<br />
ολοκληρωθεί το μονοπάτι λύση.<br />
45
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Αυτό που διαφοροποιεί τον Α* από άλλους greedy αλγόριθμους είναι ότι λαμβάνει υπόψη στην<br />
ευρετική συνάρτηση και το κόστος από την αρχή, κι όχι μόνο το τοπικό. Ξεκινώντας από τον κόμβο<br />
αφετηρία, ο αλγόριθμος διατηρεί μία λίστα προτεραιότητας για τους κόμβους προς διάσχιση, γνωστή<br />
ως «ανοικτό σύνολο». σο πιο χαμηλή η τιμή της f(x) για έναν κόμβο x, τόσο μεγαλύτερη η<br />
προτεραιότητα για επίσκεψη στον κόμβο. ε κάθε βήμα, ο κόμβος με την χαμηλότεργ τιμή της f(x)<br />
διαγράφεται από την σειρά, υπολογίζονται οι τιμές των f και h για τους γειτονικούς κόμβους, και<br />
αυτοί οι γειτονικοί κόμβοι προστίθενται στη σειρά. Η διαδιακασία συνεχίζεται μέχρι ένας κόμβος<br />
στόχος να έχει χαμηλότερη τιμή της f από οποιονδήποτε άλλον κόμβο στη σειρά, ή μέχρι να αδειάσει<br />
η σειρά.Οι κόμβοι στόχοι μπορεί να διασχισθούν πολλές φορές εάν παραμένουν άλλοι κόμβοι με<br />
χαμηλότερες τιμές της f , καθώς αυτοί μπορεί να οδηγήσουν σε συντομότερο μονοπάτι προς έναν<br />
στόχο. ταν λοιπόν έχει ολοκληρωθεί η προηγούμενη διαδικασία, τότε η τιμή της f του στόχου είναι<br />
το μήκος του συντομότερου μονοπατιού, καθώς η τιμή της h είναι μηδέν.<br />
Εάν το μονοπάτι που βρέθηκε είναι τελικά αποδεκτό, τότε ο αλγόριθμος μπορεί να ενημερώσει κάθε<br />
γείτονα με την τιμή του αμέσως προηγούμενού του στο καλύτερο μονοπάτι. Η πληροφορία αυτή<br />
μπορεί να χρησιμοποιηθεί για την ανακατασκευή του μονοπατιού πηγαίνοντας προς τα πίσω. Εάν<br />
μάλιστα η ευρετική είναι μονότονη, για να γίνει η εύρεση πιο αποτελεσματική, είναι δυνατόν να<br />
χρησιμοποιηθεί το κλειστό σύνολο των κόμβων που έχουν ήδη διασχισθεί.<br />
Ας σημειωθεί ότι υπάρχουν διάφορες παραλλαγές του A*, όπως είναι D*, o FSA*, o GAA*, o LPA*,<br />
o Theta*,κ.α..<br />
3.3.3.2 Χευδοκώδικας.<br />
1 function A*(start,goal)<br />
closedset := the empty set<br />
// Το ζύνολο ηων κόμβων πος έσοςν ήδη αξιολογηθεί.<br />
2 openset := set containing the initial node<br />
// Το ζύνολο ηων δοκιμαζηικών κόμβων ππορ αξιολόγηζη.<br />
3 came_from := the empty map<br />
// Το ζύνολο ηων κόμβων πος έσοςν διαζσιζθεί.<br />
4 g_score[start] := 0<br />
// Απόζηαζη από ηην απσή καηά μήκορ ηος βέληιζηος μονοπαηιού.<br />
5 h_score[start] := heuristic_estimate_of_distance(start, goal)<br />
6 f_score[start] := h_score[start]<br />
// Εκηιμώμενη ζςνολική απόζηαζη από ηην απσή ππορ έναν ζηόσο διαμέζω<br />
ηος y.<br />
7 while openset is not empty<br />
8 x := the node in openset having the lowest f_score[] value<br />
9 if x = goal<br />
10 return reconstruct_path(came_from, came_from[goal])<br />
46
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
11 remove x from openset<br />
12 add x to closedset<br />
13 foreach y in neighbor_nodes(x)<br />
14 if y in closedset<br />
15 continue<br />
16 tentative_g_score := g_score[x] + dist_between(x,y)<br />
17 if y not in openset<br />
18 add y to openset<br />
19 tentative_is_better := true<br />
20 elseif tentative_g_score < g_score[y]<br />
21 tentative_is_better := true<br />
22 else<br />
23 tentative_is_better := false<br />
24 if tentative_is_better = true<br />
25 came_from[y] := x<br />
26 g_score[y] := tentative_g_score<br />
27 h_score[y] := heuristic_estimate_of_distance(y, goal)<br />
28 f_score[y] := g_score[y] + h_score[y]<br />
29 return failure<br />
30 function reconstruct_path(came_from, current_node)<br />
31 if came_from[current_node] is set<br />
32 p = reconstruct_path(came_from, came_from[current_node])<br />
33 return (p + current_node)<br />
34 else<br />
35 return current_node<br />
Σο κλειστό σύνολο μπορεί να παραλειφθεί εάν διασφαλίζεται ότι υπάρχει μία λύση, ή εάν ο<br />
αλγόριθμος είναι προσαρμοσμένος έτσι ώστε νέοι κόμβοι να προστίθενται στο ανοικτό σύνολο μόνο<br />
αν έχουν την χαμηλότερη τιμή της f από σε οποιαδήποτε άλλη επανάληψη.<br />
3.3.3.3 Τλοποίηση.<br />
Ο Α* μπορεί εύκολα να τρέξει ως αλγόριθμος του Dijksta ή ως αλγόριθμος DFS (πρώτα σε βάθος,<br />
Depth-First) αναζήτησης, με μειωμένη όμως όπως είναι προφανές απόδοση σε σχέση με την καθαρή<br />
υλοποίηση των προηγούμενων, λόγω της διαχείρισης της τιμής της h(x) σε κάθε κόμβο.<br />
Για την πρώτη περίπτωση, αρκεί απλά να τεθεί h(x) = 0 για κάθε κόμβο x , να ακυρωθεί δηλαδή στην<br />
πράξη η ευρετική. Για την δεύτερη περίπτωση, αρκεί να οριστεί ένας μετρητής C με μία πολύ μεγάλη<br />
αρχική τιμή. Κάθε φορά που επεξργάζεται ένας κόμβος, τότε αποδίδεται η τιμή C ως h(x) σε όλους<br />
τους καινούριους γείτονες, ελαττωμένη κάθε φορά κατά μία μονάδα. Με αυτόν τον τρόπο, όσο πιο<br />
γρήγορα έχει βρεθεί ένας γείτονας, τόσο μεγαλύτερη η τιμή h(x).<br />
Τπάρχουν διάφορες τεχνικές υλοποίησης που μπορούν σημαντικά να αυξήσουν την απόδοση του Α*<br />
σε λειτουργία. Π.χ. το να διατηρείται για κάθε κόμβο μία αναφορά προς τον γονέα του, έτσι ώστε<br />
στο τέλος της αναζήτησης αυτές να μπορούν να χρησιμοποιηθούν για την ανάκτηση του βέλτιστου<br />
47
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
μονοπατιού. την περίπτωση αυτή, είναι σημαντικό το να μην εμφανίζεται ο ίδιος κόμβος πάνω από<br />
μία φορά στην λίστα προτεραιότητας (με κάθε συμμετοχή να αντιστοιχεί σε ένα διαφορετικό<br />
μονοπάτι προς τον κόμβο, και με διαφορετικό κόστος). Η τυπική προσέγγιση στο θέμα είναι ο<br />
έλεγχος εάν ο κόμβος προς εισαγωγή στη λίστα υπάρχει ήδη σε αυτήν ή όχι. Εάν υπάρχει ήδη, τότε<br />
οι δείκτες της προτεραιότητας και του γονέα μεταβάλλονται ώστε να αντιστοιχούν στο μονοπάτι με<br />
το λιγότερο κόστος.<br />
3.3.4 Ο Αλγόριθμος/Σεχνική ‗Contraction Hierarchies‘ (‗υναιρετικές<br />
Ιεραρχίες‘).<br />
Πρόκειται για μία καινούργια σχετικά τεχνική, για την μείωση του μεγέθους του Γράφου, η οποία<br />
βασίζεται στην συναίρεση κόμβων, με απώτερο σκοπό βέβαια την επιτάχυνση της διαδικασίας. Οι<br />
κόμβοι πρώτα ταξινομούνται κατά σημαντικότητα κι έπειτα δημιουργείται μία ιεραρχία,<br />
συναιρώντας επαναληπτικά τον κόμβο με την μικρότερη σημαντικότητα. Η συναίρεση ενός κόμβου v<br />
σημαίνει την αντικατάσταση των συντομότερων μονοπατιών που διέρχονται από τον v με<br />
συντομεύσεις (shortcuts). την πραγματικότητα, η συναίρεση κόμβων είναι ο τρόπος που<br />
ακολουθείται για την συναίρεση ακμών.<br />
το παρόν κείμενο γίνεται μια προσπάθεια συνοπτικής παρουσίασης, με εστίαση στην παρούσα<br />
Εφαρμογή, της εργασίας ‗Contraction Hierarchies: Faster and Simpler Hierarchical Routing in Road<br />
Networks‘ των Robert Geisberger, Peter Sanders, Dominik Schultes, και Daniel Delling του<br />
πανεπιστημίου του Karlsruhe [Αναφορά #17: Robert Geisberger, Peter Sanders, Domminik<br />
Schultes, Daniel Delling (2008), Contraction Hierarchies: Faster and Simpler Hierarchical Routing<br />
in Road Networks]. ε κάθε πείπτωση ο αναγνώστης προτρέπεται να διαβάσει το πρωτότυπο<br />
κείμενο, το οποίο υπάρχει διαθέσιμο στην web διεύθυνση:<br />
http://algo2.iti.kit.edu/download/contract.pdf.<br />
3.3.4.1 Εισαγωγή την Σεχνική.<br />
Ο αλγόριθμος για το ερώτημα της ιεράρχησης επιτυγχάνεται με αναζήτηση συντομότερων<br />
μονοπατιών κατά δύο κατευθύνσεις. Η αναζήτηση με φορά προς τα εμπρός χρησιμοποιεί μόνο<br />
ακμές που οδηγούν σε πιο σημαντικούς κόμβους, και η αναζήτηση με φορά προς τα πίσω<br />
χρησιμοποιεί μόνο ακμές που έρχονται από πιο σημαντικούς κόμβους. Ο Γράφος ενός οδικού<br />
48
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
δικτύου παραμένει αρκετά διεσπαρμένος κατά την διαδικασία συναίρεσης, χρησιμοποιώντας απλές<br />
ευρετικές για την ταξινόμηση των κόμβων. ε σύγκριση με την καλύτερη προηγούμενη ιεραρχική<br />
τεχνική επιτάγχυνσης βασισμένη στον Dijkstra, η τεχνική Contraction Hierarchies επιτυγχάνει πέντε<br />
φορές καλύτερους χρόνους, κι ένα αρνητικό overhead χώρου. Σο τελευταίο συμβαίνει καθώς η δομή<br />
των δεδομένων για τον υπολογισμό της απόστασης απαιτεί λιγότερο χώρο από τον αρχικό Γράφο. Η<br />
τεχνική μπορεί να χρησιμοποιηθεί μαζί με άλλες τεχνικές και αλγόριθμους αναζήτησης καλύτερων<br />
διαδρομών.<br />
Ας θεωρηθεί ότι οι κόμβοι ενός ζυγισμένου και με φορά γράφου G = (V,E) είναι αριθμημένοι 1..n<br />
κατά αύξουσα σημαντικότητα. Είναι τότε δυνατόν να δημιουργηθεί μία ιεραρχία, αν συναιρούνται οι<br />
κόμβοι κατά αυτή την σειρά. Ένας κόμβος συναιρείται αφαιρόντας αυτόν από το δίκτυο κατά τέτοιο<br />
τρόπο ώστε να διατηρούνται τα συντομότερα μονοπάτια στον εναπομείναντα γράφο. Αυτή η<br />
ιδιότητα επιτυγχάνεται αντικαθιστώντας μονοπάτια της μορφής (u, v, w) από μία ακμή συντόμευσης<br />
(u,w). Η συντόμευση αυτή απαιτείται μόνο εάν το (u, v, w) είναι το μόνο συντομότερο μονοπάτι από<br />
u τον στον w.<br />
Η διαδικασία της συναίρεσης μπορεί να ειδοθεί σαν ένας τρόπος για να προστεθούν όλες οι<br />
συντομεύσεις που έχουν βρεθεί στο σύνολο των ακμών E. Η ταξινόμηση των κόμβων κατά<br />
σημαντικότητα παρόλο που δείχνει ένα δύσκολο πρόβλημα, εν τούτοις διάφορες ήδη υπάρχουσες<br />
ευρετικές κάνουν την σχετική διεργασία σχετικά εύκολη. Η βασική ιδέα είναι να διατηρούνται οι<br />
κόμβοι σε μία σειρά προτεραιότητας κατά κάποια εκτίμηση του πόσο θελκτική είναι η συναίρεση<br />
ενός κόμβου. Σο κύριο συστατικό αυτής της ευρετικής εκτίμησης είναι η διαφορά ακμής, δηλαδή ο<br />
αριθμός των συντομεύσεων που εισάγονται όταν συναιρείται ο κόμβος, μείον τον αριθμό των ακμών<br />
που σχετίζονται με αυτόν. Η σκέψη πίσω από αυτό είναι ότι ο συνειρημένος γράφος θα έχει όσο το<br />
δυνατόν λιγότερες ακμές. Ακόμη και μόνο με αυτόν τον απλό τρόπο απόδοσης και ταξινόμησης<br />
σημαντικότητας, υπολογίζονται αρκετά καλές υναιρετικές Ιεραρχίες, όμως με πρόσθετες<br />
διαδικασίες το αποτέλεσμα είναι καλύτερο. Ιδιαίτερα, είναι σημαντικό να συναιρούνται οι κόμβοι<br />
‗ομοιόμορφα‘.<br />
Για το routing, η υναιρετική Ιεραρχία (V,E) διασπάται σε έναν προς τα πάνω γράφο G↑:= (V,E↑) με<br />
E↑:= {(u, v) ϵ E : u < v} κι έναν προς τα κάτω γράφο G↓:= (V,E˅) με E↓ := {(u, v) ϵ E : u > v}. Για ένα<br />
ερώτημα συντομότερου μονοπατιού από το s στο t, πραγματοποιείται μία τροποποιημένη αναζήτηση<br />
Dijkstra δύο κατευθύνσεων, δηλαδή μία προς τα εμπρός αναζήτηση στο G↑ και μία προς τα πίσω<br />
αναζήτηση στο G↓. Εάν, και μόν εάν, υπάρχει ένα συντομότερο μονοπάτι s-t στον αρχικό γράφο,<br />
τότε οι δύο αναζητήσεις συναντώνται σε έναν κόμβο v, ο οποίος έχει την υψηλότερη θέση από όλους<br />
τους κόμβους στο συντομότερο αυτό μονοπάτι.<br />
49
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
3.3.4.2 υναίρεση.<br />
πως ειπώθηκε προηγουμένως, όταν συναιρείται ένας κόμβος v, τότε πλέον διαχειρίζεται ένας<br />
γράφος G’ = (V’,E’) με V ‘ = v..n και ένα σύνολο ακμών E’ το οποίο διατηρεί τις αποστάσεις των<br />
συντομότερων μονοπατιών, όπως στον αρχικό γράφο. τον νέο γράφο, υπάρχει το εξής πρόβλημα<br />
συντομότερου μονοπατιού many-to-many που πρέπει να επιλυθεί: Για κάθε πηγαίο κόμβο u ϵ v + 1..n<br />
με (u, v) ϵ E’ και κάθε κόμβο στόχο w ϵ v + 1..n με (v,w) ϵ E’, ζητείται να συγκριθεί η απόσταση του<br />
συντομότερου μονοπατιού d(u,w) με το μήκος της συντόμευσης c(u, v)+c(v,w) ώστε να αποφασιστεί<br />
εάν η συντόμευση χρειάζεται πραγματικά. Ένας απλός τρόπος υλοποίησης είναι να<br />
παραγματοποιηθεί μία προς τα εμπρός αναζήτηση συντομότερου μονοπατιού στον γράφο G’ από<br />
κάθε πηγή, αγνοώντας τον κόμβο v, μέχρι όλοι οι στόχοι να έχουν βρεθεί. Η αναζήτηση από τον v<br />
μπορεί να σταματήσει επίσης όταν θα έχει φτάσει σε απόσταση d(u, v) + max {c(v,w) : (v,w) ϵ E’}.<br />
την πραγματικότητα, η παρούσα τεχνική χρησιμοποιεί μία απλή, ασυμμετρική μορφή δύο<br />
κατευθύνσεων. Για κάθε κόμβο στόχο w πραγματοποιείται μία απλού βήματος προς τα πίσω<br />
αναζήτηση. Για κάθε ακμή (x,w) ϵ E’ αποθηκεύεται η (c(x,w),w) με τον κόμβο x. Κατά αυτόν τον<br />
τρόπο, η προς τα εμπρός αναζήτηση από τον μπορεί να περιοριστεί σε απόσταση c(u, v) + max (w:(v,w)<br />
ϵ E’) c(v,w) – min(x:(x,w) ϵ E’) c(x,w).<br />
Υτάνοντας σε έναν κόμβο x, παρατηρούνται οι τιμές που έχουν αποθηκευθεί για αυτόν. Για κάθε<br />
αποθηκευμένη τιμή (C,w), μπορεί να προκύψει το συμπέρασμα ότι υπάρχει ένα μονοπάτι από το u<br />
στο w μήκους d(u, x) + C.<br />
Καθώς η ακριβής αναζήτηση συντομότερου μονοπατιού μπορεί να απαιτεί αρκετό χρόνο,<br />
υλοποιούνται δύο τρόποι για να μειωθεί το εύρος των αναζητήσεων. Μπορεί να μειωθεί ο αριθμός<br />
των βημάτων (ακμές) που χρησιμοποιούνται σε κάθε μονοπάτι (u, . . . ,w), και μπορεί να περιοριστεί<br />
ο συνολικός χώρος μίας προς τα εμπρός αναζήτησης. Ας σημειωθεί ότι αυτό δεν έχει επίδραση στην<br />
ορθότητα των επόμενων ερωτημάτων στην τεχνική Contraction Hierarchies, καθόσο εξασφαλίζεται<br />
να εισάγεται πάντα μία συντόμευση (u,w) όταν δεν έχει βρεθεί ένα μονοπάτι από το u στο w,<br />
παρατηρώντας ότι η συντόμευση δεν είναι απαραίτητη. Επίσης, σημειώνεται ότι με περιορισμό των<br />
βημάτων σε δύο, η προσέγγιση δύο κατευθύνσεων παρακάμπτει μία πλήρη γρήγορη αναζήτηση<br />
Dijkstra. Επαρκεί για την εξέταση των ακμών που αφήνουν έναν πηγαίο κόμβο u.<br />
Με μικρά όρια βημάτων επιτυγχάνεται μία γρήγορη ‗συναίρεση‘, αλλά με μεγάλα όρια δημιουργείται<br />
ένας πιο αραιός γράφος, στον οποίο μειώνονται οι χρόνοι ερωτημάτων και είναι ευκολότερη η<br />
συναίρεση αργότερα. Σο ζητούμενο λοιπόν είναι να βρίσκεται η χρυσή τομή. ύμφωνα με πειράματα,<br />
είναι καλύτερα να ξεκινά κανείς με μικρά όρια βημάτων, ακόμη κι ένα, και να τα αυξάνει αργότερα.<br />
Η αύξηση των ορίων μπορεί να γίνεται όταν ο μέσος βαθμός του γράφου G’ γίνεται μεγαλύτερος<br />
από κάποιο καθορισμένο μέγιστο.<br />
50
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
3.3.4.3 Σαξινόμηση Κόμβων.<br />
Η βασική προσέγγιση χρησιμοποιεί μία σειρά προτεραιότητας, της οποίας το ελάχιστο στοιχείο<br />
περιέχει τον κόμβο για τον οποίο φαίνεται να έιναι πιο θελκτική η συναίρεση. Η προτεραιότητα που<br />
χρησιμοποιείται είναι γραμμικός συνδυασμός διαφόρων παραγόντων. Η δυσκολία με αυτή την<br />
προσέγγιση είναι το ότι όταν ένας κόμβος v συναίρεται, αυτό θα μπορούσε να επηρεάσει τις<br />
προτεραιότητες άλλων κόμβων. Σο πρόβλημα αυτό αντιμετωπίζεται με αρκετές τεχνικές:<br />
Με χρησιμοποίηση οκνηρής ανανέωσης (lazy update). Π.χ. πριν την συναίρεση του<br />
κόμβου v, ανανεώνεται η προτεραιότητά του. Εάν υπερβαίνει πλέον την<br />
προτεραιότητα του δεύτερου μεγαλύτερου στοιχείου v’, επανεισάγεται ο v και<br />
συνεχίζεται η διαδικασία με τον v’. Αυτή η διαδικασία επαναλαμβάνεται μέχρι να<br />
βρεθεί ένα σταθερό ελάχιστο. Ας σημειωθεί ότι (τουλάχιστον ως προς την<br />
ταξινόμηση των κόμβων), η οκνηρή ανανέωση παρακάμπτει στιγμιαίες<br />
ενημερώσεις όταν η προτεραιότητα αυξάνει.<br />
Επαναυπολογίζεται η προτεραιότητα των γειτόνων του v.<br />
Περιοδικά επαναξιολογούνται όλες οι προτεραιότητες, ξαναδημιουργείται η σειρά<br />
προτεραιότητας.<br />
Σο πιο σημαντικό θέμα είναι η διαφορά ακμής. Για τον υπολογισμό της, η ταξινόμηση κόμβων<br />
χρησιμοποιεί τις ίδιες ευρετικές για τον περιορισμό των χώρων αναζήτησης που χρησιμοποιούνται<br />
αργότερα στην ίδια την συναίρεση.<br />
Φρησιμοποιώντας μόνο την διαφορά ακμής, είναι δυνατόν να προκύψει αργό routing. Για<br />
παράδειγμα, εάν ο αρχικός γράφος είναι ένα μονοπάτι, τότε η συναίρεση θα παρήγαγε μία γραμμική<br />
ιεραρχία όπου τα περισσότερα ερωτήματα θα ακολουθούσαν ξανά μονοπάτια γραμμικού μήκους. ε<br />
αντίθεση, εάν επαναληπτικά συναιρούνται μέγιστα ανεξάρτητα σύνολα, τότε θα προέκυπτε μία<br />
ιεραρχία όπου κάθε ερώτημα θα ολοκληρωνόταν σε λογαριθμικό χρόνο.<br />
Γενικότερα, μια καλή ιδέα φαίνεται να είναι το να συναιρούνται οι κόμβοι οπουδήποτε στον γράφο,<br />
με έναν ομοιόμορφο τρόπο, παρά να διατηρείται η συναίρεση κόμβων σε μία μικρή περιοχή. Για την<br />
επιλογή των κόμβων ομοιόμορφα, έχουν δοκιμαστεί αρκετές ευρετικές, δύο από τις οποίες είναι οι<br />
εξής:<br />
Διεγραμμένοι Γείτονες: Μετράται ο αριθμός των γειτόνων που έχουν ήδη<br />
συναιρεθεί, συμπεριλαμβάνοντας τους κόμβους που έχουν προσεγγιστεί από<br />
αυντομεύσεις. Αυτή η ποσότητα μπορεί να διατηρείται ορθή, είτε με οκνηρή<br />
51
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ανανέωση, είτε ανανεώνοντας τους γείτονες ενός συναιρεμένου κόμβου. Πρόκειται<br />
για πολύ απλές ευρετικές, οι οποίες μπορούν να υπολογιστούν αποδοτικά.<br />
Περιοχές Voronoi: Περιοχή Voronoi R(v) ενός κόμβου v σε έναν παράγωγο γράφο<br />
ορίζεται το σύνολο των κόμβων στον αρχικό γράφο που είναι πλησιέστερα στον v<br />
από ότι από κάθε άλλο κόμβο στον παράγωγο γράφο. Η τετραγωνική ρίζα του<br />
μεγέθους της περιοχής Voronoi είναι ένας παράγοντας στη συνάρτηση<br />
προτεραιότητας. υναιρώντας συνειδητά μικρές περιοχές Voronoi, ελπίζεται ότι οι<br />
κόμβοι του παράγωγου γράφου θα είναι διεσπαρμένοι ομοιόμορφα στο δίκτυο.<br />
ταν συναιρείται ο v, τότε οι γειτονικές περιοχές Voronoi θα διαγράψουν την R(v).<br />
Οι απαραίτητοι υπολογισμοί μπορούν να γίνουν χρησιμοποιώντας O(|R(v)|) βήματα<br />
του αλγόριθμου του Dijkstra. Εάν πάντα συναιρούνται περιοχές Voronoi μεγέθους<br />
το πολύ ενός σταθερού πολλαπλάσιου του μέσου μεγέθους, εύκολα μπορεί να<br />
δειχθεί ότι ο συνολικός αριθμός των βημάτων στον Dijkstra για την διατήρηση του<br />
μεγέθους των περιοχών Voronoi είναι O(n log n). Καθώς οι περιοχές Voronoi<br />
μπορούν μόνο να μεγαλώσουν, η οκνηρή ανανέωση εξασφαλίζει ότι η σειρά<br />
προτεραιότητας δουλεύει ορθα όσον αφορά αυτόν τον παράγοντα της συνάρτησης<br />
προτεραιότητας.<br />
Τπάρχει ένας αριθμός επιπλέον προαιρετικών παράμετρων της συνάρτησης προτεραιότητας που<br />
μπορούν να βελτιώσουν περαιτέρω την ιεραρχία, με κόστος όμως την αύξηση του χρόνου<br />
ταξινόμησης των κόμβων.<br />
Ένα τμήμα της συναίρεσης που κοστίζει σε χρόνο είναι οι προς τα εμπρός αναζητήσεις<br />
συντομότερου μονοπατιού για την απόφαση σχετικά με την αναγκαιότητα των συντομεύσεων. Έτσι,<br />
για παράδειγμα, μπορεί να χρησιμοποιηθεί το άθροισμα των μεγεθών χώρου αυτών των<br />
αναζητήσεων ως ένας παράγοντας προτεραιότητας. Ας σημειωθεί ότι αυτή η ποσότητα μπορεί να<br />
αλλάξει πέρα από την άμεση γειτονιά του συναιρεμένου κόμβου.<br />
Μία εκτίμηση του πως οι συναιρεμένοι κόμβοι επηρεάζουν το μέγεθος των χρόνων που απαιτούνται<br />
για τις αναζητήσεις των ερωτημάτων, μπορεί να γίνει ως εξής: Τλοποιώντας την απλή εκτίμηση Q(v)<br />
που μπορεί να ειδοθεί ως το άνω όριο για τον αριθμό των αλμάτων ενός μονοπατιού (s, . . . , v) το<br />
οποίο έχει εξερευνηθεί κατά την διάρκεια ενός ερωτήματος, αρχικά είναι Q(v) = 0. ταν ο v<br />
συναιρεθεί, τότε για κάθε γείτονά του u είναι Q(u):= max(Q(u),Q(v) + 1).<br />
Σέλος, μπορεί να είναι προτιμητέο να συναιρούνται κόμβοι που είναι στο σύνολο ασήμαντοι, με βάση<br />
μία μέτρηση κεντρικότητας μονοπατιού, όπως είναι η προσεγγιστική ενδιαμεσότητα (betweenness)<br />
ή το πλησίασμα (reach).<br />
52
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
3.3.4.4 Ερώτημα.<br />
Ένας αλγόριθμος που ήδη δουλεύει αρκετά καλά πραγματοποιεί αναζητήσεις Dijkstra από το s στο<br />
G↑ και από το t στο G↓. Έτσι: d(s, t) = min {d(s, v) + d(v, t) : v επισκζπτεται και στις δύο αναηθτισεις}.<br />
Τπάρχουν δύο βελτιώσεις στον πλήρη αλγόριθμο αναζήτησης. τη μία, το ερώτημα εναλλάσει<br />
ανάμεσα στην προς τα εμπρός και την προςτα πίσω αναζήτηση. Οποτεδήποτε επισκέπτεται ένας<br />
κόμβος σε μία κατεύθυνση ο οποίος ήδη έχει επισκεφθεί στην άλλη κατεύθυνση, προκύπτει ένας<br />
καινούριος υποψήφιος ως συντομότερο μονοπάτι. Η αναζήτηση σε μία κατεύθυνση σταματά εάν το<br />
μικρότερο στοιχείο στη σειρά είναι τουλάχιστον τόσο μεγάλο όσο το καλύτερο υποψήφιο μονοπάτι<br />
που έχει ήδη βρεθεί. Αυτό δεν επηρεάζει την ορθότητα, καθώς πρόσθετοι επεσκεμμένοι κόμβοι σε<br />
αυτή την κατεύθυνση δεν μπορούν να συνεισφέρουν σε καλύτερες λύσεις.<br />
Ο χώρος αναζήτησης μπορεί να μειωθεί επίσης χρησιμοποιώντας την τεχνική stall-on-demand. Πριν<br />
επισκεφθεί ένας κόμβος v σε απόσταση d(v) στην προς τα εμπρός αναζήτηση, χρησιμοποιεί την<br />
πληροφορία που είναι διαθέσιμη στον G↓ για να επιθεωρήσει τις κατάντη ακμές (w, v) με w > v. Εάν<br />
d(w)+c(w, v) < d(v), τότε η αναζήτηση μπορεί να σταματήσει (stalled) στον v με απόσταση stalling<br />
d(w)+c(w, v), καθώς η υπολογισμένη απόσταση προς τον v είναι υποβέλτιστη, οπότε η συνέχιση της<br />
αναζήτησης από τον v θα ήταν χωρίς νόημα. Σέτοιοι κόμβοι επισκέπτονται αλλά οι ακμές που<br />
σχετίζονται με αυτούς δεν χαλαρώνονται, οδηγώντας σε ένα σημαντικά μικρότερο χώρο<br />
αναζήτησης. Παραπέρα, το stalling μπορεί να επεκταθεί σε άλλους κόμβους x στη γειτονιά του v,<br />
εάν το μονοπάτι που διέρχεται από τον w του γράφου G προς τον x είναι συντομότερο από το τρέχον<br />
μονοπάτι που έχει βρεθεί προς τον x στον γράφο G↑. Πραγματοποιείται μία τοπική Best-First<br />
αναζήτηση από τον v χρησιμοποιώντας τις διαθέσιμες ακμές στον G↑ ή στον G↓. Η αναζήτηση<br />
σταματά στους κόμβους που δεν είναι stalled. Για την εξασφάλιση της ορθότητας, γίνεται unstalled<br />
ένας κόμβος x εάν βρίσκεται ένα συντομότερο μονοπάτι στον G↑ προς τον x από ότι το τρέχον. Η<br />
τεχνική stall-on-demand εφαρμόζεται κατά τον ίδιο τρόπο και στην προς τα πίσω αναζήτηση.<br />
Οι γράφοι G↑ και G↓ μπορεί να αποθηκευθούν σε μία δομή δεδομένων, χρησιμοποιώντας σημαίες<br />
δύο κατευθύνσεων για κάθε ακμή, ώστε να δείχνεται αν αυτή ανήκει στον έναν ή στον άλλον. Άσχετα<br />
των σημαιών αυτών, κάθε ακμή (u, v) αποθηκεύεται μόνο μία φορά, στον μικρότερο κόμβο, που<br />
πληρεί τις απαιτήσεις τόσο της προς τα εμπρός, όσο και της προς τα πίσω αναζήτησης<br />
(συμπεριλαμβάνοντας την τεχνική stall-on-demand). Ειδικότερα, αυτό εφαρμόζεται επίσης σε ακμές<br />
χωρίς φορά {u, v}, με το ίδιο βάρος στις δύο κατευθύνσεις. ε αντίθεση, μία αποτελεσματική<br />
υλοποίηση του αλγορίθμου του Dijksta (ακόμη και χωρίς φορές) χρειάζεται να αποθηκεύσει τέτοιες<br />
ακμές χωρίς φορά {u, v} τόσο στον u, όσο και στον v. Αυτή είναι και η αιτία που μπορεί να<br />
χρειάζεται λιγότερος χώρος από ότι με τον αλγόριθμο του Dijkstra για τον αρχικό γράφο, παρόλο<br />
που πρέπει να εισαχθούν και οι συντομεύσεις.<br />
53
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
πως σε όλες τις τεχνικές που χρησιμοποιούν συντομεύσεις, χρειάζεται ένας τρόπος για το<br />
‗ξεδίπλωμα‘ αυτών, έτσι ώστε να φανεί το συντομότερο μονοπάτι στον αρχικό γράφο. Αυτό είναι<br />
αρκετά απλό στην τεχνική των Contration Hierarchies, αφού κάθε συντόμευση (u,w) παρακάμπτει<br />
ακριβώς έναν κόμβο v. Η ανάκτηση του συντομότερου μονοπατιού γίνεται με μία απλή διεισδυτική<br />
ρουτίνα. Για την αποτελεσματική υλοποίηση, χρειάζεται ο κόμβος v να αποθηκεύεται κάπου μαζί με<br />
την συντόμευση. Ας σημειωθεί ότι αυτή η πληροφορία δεν αποκτάται εύκολα, μόνο από τον G↑ ή τον<br />
G↓.<br />
3.4 Σο Δίκτυο ΜΜΜ Σης Αθήνας.<br />
Η μητροπολιτική περιοχή της Αθήνας σήμερα έχει πληθυσμό περίπου 4 εκατομμυρίων, και μέση<br />
πυκνότητα της τάξης των 1400/km 2 . Η περιοχή αντιμετωπίζει έντονα κυκλοφοριακά προβλήματα,<br />
λόγω:<br />
Σου υπερπληθυσμού. Ο όποιος σχεδιασμός αφορά πληθυσμό περίπου 1 εκατομμυρίου, ενώ<br />
ακόμη κι αυτός δεν έχει τηρηθεί, με αποτέλεσμα την άναρχη ανάπτυξη.<br />
Σης υπερβολικής χρήσης του ΙΦ αυτοκινήτου. Η κακή διαχρονικά λειτουργία των ΜΜΜ της<br />
περιοχής, σε συνδυασμό με την θέαση του ΙΦ αυτοκινήτου ως συμβόλου κοινωνικής<br />
ανάδειξης, έχει δημιουργήσει μία πραγματικότητα όπου τα ΙΦ αυτοκίνητα χρησιμοποιούνται<br />
υπερβολικά, ακόμη και για μικρές αποστάσεις, ενώ αντίθετα τα ΜΜΜ σχετικά λίγο.<br />
Σης κακής αντιμετώπισης των ΜΜΜ. Λόγω του μεγάλου αριθμού ΙΦ αυτοκινήτων και της<br />
υπερβολικής χρήσης αυτών, σε συνδυασμό με την γενικότερη έλλειψη σεβασμού κανόνων,<br />
δημιοργούνται συνθήκες που επηρεάζουν ιδιαίτερα αρνητικά την λειτουργία κι ανάπτυξη<br />
των ΜΜΜ, όπως π.χ. η προβληματική παράνομη στάθμευση, η κίνηση εντός των<br />
λεωφορειολωρίδων, κ.α..<br />
Σων πυκνών διαταράξεων της φυσιολογικής λειτουργίας της πόλης εξαιτίας των πολύ<br />
συχνών αποκλεισμών, ιδιαίτερα του Κέντρου, για την πραγματοποίηση πορειών,<br />
συλλαλητηρίων, επεισοδίων, κτλ..<br />
Η λειτουργία των ΜΜΜ της περιοχής βελτιώθηκε σημαντικά προ περίπου 10-6 ετών, με την<br />
ανανέωση του στόλου των οχημάτων και την λειτουργία 2 επιπλέον γραμμών metro, την λειτουργία<br />
προαστιακού δικτύου, την επαναλειτουργία του tram, αλλά και την πρόσκαιρη αποσυμφόρηση σε<br />
κάποιους οδικούς άξονες από την δημιουργία νέων οδών (π.χ. Αττική Οδός) ή την βελτίωση της<br />
λειτουργίας υφιστάμενων, κάτι που έγινε λόγω της επικείμενης τότε διοργάνωσης των Ολυμπιακών<br />
Αγώνων του 2004. Έτσι σήμερα, το δίκτυο των ΜΜΜ αποτελείται από:<br />
Λίγο περισσότερες από 300 γραμμές θερμικών λεωφορείων.<br />
23 γραμμές ηλεκτροκίνητων λεωφορείων (Trolleys).<br />
54
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
3 γραμμές Metro.<br />
3 γραμμές Tram.<br />
Προαστιακό ιδηρόδρομο.<br />
4 λεωφορειακές γραμμές εξυπηρέτησης του Αερολιμένα. Ο Αερολιμένας<br />
εξυπηρετείται κι από την μία γραμμή metro, όπως επίσης κι από τον Προαστιακό<br />
ιδηρόδρομο.<br />
Ας σημειωθεί ότι μέσα στην ίδια περιοχή υπάρχει παράλληλη λειτουργία των προαστιακών γραμμών<br />
του ΚΣΕΛ Αττικής, των λεωφορειακών γραμμών κάποιων δήμων, όπως επίσης και του μεγάλου<br />
αριθμού taxi. Επίσης, στην αρχή της εκπόνησης υπήρχε και η ειδική λεωφορειακή Γραμμή ‗400 –<br />
Athens Sightseeing‘, η οποία καταργήθηκε. Τπάρχουν όμως αντίστοιχες τουριστικού<br />
προσανατολισμού γραμμές που λειτουργούν από ιδιωτικές εταιρείες.<br />
Σο metro, από την στιγμή της αρχικής λειτουργίας των 2 επιπλέον γραμμών αλλά και των<br />
επεκτάσεών τους, αποτελεί την ραχοκοκκαλιά του συστήματος των ΜΜΜ, με συνεχή<br />
αναδιαμόρφωση των λεωφορειακών γραμμών ώστε να λειτουργούν τροφοδοτικά προς το metro.<br />
σον αφορά το tram, αν και υπάρχουν σκέψεις για την επέκτασή του και την δημιουργία νέων<br />
γραμμών, δεν έχει γίνει μέχρι σήμερα κάτι πρακτικό προς αυτή την κατεύθυνση. Έτσι, αυτή την<br />
στιγμή παρατηρείται σημαντική κίνηση στο Μεσόγειο τμήμα, δηλαδή μεταξύ Πλατείας υντάγματος<br />
και παραλιακής ζώνης, ενώ αντίθετα, παρατηρείται μικρή κίνηση στα τμήματα που αφορούν την<br />
διαδρομή κατά μήκος της παραλίας. Η επέκταση του μέσου από το ΕΥ προς το Κέντρο του Πειραιά<br />
θα έδινε σημαντική ώθηση στη λειτουργία του και θα βελτίωνε τις κυκλοφοριακές συνθήκες της<br />
πόλης, όμως μέχρι σήμερα δεν έχει υιοθετηθεί λύση προς πραγματοποίηση που να αντιμετωπίζει<br />
ικανοποιητικά την διέλευση των οχημάτων από τους στενούς και υπερφορτισμένους δρόμους της<br />
περιοχής.<br />
Ο Προαστικός ιδηρόδρομος λειτουργεί ικανοποιητικά για το τμήμα από τον Αερολιμένα μέχρι το<br />
Κιάτο, εν τούτοις δεν συμβαίνει το ίδιο για το τμήμα από τον Πειραιά μέχρι τα Ν. Λιόσια, κυρίως<br />
λόγω προβλημάτων με την υπογειοποίηση της γραμμής, των συνεχών μετά την αρχική λειτουργεία<br />
συμπληρωματικών έργων, κτλ..<br />
Κατά την εκπόνηση της παρούσας Εργασίας σημαντικά ήταν και τα προβλήματα που<br />
δημιουργούνταν στη λειτουργία του δικτύου των ΜΜΜ από τα έργα αναβάθμισης της Γραμμής 1<br />
του metro, οπότε και παρατηρούνταν συνεχείς διακοπές της λειτουργίας σε κάποια τμήματα.<br />
Ο κύριος φορέας οργάνωσης κι εποπτείας είναι ο Οργανισμός Αστικών υγκοινωνιών της Αθήνας<br />
(ΟΑΑ), με θυγατρικές εταιρείες εκτέλεσης του συγκοινωνιακού έργου την ΕΘΕΛ για τα θερμικά<br />
λεωφορεία (~2000 οχήματα, 400 εκατομμύρια επιβάτες/έτος), την ΗΛΠΑΠ για τα ηλεκτροκίνητα<br />
λεωφορεία (~366 οχήματα, 77 εκατομμύρια επιβάτες/έτος), και την ΗΑΠ για την Γραμμή 1 του<br />
55
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
metro (‗ηλεκτρικός‘, 24 σταθμοί, 450 χιλιάδες επιβάτες/ημέρα). Η ΑΜΕΛ είναι η εταιρία λειτουργίας<br />
των Γραμμών 2 και 3 του metro ( 34 σταθμοί, 170 εκατομμύρια επιβάτες/έτος), με θυγατρική της<br />
την Σραμ (48 στάσεις, 65 χιλιάδες επιβάτες/ημέρα), για την λειτουργία του ομώνυμου μέσου. Η<br />
Προαστιακός είναι εταιρεία θυγατρική του Οργανισμού ιδηροδρόμων Ελλάδος (ΟΕ), και είναι η<br />
εταιρεία λειτουργίας του προαστιακού δικτύου, το οποίο συνδέει τον Πειραιά, τον Αερολιμένα, το<br />
Κιάτο Κορινθίας, και την Φαλκίδα. Ας σημειωθεί ότι η οργανωτική μορφή είναι ιδιαίτερα ρευστή,<br />
καθώς κατά την περίοδο εκπόνησης της παρούσας υπήρχαν ήδη σκέψεις για την μεταβολή της.<br />
σον αφορά την τιμολογιακή πολιτική, το κύριο εισιτήριο είναι αυτό που ισχύει για όλα σχεδόν τα<br />
μέσα και τις γραμμές για διάρκεια 90‘ μέχρι την τελευταία επιβίβαση, χωρίς περιορισμό στις<br />
μετεπιβιβάσεις. Η υιοθέτηση αυτού του τύπου εισιτηρίου ήταν ένα πολύ σημαντικό βήμα για την<br />
ουσιαστικότερη λειτουργία του δικτύου ως ενιαίου και ολοκληρωμένου. Ειδικά εισιτήρια απαιτούνται<br />
για τις Γραμμές που εξυπηρετούν τον Αερολιμένα (€3.20 για τις λεωφορειακές, €6.00 για τις<br />
σιδηροδρομικές [ €4.00 από/προς τους 3 πλησιέστερους σταθμούς]), το τμήμα της λεωφορειακής<br />
γραμμής Ε22 που εξυπηρετεί την αρωνίδα, μετά την Βάρκιζα (€1.20), ενώ υπάρχουν και μειωμένα<br />
εισιτήρια, π.χ. για φοιτητές, εισιτήρια 1, 3 ή 7 ημερών, όπως επίσης και μηνιαίες και ετήσιες κάρτες.<br />
Για έναν επισκέπτη της πόλης, είναι προφανές ότι μεγαλύτερο ενδιαφέρον έχουν τα εισιτήρια μέχρι<br />
και 7 ημερών, όπως επίσης και τα ομαδικά εισιτήρια 2 ή 3 ατόμων με έκπτωση, από/προς τον<br />
Αερολιμένα.<br />
Πρακτικά οι περισσότερες γραμμές λειτουργούν από τις 05:30 μέχρι τις 24:00 περίπου. Οι γραμμές<br />
του metro λειτουργούν κατ‘ εξαίρεση μέχρι τις 26:30 Παρασκευή και άββατο, του Tram ολόκληρο<br />
το 24ωρο τις ίδιες ημέρες, με αραιά δρομολόγια τις μεταμεσονύχτιες ώρες, ενώ οι Γραμμές ‗040‘<br />
και ‗11‘ λειτουργούν 24 ώρες όλη την εβδομάδα. Οι Γραμμές ‗500‘ (κατά μήκος της Γραμμής 1 του<br />
metro και ‗790‘ λειτουργούν τις ώρες 00:30-04:30, ενώ η Γραμμή ‗X14‘ τις ώρες 20:00-29:30 τις<br />
καθημερινές, και όλο το 24ωρο τα αββατοκύριακα. Οι λεωφορειακές γραμμές που εξυπηρετούν<br />
τον Αερολιμένα λειτουργούν 24/7.<br />
Γενικά τα οχήματα έχουν την δυνατότητα εξυπηρέτης Ατόμων με Ειδικές Ανάγκες, όπως είναι οι<br />
ειδικοί χώροι για την τοποθέτηση αμαξιδίων, η λειτουργία επιγονάτισης κτλ, όμως στην πράξη η<br />
εξυπηρέτηση των Ατόμων αυτών είναι ελάχιστη εώς ανύπαρκτη. Σο ίδιο συμβαίνει κι όσον αφορά την<br />
εξυπηρέτηση των ποδηλατών, όπου είτε δεν επιτρέπεται καθόλου η μεταφορά ποδηλάτων, είτε έχει<br />
πάρα πολλούς περιορισμούς (ΗΑΠ). Ακόμη όμως κι αν τα πράγματα ήταν πολύ καλά ως προς την<br />
χρήση των ΜΜΜ, οι δύο αυτές κατηγορίες επιβατών και πάλι θα είχαν να αντιμετωπίσουν τις<br />
δυσκολίες που υπάρχουν σε ολόκληρη την πόλη.<br />
56
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
4Απαιτήσεις Και χεδιασμός<br />
Τπηρεσίας.<br />
πως έχει αναφερθεί, πρόκειται για τον σχεδιασμό μίας Τπηρεσίας, κι όχι μίας Εφαρμογής. Ο όρος<br />
«Τπηρεσία» είναι σωστότερος, αφού πρόκειται για υπερσύνολο της Εφαρμογής, και μπορεί να<br />
περιλαμβάνει περισσότερες από μία εφαρμογές. Έτσι και στην συγκεκριμένη περίπτωση, μας<br />
ενδιαφέρει στην ουσία ο σχεδιασμός μίας Τπηρεσίας, η οποία διαμέσου διαφόρων εφαρμογών θα<br />
παρέχει αυτό που απαιτείται στους χρήστες, κι όχι μόνο, και η οποία θα επιτρέπει επιπλέον διάφορα<br />
χρήσιμα πράγματα που να μπορούν να επεκταθούν, όπως π.χ. την επικοινωνία με τον χρήστη, την<br />
δυνάτοτητα να εκφράσει μία άποψη, ένα παράπονο, ή την δυνατότητα να συνδεθεί εύκολα με<br />
παρόχους σχετικών χρήσιμων πληροφοριών.<br />
4.1 Σι Είναι Και ε Ποιούς Απευθύνεται Η Τπηρεσία.<br />
Η Τπηρεσία σχεδιάστηκε αποσκοπώντας να διευκολύνει την μετακίνηση εντός της Αθήνας ενός<br />
αλλοδαπού επισκέπτη της πόλης, πεζή και κάνοντας χρήση των Μέσων Μαζικής Μεταφοράς. Σο<br />
κύριο μέρος της είναι η λειτουργία μίας εφαρμογής για τον σχεδιασμό ταξιδιών, αλλά σταδιακά<br />
μπορεί να περιλαμβάνει και διάφορα άλλα πράγματα, όπως είναι η πρώτη παρουσίαση<br />
57
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ενδιαφερόντων σημείων, π.χ. μουσείων, ή η παρουσίαση γεγονότων που συμβαίνουν στην πόλη, με<br />
ενδιαφέρον συνήθως για τους επισκέπτες, όπως π.χ. ένα festival.<br />
Μελλοντική επέκταση θα μπορούσε να αφορά την προσαρμοσμένη παροχή πληροφοριών και σε ένα<br />
παράλληλο ή ανεξάρτητο τηλεφωνικό κέντρο, όπως είναι το 185 του ΟΑΑ, ώστε αυτό να τις<br />
προωθεί στους αναζητώντες.<br />
4.2 Βασικές Αρχές Σου χεδιασμού.<br />
Λαμβάνοντας υπόψη ότι η Τπηρεσία απευθύνεται σε έναν αλλοδαπό επισκέπτη, είτε για τουρισμό,<br />
είτε για επαγγελματικούς λόγους, είναι προφανές ότι η χρησιμοποιούμενη γλώσσα δεν μπορεί να<br />
είναι (μόνο) η Ελληνική. Έτσι, το σύνολο της Τπηρεσίας έχει δημιουργηθεί για να παρέχεται αρχικά<br />
στην Αγγλική γλώσσα, με την πρόβλεψη ώστε να μπορούν να προστεθούν ολοένα και περισσότερες<br />
γλώσσες.<br />
Ένας επισκέπτης δεν γνωρίζει συνήθως τίποτα, ή έστω γνωρίζει ελάχιστα πράγματα, σχετικά με τις<br />
μετακινήσεις στην πόλη. Για τον λόγο αυτόν, θα πρέπει ο όλος σχεδιασμός να λαμβάνει υπόψη ότι<br />
όσο απλά κι αν είναι ορισμένα θέματα, εν τούτοις δεν είναι αυτονόητα για κάποιον που δεν γνωρίζει<br />
τα λοιπά θέματα που τα κάνουν αυτά να φαίνονται αυτονόητα. Έτσι, είναι σκόπιμο να δίνεται σε<br />
κάποιον που το επιθυμεί η δυνατότητα να διαβάσει τα βασικότερα στοιχεία που αφορούν τις<br />
μετακινήσεις στην Αθήμα, και να του δίνονται χρήσιμοι σύνδεσμοι για να αναζητήσει περισσότερα<br />
στοιχεία, όπως π.χ. το site του Οργανισμού Αστικών υγκοινωνιακών της Αθήνας (ΟΑΑ). Η βασική<br />
αυτή ενημέρωση μπορεί να περιέχει π.χ. τα μέσα που λειτουργούν στο δίκτυο, την τιμολογιακή<br />
πολιτική, το που μπορεί να βρει κάποιος ένα εισιτήριο, το τι χρειάζεται να κάνει το εισιτήριο ώστε να<br />
μπορεί να ταξιδέψει, κτλ..<br />
Ένας επισκέπτης συνήθως δεν ενδιαφέρεται για λεπτομέρειες στην πληροφορία, κι επίσης δεν<br />
αναζητά την τέλεια λύση. Είναι σημαντικότερο για αυτόν να βρίσκει εύκολα και άμεσα βασική<br />
πληροφόρηση για αυτό που θέλει, κι επίσης το να του προτείνεται κάτι απλό κι εύκολο, παρά να<br />
χρειάζεται να χρησιμοποιήσει κάτι πολύπλοκο, έστω κι αν του δίνει την μαθηματικά καλύτερη λύση.<br />
Για τον λόγο αυτόν, θα πρέπει να αποφευχθεί η παροχή στον χρήστη υπερβολικά μεγάλου αριθμού<br />
πληροφοριών και λειτουργιών, έστω κι αν έχει την δυνατότητα να επιλέξει το αν θα τις δει ή θα τις<br />
χρησιμοποιήσει. την καλύτερη περίπτωση οι επισκέπτες δεν θα ενδιαφερθούν καν για αυτές, ενώ<br />
είναι πολύ πιθανόν να τους δυσκολέψει.<br />
Η τεχνολογία σήμερα παρέχει την δυνατότητα να δίνονται άμεσα και οργανωμένα μεγάλες<br />
ποσότητες πληροφοριών. ταν κάποιος έχει μία σχετική γνώση γύρω από αυτές, και κάποιο<br />
μεγαλύτερο ενδιαφέρον, τότε το να του παρέχεις την δυνατότητα να τις δει και να τις ανακτήσει, σε<br />
κλιμακούμενο βαθμό λεπτομέρειας π.χ., είναι κάτι πολύ χρήσιμο για αυτόν. μως, το ζητούμενο<br />
58
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
σήμερα είναι από την άλλη το πως θα μπορέσει κανείς να βρει την πηγή πληροφοριών για αυτό<br />
ακριβώς που θέλει, κατά τον τρόπο που τις θέλει, και κυρίως, πως θα φιλτράρει ποιές από όλες τις<br />
πληροφορίες τού είναι πραγματικά χρήσιμες.<br />
Κάτι αντίστοιχο συμβαίνει και με τα εργαλεία και τις δυνατότητες που παρέχονται σε κάποιον. ταν<br />
πρόκειται για ένα θέμα που τον ενδιαφέρει και έχει τον απαιτούμενο χρόνο ενασχόλησης, τότε το να<br />
του προσφέρονται εργαλεία και δυνατότητες που θα είναι οργανωμένες έτσι ώστε σταδιακά να<br />
καταφεύγει σε αυτές και να τις χρησιμοποιήσει, είναι κάτι το επιθυμητό ή και αναγκαίο. ε άλλες<br />
περιπτώσεις όμως, όπως π.χ. στην περίπτωσή μας, όπου κάποιος είναι απλά επισκέπτης σε μία πόλη,<br />
και ο οποίος δεν έχει συνήθως πολύ διαθέσιμο χρόνο και διάθεση για την εκμάθηση μιας πολύπλοκης<br />
ή εξεζητημένης λειτουργίας, τότε είναι προτιμότερο να γίνεται προσπάθεια κάλυψης όσο το δυνατόν<br />
περισσότερων τρόπον που κάποιος θα πρωτοσκεφτεί για να κάνει αυτό το απλό και βασικό που<br />
θέλει.<br />
Ψς παράδειγμα μπορεί να αναφερθεί ο τρόπος επιλογής τόπων προέλευσης και προορισμού.<br />
Κάποιος που πρωτοβλέπει μία αντίστοιχη εφαρμογή, μπορεί να θέλει το πρώτο που να κάνει να είναι<br />
ένα κλικ στον χάρτη, και να ορίζει το σημείο αυτό ως αφετηρία ή τερματισμό. Ένας άλλος, μπορεί να<br />
θέλει να επιλέγει από μία λίστα που θα του παρέχεται με βάση μία αλφαριθμητική αναζήτηση, ενάς<br />
τρίτος μπορεί να μην θέλει καν να κάνει αναζήτηση, αλλά να του παρέχεται εξαρχής μία πλήρη<br />
κατηγοριοποιημένη λίστα με ημεία Ενδιαφέροντος. Μία σχετική εφαρμογή λοιπόν, είναι καλύτερο<br />
να καλύπτει όλους αυτούς τους τρόπους απλής και βασικής επιλογής, παρά να μην έχει κάποιον από<br />
αυτούς και να συμπεριλαμβάνει πρόσθετες λειτουργίες στους άλλους, όπως π.χ. την αναζήτηση με<br />
βάση την απόσταση που θα δίνεται γύρω από κάποιο επιλεγμένο σημείο, την δημιουργία λίστας<br />
αγαπημένων, κτλ..<br />
Μία άλλη βασική αρχή του σχεδιασμού γενικότερα είναι να χρησιμοποιούνται εργαλεία και<br />
λειτουργίες τέτοια, ή κατά τέτοιο τρόπο, που να είναι όσο το δυνατόν οικεία στους χρήστες. Π.χ., η<br />
διαχείριση ενός χάρτη, δηλαδή η αλλαγή κλίμακας, η μετακίνηση, η περιστροφή κτλ, να γίνονται με<br />
τρόπους που ο χρήστης πιθανότατα γνωρίζει ήδη να χρησιμοποιεί, ακόμη κι αν αυτοί θεωρείται ότι<br />
δεν είναι οι βέλτιστοι. μοια και για το περιεχόμενο του χάρτη πχ, που είναι σκόπιμο να<br />
παρουσιάζεται έτσι όπως έχουν μάθει οι περισσότεροι χρήστες να το βλέπουν, είτε σαν πληροφορίες<br />
που περιλαμβάνονται, είτε σαν τρόπο απόδοσης. Μικρές αλλαγές προσαρμογής είναι επιθυμητές, όχι<br />
όμως στον βαθμό που οι αλλαγές απομακρύνουν πολύ από αυτό που ήδη έχει στο μυαλό του ο<br />
χρήστης, ακόμη κι αν οδηγούν σε κάτι καλύτερο. Η μετάβαση των χρηστών σε κάτι καλύτερο πρέπει<br />
να γίνεται σταδιακά.<br />
59
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
4.3 Σρόποι Και Μέσα Παροχής της Τπηρεσίας.<br />
Η χρήση του World Wide Web ουσιαστικά είναι μονόδρομος σήμερα για την παροχή σχετικών<br />
εφαρμογών, για έναν μεγάλο αριθμό λόγων. Οι κυριότεροι από αυτούς τους λόγους είναι:<br />
Ο χρήστης δεν χρειάζεται να προμηθευθεί και να εγκαταστήσει τίποτα. Δεν χρειαζεται<br />
δηλαδή να κάνει εγκατάσταση μιας εφαρμογής στον υπολογιστή του, αλλά έχει πρόσβαση<br />
σε αυτήν μέσω λογισμικού ήδη εγκαταστημένου στον υπολογιστή του, που συνήθως γνωρίζει<br />
αρκετά, όπως είναι ο browser (Π.χ. Firefox).<br />
Οποιαδήποτε Web εφαρμογή πρακτικά είναι ανεξάρτητη του υπολογιστή στον οποίον<br />
εκτελείται. Έτσι, δεν απαιτούνται διαφορετικές εκδόσεις της εφαρμογής για τα διάφορα<br />
λειτουργικά συστήματα. Η εφαρμογή μπορεί εύκολα να υλοποιηθεί ώστε να λειτουργεί το<br />
ίδιο, είτε πρόκειται για σύστημα Windows, είτε για Linux π.χ..<br />
Αφού δεν εγκαθίσταται κάτι στον υπολογιστή του χρήστη, είναι πολύ εύκολη και άμεση η<br />
συνεχής βελτίωση και ενημέρωση.<br />
Τπάρχει πρόσβαση σχεδόν από οποιοδήποτε σημείο του πλανήτη. υνεπώς μπορεί κάποιος<br />
π.χ. να πάρει πληροφορίες και να προσχεδιάσει τις μετακινήσεις του στην Αθήνα, πριν καν<br />
επισκεφθεί την πόλη.<br />
μοια με το προηγούμενο, που αφορά τους χρήστες, η διαδικτυακή προσβασιμότητα<br />
διευκολύνει επίσης την διαχείριση της εφαρμογής από αυτούς που την παρέχουν, από<br />
οποιοδήποτε σημείο του πλανήτη κι αν βρίσκονται.<br />
Λόγω του ότι συνεχώς αναπτύσεται η χρήση του Internet από συσκευές όπως τα κινητά<br />
τηλέφωνα και οι μικροί φορητοί υπολογιστές, η δυνατότητα πρόσβασης αυξάνει σημαντικά.<br />
Η δυνατότητα αυτή μάλιστα, για Τπηρεσίες όπως η παρούσα, αλλάζει ταχύτατα το<br />
αντικείμενο και το περιεχόμενο, μεγενθύνοντας την χρησιμότητα. Σο ότι κάποιος μπορεί να<br />
έχει πρόσβαση σε μία υπηρεσία που αφορά τις μετακινήσεις του, όχι μόνο από το σπίτι ή<br />
από τον χώρο εργασίας, αλλά και από τον δρόμο όπου ήδη κινείται, είναι προφανώς πολύ<br />
λειτουργικό, και δημιουργεί την δυνατότητα και ανάγκη για παροχή περισσότερων<br />
πληροφοριών, όπως π.χ. την σε πραγματικό χρόνο ενημέρωση για τις κινήσεις των<br />
οχημάτων των Μέσων Μαζικών Μεταφορών.<br />
Παρέχεται η δυνατότητα συλλογής ανώνυμα στατιστικών στοιχείων για την χρήση, τα οποία<br />
μπορούν να βοηθήσουν στην βελτίωση της παρέχομενης υπηρεσίας.<br />
Είναι δυνατόν, μέσω π.χ. διαφημίσεων, να γίνεται μερική ή ολική χρηματοδότηση της<br />
λειτουργίας, χωρίς ιδιαίτερη όχληση των χρηστών, αρκεί φυσικά να τηρούνται κάποια<br />
λογικά όρια.<br />
Η λογική όλων των τεχνικών και εργαλείων σε σχέση με τις διαδικτυακές εφαρμογές<br />
διευκολύνει ιδιαίτερα την ανοιχτή αρχιτεκτονική, δηλαδή την δυνατότητα εύκολης<br />
επέκτασης.<br />
60
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
4.4 Σρόποι Και Εργαλεία Τλοποίησης.<br />
Αν και το θέμα αυτό δεν αφορά ιδιαίτερα τον χρήστη, είναι σημαντικό όμως σαν επιλογές για την<br />
ανάπτυξη της Τπηρεσίας, καθόσον καθορίζεται σημαντικά ο τρόπος υλοποίησης των διάφορων<br />
λειτουργιών, ακόμα και στον βαθμό τού κατά πόσο είναι αυτές εφικτές ή όχι.<br />
Βασική επιλογή ήταν η ανάπτυξη να γίνει κατά λόγο με χρήση λογισμικών ελεύθερης χρήσης<br />
(Freeware), ή ακόμη καλύτερα, με λογισμικό ανοιχτού κώδικα (Open Source). μοια, τα δεδομένα<br />
επιλέχθηκε κι αυτά να είναι είτε ελεύθερα προς χρήση, είτε ακόμη καλύτερα, δεδομένα στα οποία<br />
θα μπορεί κανείς να επέμβει και να τα τροποποιήσει ή εμπλουτίσει.<br />
Η χρήση λογισμικού ανοικτού κώδικα, όχι μόνο διευκολύνει την ανάπτυξη καλύτερα<br />
προσαρμοσμένων λύσεων και την συνεχή επέκταση, αλλά στα πλαίσια του<br />
εκπαιδευτικού/ερευνητικού χαρακτήρα της παρούσας, έδωσε την δυνατότητα για ενασχόληση με<br />
ότι συνδέεται με την ανάπτυξη λογισμικού από ομάδες ανθρώπων που δουλεύουν παράλληλα σε<br />
κάποιο αντικείμενο ακόμη κι αν βρίσκονται σε πολύ απομακρυσμένα σημεία του πλανήτη, ακόμη κι<br />
αν δεν υπάρχει σαφής και συγκεκριμένος τρόπος διαχείρισης της εργασίας από συγκεκριμένα<br />
πρόσωπα, όπως συμβαίνει π.χ. σε επιχειρήσεις.<br />
Κάτι σημαντικό ήταν να ακολουθηθούν κατά το δυνατόν καθορισμένα πρότυπα όσον αφορά την<br />
διαχείριση και αποθήκευση των δεδομένων, ώστε αφενός να είναι εύκολη η χρήση έτοιμων<br />
εργαλείων, αφετέρου να μπορεί να γίνει συνεργασία της εφαρμογής με άλλες εφαρμογές στο μέλλον.<br />
4.5 Οικονομικά Θέματα.<br />
Σο τμήμα αυτό δεν αφορά άμμεσα τον ακαδημαϊκό χαρακτήρα της παρούσας υλοποίησης, όμως<br />
είναι ιδιαίτερα σημαντικό υπό άλλες συνθήκες στον σχεδιασμό.<br />
υνήθως, ο πάροχος μιας τέτοιας υπηρεσίας είναι ο ίδιος ο φορέας των αστικών συγκοινωνιών μίας<br />
πόλης, ο οποίος τις περισσότερες φορές δεν λειτουργεί αμιγώς κερδοσκοπικά, ή κι αν συμβαίνει<br />
αυτό, έχει έμμεσο όφελος με την λειτουργία μιας τέτοιας υπηρεσίας, από την προσέλκυση επιβατών.<br />
ε αυτήν την περίπτωση συνεπώς δεν παίζει ιδιαίτερο ρόλο η ύπαρξη άμεσων εσόδων, πρέπει απλώς<br />
να διατηρούνται χαμηλά τα έξοδα, τόσο για την ανάπτυξη, όσο και για την λειτουργία.<br />
ε περίπτωση που η Τπηρεσία δεν παρέχεται από τον φορέα εκτέλεσης ή εποπτείας του<br />
υγκοινωνιακού Έργου, ή άπο κάποιον άλλον σχετιζόμενο με αυτόν, τότε θα πρέπει απαραίτητα να<br />
υπάρχει κάποιο έσοδο. πως έχει προαναφερθεί, η Τπηρεσία απευθύνεται στους επισκέπτες της<br />
61
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
πόλης. Αυτό σημαίνει ότι πρόκειται για περιστασιακούς χρήστες, οπότε και δεν μπορεί να υπάρξει<br />
συνδρομητική παροχή, ούτε μπορεί εύκολα να ενταχθεί η υπηρεσία σε κάποια άλλη που παρέχεται<br />
μέσω συνδρομής. Ακόμη, δεν έχει νόημα η καταβολή ενός τιμήματος εφάπαξ από τον χρήστη, αφού<br />
αυτό αναγκαστικά θα ήταν ιδιαίτερα μικρό, και συνεπώς η απαιτούμενη πρόσθετη διαδικασία που<br />
θα απαιτούνταν από τον χρήστη θα απέφερε λίγα, και περισσότερο θα απέτρεπε την χρήση.<br />
Έτσι, η μόνη δυνατότητα αυτοχρηματοδότησης της λειτουργίας της Τπηρεσίας είναι η ύπαρξη<br />
διαφημίσεων, ή η σύνδεσή της με κάποιο άλλο μέσο το οποίο να παράγει οικονομικό όφελος, όπως<br />
π.χ. αύξηση της προσβασιμότητας σε άλλο site, του οποίου η Τπηρεσία να αποτελεί τμήμα.<br />
ε κάθε περίπτωση, τα έξοδα υλοποίησης και λειτουργίας θα πρέπει να είναι όσο το δυνατόν πιο<br />
χαμηλά, κάτι που υποβοηθείται σημαντικά από την χρήση λογισμικού και δεδομένων που παρέχονται<br />
ελεύθερα ή με μικρό κόστος ακόμη και για εμπορική χρήση.<br />
4.6 Ονομασία Σης Τπηρεσίας.<br />
Μία υπηρεσία αυτού του είδους θα πρέπει να ονομάζεται με τρόπο που να είναι εύκολο σε κάποιον<br />
να τη θυμάται, δηλαδή κατά κανόνα με ένα σύντομο, απλό, και ίσως νοηματικά ιδιαίτερα σχετικό και<br />
περιεκτικό όνομα. Σο όνομα αυτό είναι καλό να είναι ανεξάρτητο από την γλώσσα, ή να βασίζεται<br />
πάνω στην αγγλική γλώσσα, που απευθύνεται ακουστικά και στο μεγαλύτερο κοινό.<br />
Ακόμη, θα πρέπει αυτό το όνομα να μην συγχέεται εύκολα με κάτι άλλο, κι επίσης, όσον αφορά<br />
διαδικτυακές εφαρμογές και υπηρεσίες, να μην είναι δεσμευμένο το domain με το όνομα αυτό.<br />
4.7 Περιγραφή Σης Τπηρεσίας σον Αφορά Σον Φρήστη.<br />
τη συνέχεια γίνεται περιγραφή των βασικών λειτουργιών της Τπηρεσίας, έτσι όπως αποφασίστηκε<br />
να λειτουργεί και να παρέχεται:<br />
62
4.7.1 Γενικά.<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Η Τπηρεσία, εκτός από την εφαρμογή για την εύρεση διαδρομών με χρήση των ΜΜΜ, θα πρέπει να<br />
παρέχει επιπλέον την δυνατότητα επικοινωνίας με τους λειτουργούς, όπως μέσω ενός μηνύματος<br />
email. Έτσι, θα μπορούν να υποβάλλονται προτάσεις βελτίωσης π.χ..<br />
Ακόμη, θα πρέπει να δίνονται κάποιο σχετικοί κι ενδιαφέροντες σύνδεσμοι, π.χ. προς τον ΟΑΑ ή τις<br />
εταιρείες εκτέλεσης μεταφορικού έργου. την πράξη, εκτός της ΑΜΕΛ, της εταιρείας λειτουργίας του<br />
Metro, οι υπόλοιπες εταιρείες δεν παρέχουν ιδιαίτερα χρήσιμη πληροφόρηση για τον επισκέπτη.<br />
Επίσης, θα πρέπει να δίνεται στον χρήστη η δυνατότητα να βλέπει περισσότερες πληροφορίες για<br />
την ταυτοποίηση της Τπηρεσίας, δηλαδή ποιός την έχει δημιουργήσει, ποιός την λειτουργεί, όπως και<br />
ποιοί είναι οι όροι χρήσης. το σημείο αυτό μπορούν να γινόνται και οι διάφορες αναφορές στο<br />
λογισμικό και στα δεδομένα που έχουν χρησιμοποιηθεί, με τα πιθανά σχετικά copyrights.<br />
Επιπλέον, είναι χρήσιμο να υπάρχει η δυνατότητα επέκτασης προβολής πληροφοριών, όπως π.χ. για<br />
δρώμενα στην πόλη.<br />
υνοπτικά, η διαδικασία που απαιτείται να κάνει ο χρήστης από την στιγμή της εισόδου του σε μία<br />
ανάλογη εφαρμογή, μέχρι την στιγμή της εξόδου του από αυτήν, έχοντας πάρει ότι ζητούσε, είναι σε<br />
μεγάλο βαθμό συγκεκριμενοποιημένη από την φύση του αντικειμένου. Αυτό που καταρχάς ζητείται<br />
είναι η παραμετροποίηση του ερωτήματος, η θέση του, η λήψη των αποτελεσμάτων, και ο<br />
παραπέρα χειρισμός τους, όπως π.χ. η εκτύπωση.<br />
ε μορφή διαγράμματος, η βασική αυτή λειτουργική ροή έχει ως εξής:<br />
Αρχικοποίθςθ<br />
Ραραμετροποίθςθ<br />
Ερωτιματοσ<br />
Θζςθ Ερωτιματοσ Λιψθ Απάντθςθσ<br />
Διάγραμμα 1: Λειτουργική Ροή της Εφαρμογής Φρήστη.<br />
Βοικεια / Πλθροφορίεσ / Επικοινωνία<br />
Διαχείριςθ<br />
Απάντθςθσ<br />
63
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
4.7.2 Ο Φάρτης.<br />
Σο κύριο στοιχείο που βλέπει ο χρήστης σε μία ανάλογη εφαρμογή είναι ο χάρτης, ο οποίος αφενός<br />
παρέχει το χαρτογραφικό υπόβαθρο, αφετέρου αποτελεί το εργαλείο με το οποίο επιτυγχάνεται η<br />
γραφική αναπαράσταση και η διαδραστικότητα. Θα πρέπει να είναι αρκετά πλήρης και<br />
ενημερωμένος, όπως επίσης, να παρέχει την ονομασία των οδών σε λατινική γραφή.<br />
Ο χάρτης πρέπει να έχει τουλάχιστον τις βασικές λειτουργίες, όπως είναι η δυνατότητα εύκολης<br />
μετακίνησης και αλλαγής της κλίμακας. Η δυνατότητα αλλαγής του τύπου χάρτη είναι επιθυμητή,<br />
αλλά όχι απαραίτητη. Σο ίδιο ισχύει και για την δυνατότητα τρισδιάστατης απεικόνισης.<br />
Κάτι σημαντικό, αν και όχι ορατό στον χρήστη, είναι η δυνατότητα αξιοποίησης των στοιχείων του<br />
χάρτη ως αντικείμενα, π.χ. το οδικό δίκτυο να υπάρχει σε διανυσματική μορφή, με διάφορα στοιχεία<br />
του ως περιεχόμενα δεδομένα, όπως τα ονόματα και οι τύποι των οδών. Είναι δυνατόν να<br />
χρησιμοποιηθούν διαφορετικοί χάρτες για το οπτικό/διαδραστικό ζητούμενο και για το σχετικό με τα<br />
δεδομένα και το routing αντίστοιχο. μως, θα πρέπει αυτοί οι δύο χάρτες να ταυτίζονται σε<br />
ικανοποιητικό βαθμό, ιδίως χωρικά.<br />
Κάτι που είναι πέρα από αυτά που δίνονται στον χρήστη, είναι η δυνατότητα εύκολης και γρήγορης<br />
διαχείρισης προγραμματιστικά των αντικειμένων που μπορούν να τοποθετηθούν πάνω στον χάρτη,<br />
όπως επίσης των συμβάντων που καταγράφονται στον ίδιον και τα αντικείμενά του.<br />
4.7.3 Επιλογές Σαξιδίου.<br />
Σο πρώτο πράγμα που καλείται να δώσει ο χρήστης είναι οι παράμετροι που αφορούν το ταξίδι που<br />
θέλει να πραγματοποιήσει. Οι δύο κύριες παράμετροι είναι ο τόπος αφετηρίας και ο τόπος<br />
τερματισμού. Η επιλογή τους θα πρέπει να μπορεί να γίνεται είτε μέσω αναζήτησης, είτε γραφικά, με<br />
επιλογή των τόπων στον χάρτη, είτε με επιλογή από λίστα κατηγοριοποιημένων σημείων<br />
ενδιαφέροντος.<br />
Η αναζήτηση των τόπων αφετηρίας ή τερματισμού είναι δυνατόν να γίνεται μέσω κάποιου σχετικού<br />
γεωευρετήριου, ανάλογα με το αλφαριθμητικό που έχει δώσει ο χρήστης. Σο γεωευρετήριο είναι<br />
δυνατόν να επιστρέψει πάνω από έναν τόπο, οπότε τότε είναι απαραίτητο να εμφανιστούν όλα τα<br />
αποτέσματα σε μία λίστα, ώστε ο χρήστης να επιλέξει αυτό που είναι όντως το ζητούμενο.<br />
Η επιλογή τόπου αφετηρίας ή τερματισμού είναι σκόπιμο να γίνεται και με γραφικό τρόπο, καθώς<br />
κάποιος μπορεί να μην ενδιαφέρεται ή να μην ξέρει μία ακριβή διεύθυνση, αλλά να έχει την εικόνα<br />
64
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
του τόπου από κάποιον άλλον χάρτη. Η επιλογή αυτή είναι δυνατόν να πραγματοποιείται με ένα<br />
context menu, δηλαδή με την προσθήκη 2 πρόσθετων γραμμών στις επιλογές που παρέχονται με<br />
πάτημα του δεξιού κουμπιού στο ποντίκι.<br />
Επειδή όμως μπορεί κάποιος να μην γνωρίζει τον ακριβή τρόπο γραφής ενός σημείου<br />
ενδιαφέροντος, κρίνεται σκόπινο να υπάρχει και η δυνατότητα επιλογής από κατηγοριοποιημένη<br />
λίστα, κάποιου από τα επιλεγμένα για τους χρήστες που απευθύνεται η εφαρμογή σημεία<br />
ενδιαφέροντος, όπως π.χ. είναι τα ξενοδοχεία, τα μουσεία, κτλ..<br />
Μία πρακτικά χρήσιμη λειτουργία, είναι η δυνατότητα άμεσης εναλλαγής των τόπων προέλευσης και<br />
προορισμού. Αυτό μπορεί να είναι εφικτό με το πάτημα ενός κουμπιού τοποθετημένου κατάλληλα<br />
πάνω στην φόρμα εισαγωγής των στοιχείων.<br />
Άλλη επιλογή σχετικά με το ταξίδι αφορά τον χρόνο. Έτσι θα πρέπει ο χρήστης να εισάγει την<br />
ημερομηνία και την ώρα, όπως επίσης το αν η ώρα αφορά το πότε θέλει να ξεκινήσει το ταξίδι του, ή<br />
το πότε θέλει να φτάσει στον προορισμό του.<br />
Ένα άλλο σημείο των επιλογών αφορά τον τρόπο με τον οποίον θέλει να μετακινηθεί ο χρήστης. Ο<br />
προεπιλεγμένος τρόπος πρέπει να είναι ο πλέον συνηθισμένος, δηλαδή με οποιοδήποτε ΜΜΜ και<br />
πεζή. Άλλες επιλογές που μπορούν να προσφέρονται είναι μόνο πεζή, με λεωφορεία και πεζή, ή με<br />
metro και πεζή. Επιπλέον του τρόπου μετακίνησης, σκόπιμο είναι ο χρήστης να μπορεί να θέσει το<br />
προσωπικό του όριο για το μέγιστο μήκος της διαδρομής που θα πρέπει να κάνει πεζή.<br />
Σο τελευταίο στοιχείο όσον αφορά τις επιλογές ταξιδίου είναι η επιλογή του τρόπου βελτιστοποίησης.<br />
αν επιλογές πρέπει να υπάρχουν η ελαχιστοποίηση του χρόνου ταξιδίου, ή του αριθμού των<br />
μετεπιβιβάσεων, καθώς αυτές είναι ιδιαίτερα ενοχλητικές για κάποιους επιβάτες.<br />
4.7.3.1 Λειτουργία Προεπιλών.<br />
Κάτι ιδιαίτερα χρήσιμο σε μία τέτοια εφαρμογή είναι η ύπαρξη της δυνατότητας κάποιες από τις<br />
παράμετρους του ερωτήματος να έχουν προεπιλεγεί, από το site το οποίο κατευθύνει στην<br />
εφαρμογή. Π.χ. στο site που γίνεται αναφορά ενός συνεδρίου, μπορεί να υπάρχει στο τέλος ένα Link<br />
με την ονομασία «Δείτε πως μπορείτε να έρθετε στο χώρο του υνεδρίου με ΜΜΜ», από όπου θα<br />
καλείται η εφαρμογή με προεπιλεγμένη την τοποθεσία του Προορισμού, όπως επίσης την επιθυμητή<br />
ημερομηνία κι ώρα άφιξης σε αυτήν.<br />
Κάτι τέτοιο είναι εξυπηρετικό για τον σύνεδρο, αφού μαθαίνει για την ύπαρξη της εφαρμογής, την<br />
οποία μάλιστα μπορεί να την χρησιμοποιήσει χωρίς να απαιτείται να βρει ο ίδιος τον προορισμό.<br />
65
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Πολύ περισσότερο όμως, έτσι βοηθείται η ίδια η σχεδιαζόμενη εδώ Τπηρεσία, καθώς γίνεται πιο<br />
εύκολα και γρήγορα γνωστή, μέσα από την δημιουργία αναφορών για αυτήν σε άλλα sites.<br />
Αν και η λειτουργία προεπιλογών αφορά κυρίως τον προορισμό, εν τούτοις υπάρχουν κάποιες λίγες<br />
περιπτώσεις όπου μπορεί να είναι προεπιλεγμένη η αφετηρία, όπως π.χ. στο site ενός αερολιμένα:<br />
«Δείτε πως μπορείτε να φτάσετε από τον Αερολιμένα μας στον προορισμό σας με ΜΜΜ».<br />
4.7.4 Αποτελέσματα.<br />
Μετά από μία σύντομη αναμονή, στην οθόνη του χρήστη πρέπει να παρουσιάζονται τα σχετικά<br />
αποτελέσματα, ή ένα μήνυμα σφάλματος. Σα αποτελέσματα μπορούν να εμφανίζονται σε<br />
κατακόρυφη μορφή, όπου στο ψηλότερο σημείο θα εμφανίζονται συγκεντρωτικά οι επιλογές που<br />
έγιναν. Πιο κάτω θα εμφανίζονται οι προτάσεις ταξιδίου, με τα βήματα σε κατακόρυφη ανάπτυξη.<br />
Οι προτάσεις ταξιδίου θα μπορούν να είναι 3 το μέγιστο, και θα μπορεί να εμφανίζεται μία κάθε<br />
φορά στην οθόνη. Αυτό μπορεί να επιτευχθεί με την χρήση ενός accordion π.χ.. την αρχή της κάθε<br />
πρότασης μπορούν να εμφανίζονται τα βασικά στοιχεία της, όπως η κατ‘ εκτίμηση ώρα εκκίνησης<br />
και ώρα τερματισμού, ο χρόνος διαδρομής, και ο αριθμός των μετεπιβιβάσεων.<br />
τα βήματα που αφορούν διαδρομή πεζή θα εμφανίζονται οδηγίες για την μετάβαση από το ένα<br />
σημείο στο άλλο και η απόσταση. τα βήματα που αφορούν διαδρομές με ΜΜΜ θα αναφέρεται ο<br />
τύπος και ο αριθμός της γραμμής που πρέπει να χρησιμοποιηθεί, όπως επίσης ο απαιτούμενος<br />
χρόνος διαδρομής, η στάση επιβίβασης, η στάση αποβίβασης, η στάση πριν την αποβίβαση, για<br />
διευκόλυνση του Φρήστη στον έγκαιρη συνειδητοποίηση τού πότε πρέπει να αποβιβαστεί, καθώς και<br />
οι εναλλακτικές Γραμμές που θα μπορεί αυτός να χρησιμοποιήσει.<br />
το τέλος κάθε πρότασης θα δίνονται τα συγκεντρωτικά στοιχεία του χρόνου διαδρομής, του μήκους<br />
περπατήματος, όπως επίσης το κόστος κανονικού εισιτηρίου. Ο χάρτης θα πρέπει να οπτικοποιεί τα<br />
βήματα που παρουσιάζονται, χρησιμοποιώντας κατάλληλα σύμβολα και χρωματισμούς.<br />
Σέλος, θα πρέπει να δίνεται η δυνατότητα επανακαθορισμού των επιλογών ταξιδίου, όπως επίσης η<br />
δυνατότητα εκτύπωσης των αποτελεσμάτων.<br />
66
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
4.7.4.1 Εκτύπωση.<br />
Η λειτουργία της εκτύπωσης θα πρέπει παρουσίαζει όλα τα γενικά στοιχεία και τα αναλυτικά βήματα<br />
μιας επιλεγμένης πρότασης ταξιδιού σε μία νέα σελίδα, με μέγεθος που να είναι εφικτή η<br />
ικανοποιητική εκτύπωσή της σε σελίδα Α4.<br />
4.8 Περιγραφή Σης Τπηρεσίας σον Αφορά Σην Ανάπτυξη.<br />
Προηγουμένως περιγράφηκαν οι απαιτήσεις και ο λειτουργικός σχεδιασμός της Τπηρεσίας, έτσι<br />
όπως αυτά αφορούν τις λειτουργίες του χρήστη. την παρούσα παράγραφο εξετάζεται ο σχεδιασμός<br />
και η λειτουργία από την σκοπιά του developer και του operator.<br />
Πέρα από την λειτουργία της ίδιας της Τπηρεσίας, υπάρχει η ανάγκη του σχεδιασμού μεθόδων και<br />
εργαλείων για την διαχείριση αυτής και των δεδομένων της. Η διαχείριση της Τπηρεσίας αναφέρεται<br />
στις διαδικασίες για την διατήρηση σε λειτουργία, την αντιμετώπιση πιθανών προβλημάτων, τις<br />
επιλογές για την περαιτέρω ανάπτυξη και επέκταση. ε μεγάλο βαθμό τα θέματα αυτά αφορούν<br />
πραγματική λειτουργία, σε περιβάλλοντα όπου υπάρχουν συγκεκριμένοι ρόλοι, και για αυτό δεν<br />
γίνεται εκτενής εξέταση, παρά μόνον όσον αφορά την λειτουργία των επιμέρους υλικών και<br />
λογισμικών. Έτσι, στην παρούσα περιοριζόμαστε π.χ. στο ότι όλα τα λογισμικά που θα<br />
χρησιμοποιηθούν (π.χ. Web server) είναι σκόπιμο να είναι ευρέως διαδεδομένα, και να μην<br />
χρειάζεται να γίνει ιδιαίτερη εκπαίδευση για αυτά σε κάποιον που είναι σχετικός με το αντικείμενο.<br />
σον αφορά τα δεδομένα, απαιτείται ένας τρόπος με τον οποίον να μετασχηματίζονται εύκολα από<br />
την μορφή που παραλαμβάνονται (π.χ. στοιχεία ΟΑΑ), σε μορφή που να χρησιμοποιούνται από τις<br />
εφαρμογές. Επίσης, απαιτούνται τρόποι για την εύκολο έλεγχο, την εποπτεία, αλλά και την<br />
ενημέρωσή τους. Επειδή η παρούσα δεν αφορά πραγματική λειτουργία, όπου θα πρέπει να<br />
επαναλαμβάνονται κάποια πράγματα, δεν πραγματοποιήθηκε ανάπτυξη σχετικών εργαλείων. Ο<br />
μετασχηματισμός δεδομένων έγινε χειροκίνητα π.χ., και αντίστοιχη χειροκίνητη εργασία απαιτείται<br />
για κάθε νέο set δεδομένων. Σο μόνο αναγκαίο εργαλείο αφορά την απαραίτητη μετατροπή των<br />
δεδομένων σε γράφο.<br />
τη σύνεχεια δίνονται διαγραμματικά τα διάφορα τμήματα της Τπηρεσίας και οι αλληλοσυσχετίσεις<br />
τους:<br />
67
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Διάγραμμα 2: Σα διάφορα τμήματα που αποτελούν την υπηρεσία, και οι αλληλοσυσχετίσεις τους.<br />
68
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
5Δεδομένα.<br />
5.1 Δεδομένα Δικτύου ΜΜΜ.<br />
το σημείο αυτό του κειμένου αναλύεται το πολύ σημαντικό θέμα των δεδομένων του δικτύου ΜΜΜ.<br />
Και είναι πολύ σημαντικό, γιατί ακόμη κι αν χρησιμοποιείται η πιο εύχρηστη και πολυλειτουργική<br />
εφαρμογή για το interface, ακόμη κι αν έχει βρεθεί και υλοποιηθεί ο καλύτερος αλγόριθμος για την<br />
εξαγωγή αποτελεσμάτων, αυτά όλα θα είναι χωρίς αντίκρισμα αν τα δεδομένα με τα οποία<br />
λειτουργούν δεν είναι πλήρη, ακριβή, και κατάλληλα δομημένα.<br />
τα δεδομένα που αφορούν την εφαρμογή θα μπορούσαν να επισημανθούν κάποιες κύριες<br />
ιδιότητες που θα πρέπει να υπάρχουν όσο το δυνατόν σε μεγαλύτερο βαθμό:<br />
Η Πληρότητα.<br />
Σα δεδομένα θα πρέπει να είναι πλήρη, ή τουλάχιστον να έχει γίνει μελετημένη και<br />
αποτελεσματική επιλογή αυτών που μπορούν και να μην συμπεριλαμβάνονται. Δεν<br />
έχει νόημα π.χ. να υπάρχουν στοιχεία μόνο για μέρος των Γραμμών, καθώς τότε οι<br />
όποιες λύσεις μπορεί να απέχουν πάρα πολύ από τις πραγματικά καλές. Θα<br />
69
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
μπορούσαν όμως να μην συμπεριληφθούν στοιχεία Γραμμών με ιδιαίτερα μικρή<br />
συχνότητα, ή που η φύση της λειτουργίας τους δεν σχετίζεται με τις ανάγκες του<br />
κοινού στο οποίο απευθύνεται η Εφαρμογή. Σέτοιες<br />
Γραμμές π.χ. είναι αυτές που εξυπηρετούν ειδικές<br />
τοποθεσίες, όπως σχολεία, κοιμητήρια, στρατιωτικές<br />
εγκαταστάσεις.<br />
Η Εγκυρότητα.<br />
Σα δεδομένα θα πρέπει να είναι όσο το δυνατόν<br />
περισσότερο έγκυρα, δηλαδή να είναι ορθά και να μην<br />
περιέχουν λάθη. ε περίπτωση που αυτό δεν συμβαίνει σε<br />
ικανοποιητικό βαθμό, τότε χάνει την αξία του το σύνολο<br />
των δεδομένων. Αν π.χ. τα δρομολόγια κάποιων Γραμμών<br />
δεν είναι σωστά, τότε δεν μπορεί να υπάρχει<br />
εμπιστοσύνη σε κανένα δεδομένο δρομολογίων.<br />
ε πολλές περιπτώσεις είναι καλύτερο να μην υπάρχουν<br />
κάποιες λειτουργίες, ή αυτές να υλοποιούνται με μία<br />
μέθοδο εκτίμησης, παρά να χρησιμοποιούνται στοιχεία<br />
μικρής αξιοπιστίας. Για παράδειγμα σε σχέση με την<br />
εφαρμογή, είναι προτιμότερο να χρησιμοποιηθούν ως<br />
χρόνοι διαδρομής από κάποια στάση σε κάποια άλλη<br />
αυτοί που προκύπτουν από παρεμβολή στον συνολικό<br />
χρόνο διαδρομής, λύση ευκολότερη μάλιστα, παρά να<br />
χρησιμοποιηθούν μετρημένοι χρόνοι που όμως έχουν<br />
πολλή μικρή αξιοπιστία.<br />
Η υνάφεια.<br />
Ακόμη και αν τα στοιχεία δεν έχουν μεγάλη πληρότητα<br />
ή/και εγκυρότητα, ιδιαίτερα σημαντικό είναι πάντα να<br />
διαθέτουν συνάφεια, είτε εσωτερική (μεταξύ τους) είτε<br />
με άλλα στοιχεία που χρησιμοποιούνται. Αυτό σημαίνει<br />
ότι θα πρέπει τα έστω και χαμηλής ποιότητας δεδομένα<br />
για ένα θέμα, να είναι σύμφωνα με τα δεδομένα ενός<br />
άλλου θέματος. τη συγκεκριμένη Εφαρμογή π.χ., τα<br />
στοιχεία των διαδρομών, δηλαδή οι αλληλουχίες των<br />
στάσεων, θα πρέπει να συμφωνούν με τα στοιχεία των<br />
στάσεων, ακόμη κι αν αυτές βρίσκονται σε λάθος θέσεις, έχουν λανθασμένα<br />
Εικόνα 21: Δείγμα του Πίνακα ‗Γραμμές‘ των πρωτογενών δεδομένων ΜΜΜ.<br />
70
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ονόματα, ή οτιδήποτε άλλο. Μία συνήθης εμφάνιση τέτοιων προβλημάτων είναι τα<br />
ορφανά δεδομένα, ή τα δεδομένα που «δείχνουν» άλλα, ανύπαρκτα δεδομένα. ε<br />
συνδυασμό με ελλειπή έλεγχο και χειρισμό λαθών από προγραμματιστικής πλευράς,<br />
η έλλειψη συνάφειας μπορεί να οδηγεί συχνά σε απρόβλεπτη λειτουργία κι<br />
αποτελέσματα. Σο ιδανικό είναι η ανάπτυξη εργαλείων που, είτε δεν επιτρέπουν<br />
καν την δημιουργία ασυναφειών, είτε εντοπίζουν και επισημαίνουν αυτές που<br />
έχουν δημιουργηθεί και υπάρχουν.<br />
Η Δυνατότητα Εύκολης Ενημέρωσης/Μεθοδολογία Ενημέρωσης.<br />
Σα δεδομένα λειτουργίας θα πρέπει να ανανεώνονται συνεχώς, ή έστω σε συχνά<br />
διαστήματα, έτσι ώστε να αντιπροσωπεύουν την πραγματική κατάσταση. Για τον<br />
λόγο αυτό θα πρέπει τα δεδομένα, τα μεταδεδομένα, αλλά και τα ενδιάμεσα<br />
δεδομένα από τα πηγαία προς τα χρησιμοποιούμενα, να είναι σε τέτοια μορφή που<br />
να μπορούν εύκολα να ενημερωθούν. Ιδιαίτερα χρήσιμη είναι φυσικά και η<br />
δυνατότητα τροποποίησης της ίδιας της δομής τους, η ευελιξία δηλαδή.<br />
Η δυνατότητα εύκολης ενημέρωσης αφορά και την ύπαρξη μέσων και μεθόδων<br />
έτσι ώστε να εντοπίζονται εύκολα και γρήγορα τα σημεία που θα πρέπει να<br />
ενημερωθούν και να υπάρχει μια κατά το δυνατόν αυτοματοποιημένη διαδικασία,<br />
αφού αυτή είναι επαναληπτική.<br />
την παρούσα Εφαρμογή, η εύκολη ενημέρωση και αυτοματοποίηση αφορά το<br />
κομμάτι της διατήρησης Βάσης Δεδομένων και της εξαγωγής τους σε GT Feed.<br />
Δυστυχώς, το προηγούμενο τμήμα, δηλαδή η ανάκτηση καταγεγραμμένων<br />
αλλαγών από τον ΟΑΑ, ή της εξέτασης των νέων κάθε φορά δεδομένων από<br />
αυτόν και η αυτοματοποιημένη εύρεση των αλλαγών, δεν είναι εφικτό να<br />
συστηματοποιηθεί. Αυτό, όπως φαίνεται σε άλλο σημείο του κειμένου, οφείλεται<br />
στον τρόπο καταγραφής και διαχείρισης των δεδομένων του Οργανισμού.<br />
71
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
5.1.1 Πρωτογενή Δεδομένα ΜΜΜ.<br />
λα σχεδόν τα πρωτογενή δεδομένα για τα ΜΜΜ αποκτήθηκαν<br />
απευθείας από τον ΟΑΑ, έπειτα από σχετική αίτηση. Σα στοιχεία<br />
αυτά επεξεργάστηκαν αργότερα με βάση την εμπειρική γνώση του<br />
δικτύου, όπως επίσης σε συνδυασμό με δεδομένα από έρευνα που<br />
είχε πραγματοποιήσει ο ΟΑΑ στο τέλος του 2006. Επίσης<br />
χρησιμοποιήθηκαν στοιχεία από τα sites του ΟΑΑ και των Εταιριών<br />
εκτέλεσης του συγκοινωνιακού έργου.<br />
Δυστυχώς όμως δεν ήταν δυνατόν να βρεθούν στοιχεία<br />
δρομολογίων για τις Γραμμές του Προαστιακού ιδηροδρόμου,<br />
αφού λόγω κυρίως των εκτελούμενων έργων αυτά τροποποιούνταν<br />
διαρκώς. Επίσης δεν ήταν δυνατόν να βρεθούν αξιοποιήσιμα<br />
στοιχεία για τα δρομολόγια των λεωφορείων του ΚΣΕΛ Αττικής, κι<br />
έτσι οι Γραμμές αυτές δεν συμπεριλήθησαν καθόλου. Ούτως ή<br />
άλλως όμως, η χρησιμότητα των Γραμμών ΚΣΕΛ σε έναν επισκέπτη<br />
της πόλης είναι πολύ μικρή.<br />
Σα δεδομένα από τον ΟΑΑ παραδόθηκαν σε φύλλα MS Excel, τα<br />
οποία συνοπτικά είχαν ως εξής:<br />
‗ΓΡΑΜΜΕ‘<br />
Πρόκειται για τη λίστα με τις Γραμμές<br />
(Lines/Routes) του δικτύου. Μία εικόνα δείγματος<br />
των δεδομένων είναι στο πλάι του κειμένου.<br />
Τπάρχει ο αριθμός κάθε Γραμμής, η ονομασία της,<br />
τα ημερήσια δρομολόγια, η μέση συχνότητα, ο<br />
χρόνος διαδρομής, το μήκος, ο αριθμός των<br />
κλάδων, και ο χρόνος αιχμής.<br />
πως φαίνεται, υπάρχουν τα στοιχεία για τα<br />
δρομολόγια μέσα στην ημέρα, χωρίς όμως να<br />
υπάρχουν οι ώρες για το κάθε ένα, ή έστω η<br />
κατανομή τους σε περιόδους της ημέρας. Τπάρχει<br />
βέβαια το στοιχείο της συχνότητας, καθώς και<br />
Εικόνα 22: Δείγμα του Πίνακα ‗ΚΛΑΔΟΙ‘ των πρωτογενών δεδομένων ΜΜΜ.<br />
72
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
αυτό της συχνότητας σε ώρα αιχμής, η οποία θεωρείται την πρωινή περίοδο 7:30-<br />
9:00 και την απογευματινή 16:30-18:00 συνήθως. μως αυτά δεν είναι σε καμία<br />
περίπτωση αρκετά, καθώς δεν δίνονται οι διαφορετικές συχνότητας σε άλλες<br />
ημέρες πλην τυπικής καθημερινής, πχ. Δευτέρα, Σετάρτη.<br />
Σα στοιχεία των δρομολογίων πολλών γραμμών, όπως αναφέρεται και σε άλλο<br />
σημείο του κειμένου, αντλήθηκαν τελικά από το site του Οργανισμού, με μία<br />
διαδικασία σχεδόν χειροκίνητη, που επαναλήφθηκε για κάθε μία από τις Γραμμές.<br />
Ο χρόνος διαδρομής που δίνεται αφορά το σύνολο της Γραμμής, δηλαδή από την<br />
Αφετηρία στο Σέρμα και ξανά πίσω. Σο κάθε τέτοιο τμήμα της διαδρομής<br />
αναφέρεται ως Κλάδος, ή κατά την παρούσα Εργασία, ως Route. Τπάρχουν<br />
Γραμμές οι οποίες χαρακτηρίζονται ως κυκλικές, και για αυτόν τον λόγο έχουν μόνο<br />
έναν Κλάδο. πως αναφέρεται στη συνέχεια στο κείμενο, αυτό δεν έχει να κάνει με<br />
την λειτουργία της Γραμμής έτσι όπως φαίνεται στον επιβάτη.<br />
‗ΚΛΑΔΟΙ‘<br />
πως έχει αναφερθεί, Κλάδος (η Route/Direction κατά την ορολογία της<br />
Παρούσας) είναι το τμήμα μια Γραμμής από την Αφετηρία προς το Σέρμα ή το<br />
αντίστροφο. την πρώτη περίπτωση ο Κλάδος ονομάζεται γενικά ‗Α‘, ενώ στην<br />
δεύτερη περίπτωση ‗Σ‘. τον πίνακα των στοιχείων του ΟΑΑ, όπως φαίνεται και<br />
στην εικόνα του δείγματος στο πλάι:<br />
Τπάρχουν τα στοιχεία του αριθμού Γραμμής, του Κλαδου (Αριθμός Γραμμής + ‗Α‘ ή<br />
‗Σ‘ ή ‗Κ‘ ανάλογα), το μήκος του Κλάδου, τα ημερήσια δρομολόγια, αυτά του<br />
αββάτου και της Κυριακής, ο χρόνος διαδρομής, οι χρονικές στιγμές του πρώτου<br />
και του τελευταίου δρομολογίου, και τέλος οι συχνότητες αιχμής και μη αιχμής.<br />
Ένα πρόβλημα που υπάρχει στο σύνολο των δεδομένων, είναι ότι δεν υπάρχει<br />
ενιαίος τρόπος γραφής. Έτσι, π.χ. σε άλλες περιπτώσεις έχουν χρησιμοποιηθεί<br />
ελληνικοί χαρακτήρες, και σε άλλες περιπτώσεις λατινικο χαρακτήρες, για αυτούς<br />
που είναι κοινοί και στα δύο αλφάβητα. Οπτικά, όπως το βλέπει ένας άνθρωπος,<br />
δεν υπάρχει διαφορά, όμως στην διαχείριση υπολογιστικά των δεδομένων είναι<br />
τελείως διαφορετικές περιπτώσεις, καθώς πρόκειται για διαφορετικούς κωδικούς<br />
χαρακτήρων.<br />
73
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
σον αφορά τους Φρόνους Διαδρομής, συτοί χρησιμοποιήθηκαν σε συνδυασμό με<br />
στοιχεία από σχετική έρευνα του 2006, οπότε και τροποποιήθηκαν ώστε να γίνουν<br />
περισσότερο ρεαλιστικοί και να εξάγονται ορθότερα αποτελέσματα.<br />
Ένα ιδιαίτερα σημαντικό πρόβλημα, είναι το ποιές Γραμμές θεωρούνται από τον<br />
ΟΑΑ κυκλικές. Δυστυχώς, η θεώρηση αυτή δεν συμφωνεί με τον τρόπο λειτουργίας<br />
που βλέπουν οι επιβάτες. Για τον ΟΑΑ κυκλικές είναι οι Γραμμές οι οποίες είναι<br />
γεωμετρικά «κυκλικές» στο μεγαλύτερο τμήμα τους, ανεξάρτητα τού αν έχουν μόνο<br />
Αφετηρία, ή έχουν και Σέρμα.<br />
Ένα παράδειγμα φαίνεται στην παρακάτω εικόνα, η οποία αντιστοιχεί στην Γραμμή<br />
‗100‘. Η Γραμμή αυτή είναι κυκλική, τόσο σαν γεωμετρία, όσο και σαν λειτουργία<br />
(μία αφετηρία, κίνηση μόνο προς την μία φορά). Ακόμη όμως κι αν υπήρχε μία<br />
στάση ως Σερματισμός κάπου στην διαδρομή, για τον ΟΑΑ η Γραμμή αυτή θα<br />
ήταν και πάλι κυκλική. ε αυτή την περίπτωση πάντως δεν θα υπήρχε πρόβλημα,<br />
καθώς θα υπήρχαν δύο Κλάδοι.<br />
Εικόνα 23: Η κυκλική κατά όλες τις απόψεις Γραμμή ‗100‘.<br />
Dot for correct aligning.<br />
ε ένα άλλο παράδειγμα όμως, τη Γραμμή ‗17‘ που λειτουργεί ως Κυκλική, ο ΟΑΑ<br />
την χαρακτηρίζει ως δύο κλάδων (‗17Α‘, ‗17Σ‘), καθώς η Γραμμή στο μεγαλύτερο<br />
74
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
μέρος της κινείται κατά τις ίδιες οδούς, απλά στην διαφορετική κατεύθυνση. Κατά<br />
τον ΟΑΑ υπάρχει λοιπόν κι ένας θεωρητικός τερματισμός.<br />
Εικόνα 24: Η κυκλική σε λειτουργία αλλά όχι σε γεωμετρία Γραμμή ‗910‘.<br />
seudo Dot for correct aligning.<br />
Σο σκεπτικό για αυτή την θεώρηση είναι ότι αφού οι επιβάτες, ανάλογα με την<br />
κατεύθυνση που θέλουν να μετακινηθούν θα χρησιμοποιήσουν τις αντίστοιχες<br />
στάσεις από τις δύο πλευρές του δρόμου, χωρίς να κάνουν τον περιττό κύκλο, τότε<br />
στην πράξη η Γραμμή δεν είναι κυκλική λειτουργικά. Αυτό είναι μεν σωστό αν το δει<br />
κανείς από την συγκοινωνιακή θεώρηση, δυσχεραίνει όμως σημαντικότατα τον<br />
όποιο χειρισμό των δεδομένων, και είναι πηγή για την δημιουργία ποικίλων λαθών.<br />
Ακόμη και ο ίδιος ο ΟΑΑ π.χ., στο θέμα της δρομολόγησης χρησιμοποιεί<br />
διαφορετική λογική από ότι στο θέμα αλληλουχίας στάσεων για την τήρηση των<br />
δεδομένων, με αποτέλεσμα να μην μπορεί να γίνει άμεση σύνδεση αυτών, καθώς ο<br />
Κλάδος επιστροφής δεν έχει δρομολόγια.<br />
την παρούσα Εφαρμογή, οι Γραμμές ελέγχθησαν μία προς μία, κι όποιες<br />
λειτουργούσαν με μόνο μία πραγματική αφετηρία, θεωρήθηκαν ως κυκλικές. Ο<br />
ένας και μοναδικός αυτός κλάδος συμπεριλαμβάνει αθροιστικά τα στοιχεία των<br />
επιμέρους κλάδων ΟΑΑ, ή τους μέσους όρους αυτών, ανάλογα με την περίπτωση.<br />
Ένα παράδειγμα ασυνάφειας των πρωτογενών δεδομένων είναι ότι οι χρόνοι<br />
διαδρομής των δύο κλάδων αθροιστικά είναι σε πάρα πολλές περιπτώσεις<br />
διαφορετικός από αυτόν που δίνεται για το σύνολο της διαδρομής στον πίνακα<br />
‗ΓΡΑΜΜΕ‘. Μάλιστα ο αθροιστικός χρόνος των κλάδων είναι συνήθως<br />
μεγαλύτερος, που σημαίνει ότι η διαφορά του συνολικού χρόνου δεν οφείλεται στην<br />
75
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
συμπερίληψη σε αυτές τις περιπτώσεις του χρόνου layover, δηλαδή του χρόνου<br />
ανάμεσα στην άφιξη στον Σερματισμό και στην αναχώρηση για την επιστροφή στην<br />
Αφετηρία.<br />
‗ΣΑΕΙ‘<br />
τον Πίνακα αυτόν υπάρχουν οι τάσεις του Δικτύου ΜΜΜ. Ένα δείγμα του πίνακα<br />
εμφανίζεται στο πλάι του κειμένου.<br />
τον πίνακα υπάρχουν ο κωδικός της κάθε τάσης, η<br />
ονομασία της, η οδός στην οποία βρίσκεται, ένας κωδικός<br />
που αντιστοιχεί στον Δήμο στον οποίο βρίσκεται η τάση, κι<br />
επίσης οι γεωγραφικές συντεταγμένες στο σύστημα ΕΓΑ87.<br />
Ο κωδικός της τάσης είναι ένας 6ψήφιος αριθμός, τα δύο<br />
πρώτα ψηφία του οποίου είναι ο διψήφιος κωδικός του<br />
Δήμου. Ο κωδικός είναι προφανώς μοναδικός για κάθε<br />
τάση, όμως αυτό δεν συμβαίνει ιστορικά, καθώς ο ΟΑΑ<br />
δίνει κωδικούς από κατηργημένες τάσεις εκ νέου σε<br />
καινούριες.<br />
Οι θέσεις των τάσεων δεν είναι ακριβείς, κι έτσι μπορεί να<br />
εμφανίζονται είτε σωστά στο πλάι του δρόμου, αλλά ίσως με<br />
λάθος τοποθέτηση ως προς τα δύο άκρα, είτε μέσα στον<br />
δρόμο ή μέσα στα οικοδομικά τετράγωνα. ε κάποιο βαθμό<br />
αυτό θα συνέβαινε και λόγω διαφορετικού υποβάθρου, όμως<br />
η ανακρίβεια υπάρχει εξαρχής. την πράξη αυτό δεν είναι<br />
σημαντικό πρόβλημα, εκτός τού ότι αλλοιώνεται η<br />
οπτικοποίηση και αναφέρονται μικρά βήματα πεζή χωρίς<br />
σημασία. Τπάρχουν και κάποιες περιπτώσεις όπου οι στάσεις<br />
είναι στην πραγματικότητα μία έκταση, όπως είναι οι σταθμοί<br />
metro, οπότε η θέση της τάσης είναι ―όντως‖ εντός του<br />
δρόμου ή της πλατείας.<br />
‗ΑΛΛΗΛΟΤΦΙΑ ΣΑΕΨΝ‘<br />
τον πίνακα αυτόν εμφανίζονται για κάθε Κλάδο οι τάσεις που<br />
πραγματοποιούνται, ως μία αριθμημένη λίστα. Οι στάσεις αναφέρονται με τον<br />
μοναδικό Κωδικό Αριθμό τους, οπότε είναι εύκολο να γίνει σύνδεση με τον πίνακα<br />
Εικόνα 25: Δείγμα από τον πίνακα ‗ΣΑΕΙ‘ των πρωτογενών δεδομένων<br />
76
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
των τάσεων. Επίσης, αναφέρεται το μήκος ανάμεσα στις στάσεις. Μία ασυνάφεια<br />
στα πρωτογενή στοιχεία είναι π.χ. ότι για αποστάσεις μεταξύ δύο στάσεων, το<br />
μήκος δεν είναι ίδιο σε όλους τους κλάδους που συνδέεουν τις δύο στάσεις, ακόμη<br />
και χωρίς να υπάρχει διαφοροποίηση της ενδιάμεσης διαδρομής.<br />
Εικόνα 26: Δείγμα από τον πίνακα ‗ΑΛΛΗΛΟΤΦΙΑ ΣΑΕΨΝ‘ των πρωτογενών δεδομένων ΜΜΜ.<br />
Δεν υπάρχουν στοιχεία για τις περιπτώσεις που σε κάποια στάση γίνεται μόνο<br />
επιβίβαση ή μόνο αποβίβαση, όπως επίσης δεν υπάρχουν διαφορετικές<br />
Αλληλουχίες τάσεων για διαφορετικές μορφές κάποιου Κλάδου, π.χ. σε<br />
περιπτώσεις τροποποιήσεων κάποιες ημέρες της εβδομάδας λόγω λαϊκών αγορών.<br />
‗ΔΗΜΟΙ‘<br />
Ο τελευταίος πίνακας αφορά τις ονομασίες των Δήμων, σε σχέση με τους κωδικούς<br />
τους, όμως είναι στοιχείο χωρίς ενδιαφέρον για την Εφαρμογή μας.<br />
5.1.2 General Transit Feed Specification (GTFS) Και Δημιουργία Σου<br />
Feed.<br />
To GTFS, με την προηγούμενη ονομασία ‗Google Transit Feed Specification‘, είναι το de facto<br />
πρότυπο για την αποθήκευση των δεδομένων δικτύου ΜΜΜ και την διαχείρισή τους έπειτα από τις<br />
διάφορες εφαρμογές. Προσπαθώντας να καλύψει όσο το δυνατόν περιπτώσεις, δεν είναι αρκετά<br />
ευέλικτο για να συμπεριλάβει εύκολα τις διαφοροποιήσεις που υπάρχουν από δίκτυο σε δίκτυο,<br />
καθώς τα στοιχεία που αφορούν τη λειτουργία ενός δικτύου ΜΜΜ είναι φυσικά σε μορφή<br />
συσχετισμένη με τον τρόπο της λειτουργίας του.<br />
Ένα Feed με τις προδιαγραφές GT αποτελείται από μία σειρά απλών αρχείων κειμένου, το καθένα<br />
από τα οποία αντιστοιχεί σε έναν πίνακα, κι όπου τα δεδομένα των πεδίων διαχωρίζονται με κόμμα.<br />
Η πρώτη γραμμή κάθε αρχείου περιέχει τα πεδία που το αποτελούν. Ο τρόπος γραφής (κεφαλαία-<br />
77
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
πεζά) δεν παίζει ρόλο, ενώ οι τιμές που περιέχουν κόμμα θα πρέπει να περιέχονται εντός<br />
εισαγωγικών. υνήθως οι εφαρμογές βλέπουν όχι έναν folder με τα αρχεία αυτά μέσα του, αλλά ένα<br />
zip αρχείο το οποίο τα περιέχει συμπιεσμένα.<br />
Σα αρχεία αυτά συνοπτικά είναι τα εξής:<br />
‗agency.txt‘<br />
(Απαιτείται). Περιέχει στοιχεία για τους φορείς ΜΜΜ.<br />
‗stops.txt‘<br />
(Απαιτείται). Περιέχει στοιχεία για τις στάσεις του δικτύου.<br />
‗routes.txt‘<br />
(Απαιτείται). Περιέχει πληροφορίες για τις Γραμμές του Δικτύου. Μην γίνεται<br />
σύγχυση με το ότι ο όρος Route στην παρούσα Εργασία αντιστοιχεί στον Κλάδο.<br />
Πρόκειται στην ουσία για μιά ομάδα δρομολογίων (Trips).<br />
‗trips.txt‘<br />
(Απαιτείται). Περιέχει τα Δρομολόγια και τους Κλάδους στους οποίους ανήκουν.<br />
Ένα Δρομολόγιο είναι μία σειρά στάσεων σε μία χρονική στιγμή.<br />
‗stop_times.txt‘<br />
(Απαιτείται). Περιέχει τη λίστα με τους χρόνους στους οποίους ένα Δρομολόγιο<br />
φτάνει ή αναχωρεί από κάθε τάση του. το αρχείο αυτό περιέχεται και η λίστα<br />
στάσεων του Δρομολογίου.<br />
‗calendar.txt‘<br />
(Απαιτείται). Καθορίζει τις ημέρες της εβδομάδας στις οποίες ισχύει κάθε τύπος<br />
δρομολογίων που επαναλαμβάνεται (ServiceID).<br />
‗calendar_dates.txt‘<br />
(Προαιρετικά). Καθορίζει τις ημερομηνίες για τις οποίες υπάρχει εξαίρεση των<br />
Services του Calendar, και τι θα ισχύει διαφορετικό εκείνες τις ημερομηνίες. Π.χ.<br />
περιέχει τις ημερομηνίες που υπάρχουν αργίες, και καθορίζει ότι τότε θα ισχύει το<br />
πρόγραμμα της Κυριακής.<br />
‗fare_atttributes.txt‘<br />
(Προαιρετικά). Περιέχει τα στοιχεία για τα εισιτήρια που ισχύουν.<br />
78
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
‗fare_rules.txt‘<br />
(Προαιρετικά). Περιέχει τους κανόνες με τους οποίους προσδιορίζεται το εισιτήριο<br />
μιας διαδρομής.<br />
‗shapes.txt‘<br />
(Προαιρετικά). Περιέχει τους κανόνες για την οπτικοποίηση των διαδρομών στον<br />
χάρτη. Αν για μια Διαδρομή δεν υπάρχουν τα σχετικά στοιχεία, τότε στην<br />
οπτικοποίηση οι στάσεις συνδέονται απλώς μεταξύ τους.<br />
‗frequencies.txt‘<br />
(Προεραιτικά). Περιέχει την πληροφορία για την συχνότητα των Δρομολογίων μίας<br />
Γράμμης στην περίπτωση που αυτά δεν έχουν καθορισμένους χρόνους.<br />
‗transfers.txt‘<br />
(Προεραιτικά). Περιέχει τους κανόνες για την πραγματοποίηση μετεπιβιβάσεων σε<br />
μεγάλους σταθμούς.<br />
τη συνέχεια δίνεται μία περιγραφή του πρωτύπου ανά αντικείμενο, μαζί με την αναλυτική<br />
περιγραφή της διαδικασίας για την δημιουργία του Feed της παρούσας εφαρμογής, με τις<br />
παραδοχές και τις αποφάσεις που ελήφθησαν.<br />
5.1.2.1 Αρχείο ‗agency.txt‘.<br />
(Απαιτείται).<br />
Περιέχει στοιχεία για τους φορείς ΜΜΜ.<br />
Σο αρχείο έχει τα εξής πεδία:<br />
Agency_id (Προαιρετικό). Περιέχει έναν κωδικό που αντιστοιχεί μοναδικά σε έναν<br />
Υορέα ΜΜΜ.<br />
79
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Agency_name (Απαραίτητο). Η ονομασία του Υορέα ΜΜΜ.<br />
Agency_url (Απαραίτητο). Μία URL διεύθυνση για τον Υορέα ΜΜΜ.<br />
Agency_timezone (Απαραίτητο). Η Ζώνη Ώρας που αντιστοιχεί στον Υορέα ΜΜΜ. Δίνεται<br />
σύμφωνα με τον ορισμό από την tz ‗database‘.<br />
Agency_lang (Προαιρετικό). Περιέχει δύο χαρακτήρες κατά ISO 639-1 οι οποίοι<br />
αντιστοιχούν στην κύρια γλώσσα που χρησιμοποιεί ο Υορέας.<br />
Agency_phone (Προεραιτικό). Περιέχει ένα τηλέφωνο στο οποίο μπορεί κανείς να καλεί τον<br />
Υορέα.<br />
Σο πλήρες αρχείο που δημιουργήθηκε για την παρούσα Εφαρμογή είναι το εξής:<br />
agency_id agency_name agency_url agency_timezone agency_lang agency_phone<br />
AMEL AMEL S.A. http://www.amel.gr Europe/Athens el +302105194012<br />
ETHEL ETHEL S.A. http://www.ethel.gr Europe/Athens el +302104933002<br />
ILPAP ILPAP S.A. http://athens-trolley.gr Europe/Athens el +302102583300<br />
ISAP ISAP S.A.<br />
Athens Urban<br />
http://www.isap.gr Europe/Athens el +302103248311<br />
OASA<br />
Transport http://www.oasa.gr Europe/Athens el 185<br />
PROASTIAKOS PROASTIAKOS S.A. http://www.proastiakos.gr Europe/Athens el +302105272000<br />
TRAM TRAM S.A. http://www.tramsa.gr Europe/Athens el +302109978000<br />
Εικόνα 27: Σο πλήρες αρχείο ‗agency.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή.<br />
Δεν υπάρχει κάτι ιδιαίτερο για να σχολιαστεί όσον αφορά το συγκεκριμένο αρχείο, καθώς είναι πολύ<br />
απλά τα δεδομένα που περιέχονται σε αυτό.<br />
80
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
5.1.2.2 Αρχείο ‗stops.txt‘.<br />
(Απαιτείται).<br />
Περιέχει τα στοιχεία για τις στάσεις του δικτύου.<br />
Σο αρχείο έχει τα εξής πεδία:<br />
Stops_id (Απαραίτητο). Σο πεδίο περιέχει έναν κωδικό μοναδικό για κάθε στάση.<br />
Stop_code (Προαιρετικό). Περιέχει έναν κωδικό ή σύντομο κείμενο ετσι όπως αναγνωρίζεται<br />
η στάση ή ο σταθμός από τους επιβάτες.<br />
Stop_name (Απαραίτητο). Περιέχει το όνομα της στάσης ή του σταθμού.<br />
Stop_desc (Προαιρετικό). Περιέχει μία περιγραφή για την στάση ή τον σταθμό. Θα<br />
μπορούσε να περιέχει και στοιχεία παρατηρήσεων.<br />
Stop_lat (Απαραίτητο). Σο γεωγραφικό πλάτος της στάσης/του σταθμού, στο σύστημα<br />
WGS84.<br />
Stop_lon (Απαραίτητο). Σο γεωγραφικό μήκος της στάσης/του σταθμού, στο σύστημα<br />
WGS84.<br />
Zone_id (Προαιρετικό). Η ζώνη εισιτηρίων στην οποία ανήκει η στάση ή ο σταθμός.<br />
Stop_url (Προαιρετικό). Μία διεύθυνση URL που αντιστοιχεί στην στάση ή στον σταθμό.<br />
Εκεί μπορεί να περιέχονται π.χ. διάφορες πληροφορίες.<br />
81
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Location_type (Προαιρετικό). Ορίζει εάν το στοιχείο είναι στάση ή σταθμό.<br />
Η τιμή ‗0‘ ή το κενό αντιστοιχούν σε στάση.<br />
Η τιμή ‗1‘ αντιστοιχεί σε μία φυσική κατασκευή ή περιοχή που<br />
περιέχει μία ή περισσότερες στάσεις.<br />
Parent_station (Προαιρετικό). Για στάσεις που περιέχονται φυσικά μέσα σε σταθμούς, περιέχει<br />
τον κωδικό αυτού του σταθμού. Ο κωδικός πρέπει να υπάρχει κι αυτός στη λίστα,<br />
με location_type=‘1‘.<br />
Ένα δείγμα του αρχείου που δημιουργήθηκε για την παρούσα Εφαρμογή είναι το εξής:<br />
stop_id stop_code stop_name stop_desc stop_lat stop_lon zone_id stop_url location_type parent_station<br />
ST011000 STROFI 37.99860826 23.66498462 FZ0 0<br />
ST011001 KOLONES 37.99671944 23.66318232 FZ0 0<br />
ST011002 AG. VARVARA 37.99469474 23.66115296 FZ0 0<br />
ST011003 DIMARCHIO (TOWN HALL) 37.99283266 23.65927101 FZ0 0<br />
ST011004 KRITIS 37.99042616 23.65615036 FZ0 0<br />
Εικόνα 28: Δείγμα από το αρχείο ‗stops.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή.<br />
υνολικά το αρχείο περιέχει 7956 εγγραφές.<br />
Ο κωδικός στο πεδίο stop_id είναι ο εξαψήφιος κωδικός του ΟΑΑ για την στάση, με το πρόθεμα<br />
‗ST‘.<br />
O κωδικός στο πεδίο stop_code είναι κενός παντού, καθώς οι επιβάτες δεν γνωρίζουν τον κωδικό<br />
της στάσης, και δεν χρησιμοποιείται από αυτούς. Θα μπορούσε να είναι ο εξαψήφιος αριθμός ο<br />
οποίος υπάρχει και στα πληροφοριακά έντυπα στις στάσεις, όμως θα είχε μηδαμινή χρησιμότητα.<br />
Σο όνομα της στάσης έχει μετατραπεί από τα Ελληνικά στο Λατινικό Αλφάβητο. Η διαδικασία έχει<br />
γίνει αυτοματοποιημένα, ακολουθώντας μία τυποποιημένη αντιστοιχία χαρακτήρων. ε κάποιες<br />
περιπτώσεις βέβαια αυτό δεν είναι αρκετό, καθώς η ονομασία της στάσης αναφέρεται ευθέως στην<br />
περιοχή που εξυπηρετεί. Ψς παράδειγμα μπορεί να αναφερθεί η ονομασία ‗ΑΕΡΟΔΡΟΜΙΟ‘. την<br />
λατινική γραφή γίνεται ‗AERODROMIO‘, όμως είναι σκόπιμο να γίνει τελικά ‗AIRPORT‘, αποδίδοντας<br />
έτσι στην Αγγλική γλώσσα τη λειτουργία του χώρου που εξυπηρετεί η στάση.<br />
Οι γεωγραφικές συντεταγμένες της στάσης έχουν προκύψει στο σύστημα WGS84 έπειτα από<br />
μετατροπή των συντεταγμένων ΕΓΑ87 των πρωτογενών δεδομένων. Η μετατροπή εκτιμάται ότι έχει<br />
82
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ανακρίβεια στο αποτέλεσμα της τάξης του ±1.20 m, η οποία είναι ασήμαντη αν λάβει κανείς<br />
μάλιστα υπόψη ότι οι αρχικές συντεταγμένες έχουν ανακρίβεια ακόμη κι αρκετών μέτρων.<br />
Σο location_type έχει παντού την τιμή 0, καθώς δεν υπάρχουν ταθμοί στη λογική του ΟΑΑ, παρά<br />
μόνο τάσεις. Θα μπορούσε να υπάρξει μία ομαδοποίηση στάσεων για την λειτουργία της ίδιας της<br />
Εφαρμογής, κύριως σε σταθμούς Μετρό, όπως π.χ. στον ταθμό Δουκίσσης Πλακεντίας, από όπου<br />
διέρχονται γραμμές metro, Προαστιακού, και αρκετές λεωφορειακές γραμμές με διάφορες στάσεις.<br />
5.1.2.3 Αρχείο ‗routes.txt‘.<br />
(Απαιτείται).<br />
Περιέχει πληροφορίες για τις Γραμμές του Δικτύου. Δεν πρέπει να γίνεται σύγχuση<br />
με το ότι ο όρος Route στην παρούσα Εργασία αντιστοιχεί στον Κλάδο. Πρόκειται<br />
στην ουσία για μιά ομάδα δρομολογίων (Trips).<br />
Σα πεδία του αρχείου είναι τα εξής:<br />
Route_id (Απαραίτητο). Ένας κωδικός μοναδικός για κάθε Γραμμή.<br />
Agency_id (Προαιρετικό). Ο Κωδικός του Υορέα που εξυπηρετεί την Γραμμή.<br />
Route_short_name (Απαραίτητο). Περιέχει τη σύντομη ονομασία της Γραμμής. Π.χ. ‗Α5‘.<br />
Route_long_name (Απαραίτητο). Περιέχει την πλήρη ονομασία της Γραμμής.<br />
Route_desc (Προαιρετικό). Περιέχει μία περιγραφή για την Γραμμή. Θα μπορούσε να έχει<br />
και στοιχεία παρατηρήσεων.<br />
83
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Route_type (Απαραίτητο). Ένας κωδικός που περιγράφει τον τύπο του μέσου που εκτελεί<br />
το συγκοινωνιακό έργο. Οι δυνατές τιμές κωδικού είναι οι εξής:<br />
‗0‘: Tram, Streetcar, Light Rail.<br />
‗1‘: Τπόγειος ιδηρόδρομος, Μετρό.<br />
‗2‘: ιδηρόδρομος (χι αμιγώς αστικού χαρακτήρα).<br />
‗3‘: Λεωφορείο.<br />
‗4‘: Ferry.<br />
‗5‘: χοινόδρομος.<br />
‗6‘: Γόνδολα.<br />
‗7‘: Οδοντωτός ιδηρόδρομος.<br />
Route_url (Προαιρετικό). Η διεύθυνση URL για μία σελίδα π.χ. με περισσότερα στοιχεία<br />
για την Γραμμή.<br />
Route_color (Προαιρετικό). Σο χρώμα που αντιστοιχεί σε μία Γραμμή. Σο χρώμα δίνεται<br />
σε δεκαεξαδική μορφή RRGGBB. Αν δεν δοθεί τιμή, τότε θεωρείται η<br />
FFFFFF που αντιστοιχεί στο λευκό.<br />
Route_text_color (Προαιρετικό). Σο χρώμα του κειμένου για την Γραμμή σε δεκαεξαδική<br />
μορφή RRGGBB. Αν δεν δοθεί τιμή, τότε θεωρείται η 000000 που<br />
αντιστοιχεί στο μαύρο.<br />
τη συνέχεια δίνεται ένα δείγμα από τα στοιχεία του αρχείου routes.txt όπως δημιουργηθήκε για την<br />
παρούσα Εφαρμογή:<br />
route_id agency_id route_short_name route_long_name route_desc route_type route_url route_color route_text_color<br />
RT501 ETHEL 501 PEFKI-MAROYSSI A 3 0099FF 000000<br />
RT503 ETHEL 503 ZIRINIO-VARIMPOMPI 3 0099FF 000000<br />
RT504 ETHEL 504 THRAKOMAKEDONES-KIFISSIA 3 0099FF 000000<br />
RT507 ETHEL 507 ZIRINIO-RODOPOLI-STAMATA 3 0099FF 000000<br />
RT508 ETHEL 508 ZIRINIO-AGIOS STEFANOS 3 0099FF 000000<br />
Εικόνα 29: Δείγμα από το αρχείο ‗routes.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή.<br />
84
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σο πεδίο route_id περιέχει τον αριθμό Γραμμής με το πρόθεμα ‗RT‘. Λόγω χρησιμοποίησης του<br />
λατινικού αλφάβητου, έτσι ώστε να είναι συμβατή η εφαρμογή ακόμη και από συσκευές που δεν<br />
μπορούν να απεικονίσουν ελληνικό κείμενο, οι Γραμμές με τo στοιχείo ‗Γ‘, έχουν μετονομαστεί σε ‗C‘.<br />
Π.χ. η ‗Γ5‘ έχει γίνει ‗C5‘. Για να διατηρηθεί σταθερό το μέγεθος του κωδικού, και για να μην υπάρξει<br />
σύγχυση σε σχέση με τις Γραμμές, κάθε Γραμμή μετά το πρόθεμα ‗RT‘ αναγράφεται πάντα με 3<br />
χαρακτήρες. Έτσι:<br />
Οι Γραμμές με τρία στοιχεία στην σύντομη ονομασία τους, την διατηρούν ως έχει.<br />
Π.χ. ‗025‘ -> ‗TR025‘.<br />
Οι Γραμμές trolley που είναι διψήφιες, αποκτούν στη αρχή τον χαρακτήρα ‗T‘ ή το<br />
‗Σ0‘ ανάλογα. Π.χ. ‗25‘ -> ‗TRT25‘, ‗7‘ -> ‗TRT07‘.<br />
Οι Γραμμές με έναν χαρακτήρα κι ένα ψηφίο, επαναλαμβάνουν στην αρχή το<br />
ψηφίο αυτό. Π.χ. ‗Μ2‘ -> ‗TRΜΜ2‘.<br />
το πεδίο route_long_name έχουν μπει οι ονομασίες των Γραμμών, με λατινική γραφή, και σε<br />
κάποιες περιπτώσεις με μετάφραση στην Αγγλική Γλώσσα, όπως έγινε και με τις ονομασίες των<br />
στάσεων. Π.χ. το ‗Σ. ΤΠΕΡ. ΛΕΨΥ. ΚΗΥΙΟΤ-ΑΕΡ/ΝΑ ΑΘΗΝΨΝ (EXPRESS)‘ δεν έγινε απλώς ‗ST.<br />
IPER. LEOF. KIFISSOU-AER/NAS ATHINON (EXPRESS)‘, αλλά ‗KIFISSOS COACH STATION-AIRPORT<br />
(EXPRESS)‘, κάτι προφανώς πιο πληροφοριακό για έναν επισκέπτη της πόλης.<br />
Κάτι τέτοιο θα έπρεπε να είχε γίνει κι από τον ΟΑΑ, ώστε οι ονομασίες των Γραμμών και των<br />
τάσεων που βλέπει ο επιβάτης να παρέχονται και στα Ελληνικά, και στα Αγγλικά. Δυστυχώς, σήμερα<br />
για τον αλλοδαπό επιβάτη, η ταυτοποίηση της Γραμμής μπορεί να γίνει μόνο τον τριψήφιο κωδικό.<br />
Σο πεδίο route_type έχει πάρει τις κατάλληλες τιμές, ανάλογα με τον τύπο του μέσου που εξυπηρετεί<br />
την Γραμμή, όπως επίσης και το route_color έχει αποκτήσει τιμή χρώματος κοντά σε αυτά που<br />
χρησιμοποιούνται από τον ΟΑΑ. Π.χ. Γραμμές Μπλε, Κόκκινο, κούρο Πράσινο του Μετρό, Κίτρινο<br />
για τα Trolley κτλ..<br />
τον πίνακα/αρχείο του routes.txt υπάρχουν 346 εγγραφές κατά το πιο πρόσφατο Feed.<br />
85
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
5.1.2.4 Αρχείο ‗trips.txt‘.<br />
(Απαιτείται).<br />
Περιέχει τα Δρομολόγια και τους Κλάδους στους οποίους ανήκουν. Ένα Δρομολόγιο<br />
είναι μία σειρά στάσεων σε μία χρονική στιγμή. Σα πεδία που περιέχονται στο<br />
αρχείο είναι:<br />
Route_id (Απαραίτητο). Ο κωδικός της Γραμμής τής οποίας είναι το Δρομολόγιο.<br />
Service_id (Απαραίτητο). Περιέχει έναν κωδικό για το service στο οποίο ανήκει το<br />
Δρομολόγιο, δηλαδή την ομάδα Δρομολογίων σε σχέση με τις ημέρες και τις<br />
ημερομηνίες. υνδυάζεται με τα περιεχόμενα των αρχείων calendar.txt,<br />
calendar_dates.txt.<br />
Trip_id (Απαραίτητο). Ένας κωδικός, μοναδικός για κάθε Δρομολόγιο.<br />
Trip_headsign (Προαιρετικό). Περιέχει το κείμενο που εμφανίζεται ως προορισμός στους<br />
επιβάτες. Φρησιμοποιείται για την διάκριση ανάμεσα σε διαφορετικές μορφές<br />
Δρομολογίων (Patterns) για την ίδια Γραμμή.<br />
Trip_short_name (Προαιρετικό). Περιέχει το κείμενο που εμφανίζεται στην πληροφόρηση των<br />
επιβατών για την αναγνώριση του Δρομολογίου. Η Σιμή πρέπει να είναι<br />
μοναδική για κάθε Δρομολόγιο. Δεν πρέπει να συγχέεται δηλαδή με το<br />
trip_headsign και να χρησιμοποιείται στην θέση του για να δείξει προορισμό<br />
π.χ..<br />
Direction_id (Προαιρετικό). Περιέχει μία δυαδική τιμή, η οποία είναι ενδεικτική της<br />
κατεύθυνσης. Οι δύο δυνατές τιμές είναι:<br />
‗0‘ για την μία κατεύθυνση (π.χ. Αφετηρία -> Σέρμα).<br />
‗1‘ για την αντίθετη κατεύθυνση (π.χ. Σέρμα -> Αφετηρία).<br />
Block_id (Προαιρετικό). Σαυτοποιεί την ομάδα/αλληλουχία στην οποία ανήκει το<br />
86
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Δρομολόγιο. Μία αλληλουχία συνεχόμενων Δρομολογίων αφορά Δρομολόγια<br />
στα οποία ένας επιβάτης μπορεί να συνεχίσει στο επόμενο, το οποίο<br />
πραγματοποιείται με το ίδιο όχημα.<br />
Shape_id (Προαιρετικό). Ο κωδικός της πολυγωνικής γραμμής για την οπτικοποίηση της<br />
διαδρομής.<br />
τη συνέχεια δίνεται ένα δείγμα από τα στοιχεία του αρχείου trips.txt όπως δημιουργηθήκε για την<br />
παρούσα Εφαρμογή:<br />
route_id service_id trip_id trip_headsign trip_short_name direction_id block_id shape_id<br />
RT026 Swk TR0260SwkTtttttX 0<br />
RT026 Swk TR0261SwkTtttttX 1<br />
RT027 Ssa TR0270Ssa053000X 0<br />
RT027 Ssa TR0270Ssa055500X 0<br />
RT027 Ssa TR0270Ssa061500X 0<br />
Εικόνα 30: Δείγμα από το αρχείο ‗trips.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή.<br />
Σο πεδίο trip_id περιέχει τον κωδικό του Δρομολογίου. Αυτός αποτελείται από 16 αλφαριθμητικούς<br />
χαρακτήρες, κατά την μορφοποίηση ‗RRRRRRSSSTTTTTTX‘. την μορφοποίηση αυτή:<br />
RRRRRR είναι ο κωδικός της Γραμμής, με επίθεμα το ψηφίο ‗0‘, ή ‗1‘, ανάλογα με<br />
την κατεύθυνση. τη Γραμμή ‗Μ3‘ του Μετρό χρησιμοποιούνται και τα ψηφία ‗2‘,<br />
‗3‘ για να γίνεται επιπλέον διάκριση ανάμεσα στα Δρομολόγια προς/από τον<br />
ταθμό ‗Δουκίσσης Πλακεντίας» και στα Δρομολόγια προς/από τον Αερολιμένα.<br />
Γενικότερα, το τελευταίο ψηφίο είναι ενδεικτικό των διαφορετικών Κλάδων, και<br />
Διαδρομών (Patterns).<br />
SSS Είναι ένας τριψήφιος κωδικός, ο οποίος αντιστοιχεί στο Service.<br />
TTTTTT είναι ένα εξαψήφιο αλφαριθμητικό, που είτε περιέχει την ώρα έναρξης του<br />
Δρομολογίου στην μορφή ‗ΗΗΜΜ‘ και το επίθεμα ‗00‘, για αυτά τα Δρομολόγια<br />
που έχουν υιοθετηθεί οι ακριβείς ώρες, είτε περιέχει την τιμή ‗Tttttt‘, για τα<br />
Δρομολόγια εκείνα για τα οποία έχει υιοθετηθεί το σύστημα Πρώτο Δρομολόγιο +<br />
Περίοδος Επανάληψης.<br />
87
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Η διάκριση αυτή έχει γίνει με βάση την εμπειρία από την λειτουργία του Δικτύου, κι<br />
ανάλογα με το αν σε κάθε Γραμμή ταιριάζει καλύτερα η μία λογική ή η άλλη. την<br />
πρώτη περίπτωση υπάρχουν καταγεγραμμένα όλα τα Δρομολόγια της Γραμμής,<br />
έτσι όπως έχουν παρθεί από το site του ΟΑΑ. την δεύτερη περίπτωση υπάρχει<br />
μόνο ένα Δρομολόγιο, από όπου η μηχανή του routing παίρνει τον χρόνο του<br />
πρώτου Δρομολογίου, τoν χρόνο διαδρομής, και τους χρόνους στάσεων, και το<br />
επαναλαμβάνει κάθε τόσα δευτερόλεπτα όσα ορίζονται στο αρχείο<br />
‗frequencies.txt‘.<br />
Ειδικά στις Γραμμές Μετρό ‗Μ2‘ και ‗Μ3‘, επειδή υπήρχαν διαθέσιμα στοιχεία,<br />
έχουν υιοθετηθεί διαφορετικές περίοδοι επανάληψης μέσα σε κάθε service. Έτσι,<br />
υπάρχουν κάποια «πρώτα» Δρομολόγια, το πρώτο της κάθε περιόδου, κι έπειτα τα<br />
υπόλοιπα Δρομολόγια είναι επαναληπτικά μέχρι την στιγμή που αλλάζει ο χρόνος<br />
περιόδου. Για να γίνεται διάκριση αυτών των «πρώτων» Δρομολογίων, έχει<br />
ακολουθηθεί για την μορφοποίηση το ‗FP‘ + ‗HHMM‘. Π.χ. το ‗FP1030‘ αντιστοιχεί<br />
στο Δρομολόγιο με έναρξη την 10:30 κι όλα τα υπόλοιπα, μέχρι αυτό που ορίζεται<br />
ως ‗FP1200‘ για την ώρα 12:00, θα έχουν περίοδο επανάληψης όπως αυτή<br />
ορίζεται στο αρχείο ‗frequencies.txt‘.<br />
Σο αλφαριθμητικό κλείνει με το επίθεμα ‗Φ‘ το οποίο είναι θέση χαρακτήρα<br />
δεσμευμένη για μελλοντική επέκταση της κωδικοποίησης.<br />
Ένα παράδειγμα αυτής της μορφοποίησης, όπως φαίνεται και στο συνημμένο<br />
δείγμα από το αρχείο ‗trips.txt‘, είναι το εξής: ‗TR0260SwkTtttttX‘.<br />
τo παράδειγμα αυτό, απεικονίζεται ένα Δρομολόγιο της route TR0260, δηλαδή<br />
της Γραμμής 026 στην Κατεύθυνση (ή παραλλαγή) ‗0‘, για το Service ‗Swk‘, το<br />
οποίο καθορίζει τη σειρά των στάσεων, και τους χρόνους διαδρομής και στάσεων,<br />
για όλα τα Δρομολόγια του Service, με την χρονική στιγμή έναρξης, την χρονική<br />
στιγμή λήξης, και την επαναληπτικότητα, όπως αυτές ορίζονται στο αρχείο<br />
‗frequences.txt‘. Για το συγκεκριμένο παράδειγμα, τα στοιχεία στο ‗frequencies.txt‘<br />
(που περιγράφεται σε άλλο σημείο του κειμένου), δίνουν:<br />
trip_id start_time end_time headway_secs<br />
TR0260SwkTtttttX 05:15:00 23:00:00 1500<br />
, δηλαδή πρώτο<br />
δρομολόγιο ώρα 05:15, τελευταίο δρομολόγιο 23:00, κι ενδιάμεσα παρόμοια<br />
δρομολόγια ανά 1500 s = 25 min.<br />
88
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Αντίστοιχα, το αλφαριθμητικό στοιχείο ‗TR0270Ssa061500X‘ απεικονίζει ένα<br />
Δρομολόγιο του route ‗TR0270‘, δηλαδή της Γραμμής ‗027‘ στην<br />
Κατεύθυνση/Κλάδο (ή Παραλλαγή Διαδρομής) ‗0‘, το οποίο ξεκινά ώρα 15:00, για<br />
το Service ‗Ssa‘, δηλαδή άββατο. (Σο θέμα των Services αναλύεται σε άλλο<br />
σημείο του κειμένου.)<br />
το πεδίο trip_headsign υπάρχουν οι τιμές ‗EGALEO‘, ‗PLAKENTIAS‘, ‗AIRPORT‘, για τα Δρομολόγια<br />
της Γραμμής ΄Μ3‘ με τους αντίστοιχους προορισμούς.<br />
το πεδίο ‗direction_id‘ έχει εισαχθεί η τιμή ‗0‘ για τα Δρομολόγια από την Αφετηρία προς το Σέρμα<br />
(Α->Σ) και η τιμή ‗1‘ για τα Δρομολόγια από το Σέρμα προς την Αφετηρία (Σ->Α).<br />
υνολικά στο αρχείο ‗trips.txt‘, υπάρχουν 25688 εγγραφές κατά το πιό πρόσφατο Feed.<br />
5.1.2.5 Αρχείο ‗stop_times.txt‘.<br />
(Απαιτείται).<br />
Περιέχει τη λίστα με τους χρόνους στους οποίους ένα Δρομολόγιο φτάνει ή<br />
αναχωρεί από κάθε τάση του. το αρχείο αυτό περιέχεται έτσι και η λίστα<br />
στάσεων του Δρομολογίου.<br />
Σα πεδία τα οποία περιέχονται στο αρχείο είναι τα εξής:<br />
Trip_id (Απαραίτητο). Κωδικός του Δρομολογίο το οποίο περιγράφεται.<br />
Arrival_time (Απαραίτητα). Καθορίζουν την ώρα άφιξης και την ώρα αναχώρησης του<br />
89
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Departure time Δρομολογίου στην τάση. Η αναγραφή γίνεται στη μορφή ‗HH:MM:SS‘. Για<br />
ώρες μετά την αλλαγή ημέρας, η αναγραφή γίνεται ως 24:00:00 π.χ.<br />
Εάν δεν υπάρχουν στοιχεία για διαφορετικές ώρες άφιξης/αναχώρησης,<br />
τότε μπορεί να εισαχθεί τιμή μόνο στο ένα από τα δύο πεδία.<br />
ε περίπτωση που κάποια στάση δεν αποτελεί χρονικό σημείο της<br />
διαδρομής (ή δεν υπάρχουν διαθέσιμα στοιχεία), τότε μπορούν και τα δύο<br />
πεδία να είναι κενα. Οι χρόνοι άφιξης/αναχώρησης τότε θα προκύψουν ως<br />
παρεμβολή στις τιμές των δύο πλησιέστερων πριν και μετά στάσεων. Οι<br />
στάσεις αφετηρίας/τερματισμού πρέπει οπωσδήποτε να έχουν μία από τις<br />
δύο τιμές.<br />
Stop_id (Απαραίτητο). Ο Κωδικός Αριθμός της τάσης. Δεν μπορεί να είναι<br />
ταθμός.<br />
Stop_sequence (Απαραίτητο). Η σειρά της τάσης μέσα στο Δρομολόγιο. Η σειρά πρέπει να<br />
είναι αυξανόμενη αριθμητικά, αλλά όχι απαραίτητα συνεχής.<br />
Stop_headsign (Προαιρετικό). Περιέχει το κείμενο που αναφέρεται προς τους επιβάτες<br />
σαν προορισμός στην τάση. Εάν έχει συμπληρωθεί, τότε αντικαθιστά το<br />
κείμενο του αντίστοιχου πεδίου στο ‗trips.txt‘. Είναι χρήσιμο σε περίπτωση<br />
που το Δρομολόγιοα αλλάζει κείμενο προορισμού σε κάποιες στάσεις.<br />
90
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Pickup_time (Προαιρετικό). Δείχνει τον τρόπο με τον οποίον γίνεται η επιβίβαση στη<br />
τάση. Οι δυνατές τιμές είναι οι ακόλουθες:<br />
‗0‘: υνήθης λειτουργία στάσης.<br />
‗1‘: Δεν γίνεται επιβίβαση.<br />
‗2‘: Πρέπει να γίνει τηλεφωνική επικοινωνία ώστε να<br />
σταματήσει το όχημα.<br />
‗3‘: Η επιβίβαση πρέπει να έχει προσυνεννοηθεί με τον<br />
οδηγό.<br />
Η default τιμή είναι το ‗0‘.<br />
Drop_off_type (Προαιρετικό). Καθορίζει όμοια με το ‗pickup_time‘ τον τρόπο<br />
αποβίβασης.<br />
Shape_dist_traveled (Προαιρετικό). Περιέχει την πληροφορία για την απόσταση της στάσης από<br />
το πρώτο σημείο της γραμμής απεικόνισης στον χάρτη. Η τιμή μπορεί να<br />
είναι σε οποιαδήποτε μονάδα, π.χ. Km, ή feets, αρκεί να συμφωνεί με<br />
αυτήν στο αρχείο ‗shapes.txt‘. Κατά αυτόν τον τρόπο γίνεται δυνατή η<br />
απεικόνιση στον χάρτη μέρους μόνο της διαδρομής.<br />
Ένα δείγμα από το αρχείο ‗stop_times.txt‘, όπως δημιουργήθηκε για την παρούσα Εφαρμογή, είναι<br />
το εξής:<br />
91
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
trip_id arrival_time departure_time stop_id stop_sequence stop_headsign pickup_type drop_off_type shape_dist_traveled<br />
TR0210SwkTtttttX 05:15:00 05:15:00 ST061934 1 1<br />
TR0210SwkTtttttX ST061456 2<br />
TR0210SwkTtttttX ST061457 3<br />
TR0210SwkTtttttX ST061458 4<br />
TR0210SwkTtttttX ST061459 5<br />
TR0210SwkTtttttX ST061460 6<br />
TR0210SwkTtttttX ST061463 7<br />
TR0210SwkTtttttX ST061464 8<br />
TR0210SwkTtttttX ST061465 9<br />
TR0210SwkTtttttX 05:31:00 05:31:00 ST061466 10 1<br />
Εικόνα 31: Δείγμα από το αρχείο ‗stop_times.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή.<br />
το συγκεκριμένο δείγμα παρουσιάζεται ένα πλήρες Δρομολόγιο. Αυτό είναι το ‗TR0210SwkTtttttX‘,<br />
το οποίο σύμφωνα με την κωδικοποιημένη ονομασία του είναι της Γραμμής ‗021‘, στον Κλάδο ή<br />
Παραλλαγή ‗0‘, για το Service ‗Swk‘, και μάλιστα είναι το Δρομολόγιο το οποίο καθορίζει για τους<br />
χρόνους στάσεων και διαδρομής όλα τα δρομολόγια του Service, όπως επαναλαμβάνονται κατά την<br />
καθορισμένη περίοδο στο αρχείο ‗frequencies.txt‘, όπου υπάρχουν και οι ώρες του πρώτου και του<br />
τελευταίου όμοιου Δρομολογίου.<br />
Οι ώρες άφιξης και αναχώρησης στα πεδία ‗arrival_time‘ και ‗departure_time‘ αντίστοιχα έχουν<br />
εισαχθεί ίδιες, και μόνο στις στάσεις αφετηρίας και τερματισμού. Σα στοιχεία που έχουν περαστεί<br />
αφορούν το πρώτο Δρομολόγιο, αν κι αυτό δεν είναι απαραίτητο. Αφού τα Δρομολόγια σαν έναρξη<br />
κι επαναληπτικότητα προσδιορίζονται από το αρχείο ‗frquencies.txt‘, οι χρόνοι στο παράδειγμα<br />
έχουν σημασία μόνο ως χρόνοι διαφοράς μεταξύ τους, δηλαδή ως χρόνος διαδρομής.<br />
το πεδίο ‗stop_id‘ έχει εισαχθείο ο κωδικός 8 αλφαριθμητικών χαρακτήρων της κάθε στάσης, ενώ<br />
το ‗pickup_type‘ έχει την τιμή ‗1‘ στο τέλος, και το ‗dropoff_type‘ την ίδια τιμή στην αρχή, αφού<br />
προφανώς στα σημεία αυτά δεν γίνεται επιβίβαση και αποβίβαση αντίστοιχα. ε όλες τις ενδιάμεσες<br />
στάσεις δεν έχει εισαχθεί τιμή, κι έτσι ισχύει η default ‗0‘, δηλαδή γίνεται συνήθης επιβίβαση κι<br />
αποβίβαση. τα μόνα Δρομολόγια που δεν ισχύει αυτό είναι τα Δρομολόγια των λεωφορειακών<br />
Γραμμών Express του Αερολιμένα, όπου στον Κλάδο προς Αερολιμένα γίνεται μόνο επιβίβαση, και<br />
κατά τον αντίθετο Κλάδο, μόνο αποβίβαση.<br />
92
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σο αρχείο ‗stop_times.txt‘ είναι το μεγαλύτερο ενός συνήθους Feed, και στο τελευταίο Feed που έχει<br />
δημιουργηθεί για την Εφαρμογή περιείχε 1021541 εγγραφές.<br />
5.1.2.6 Αρχείο ‗calendar.txt‘.<br />
(Απαιτείται).<br />
Καθορίζει τις ημέρες της εβδομάδας στις οποίες ισχύει κάθε τύπος δρομολογίων<br />
που επαναλαμβάνεται (ServiceID).<br />
Σα πεδία που περιέχονται στο αρχείο είναι τα εξής:<br />
Service_id (Απαραίτητο). Ένας κωδικός που χαρακτηρίζει μοναδικά το Service.<br />
Monday (Απαραίτητο). Περιέχει μία δυαδική τιμή, ανάλογα με το αν το Service<br />
Tuesday<br />
Wednesday<br />
Thursday<br />
Friday<br />
Saturday<br />
Sunday<br />
πραγματοποιείται την ημέρα αυτή. Οι δυνατές τιμές είναι:<br />
‗1‘: Σο Service είναι διαθέσιμο κάθε τέτοια ημέρα για την περίοδο<br />
που ορίζεται από τα πεδία ‗start_date‘, ‗end_date‘.<br />
‗0‘: To Service δεν είναι διαθέσιμο κάθε τέτοια ημέρα για την<br />
περίοδο που ορίζεται από τα πεδία ‗start_date‘, ‗end_date‘.<br />
Start_date (Απαραίτητο). Η ημερομηνία έναρξης του Service.<br />
End_date (Απαραίτητο). Η ημερομηνία λήξης του Service.<br />
Σο πλήρες αρχείο ‗calendar.txt‘ όπως έχει δημιουργηθεί στο τελευταίο Feed της παρούσας<br />
Εφαρμογής είναι το εξής:<br />
93
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
service_id monday tuesday wednesday thursday friday saturday sunday start_date end_date<br />
Sdf 1 1 1 1 0 0 0 20091101 20101231<br />
Sfr 0 0 0 0 1 0 0 20091101 20101231<br />
Ssa 0 0 0 0 0 1 0 20091101 20101231<br />
Ssu 0 0 0 0 0 0 1 20091101 20101231<br />
Swd 1 1 1 1 1 0 0 20091101 20101231<br />
Swk 1 1 1 1 1 1 1 20091101 20101231<br />
Εικόνα 32: Σο πλήρες αρχείο ‗calendar.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή.<br />
πως φαίνεται, έχουν δημιουργηθεί έξι διαφορετικά εβδομαδιαία προγράμματα, ανάλογα με τα<br />
διαφορετικά προγράμματα που παρατηρούνται στα στοιχεία του ΟΑΑ:<br />
‗Sdf‘: Αφορά τις καθημερινές πλην Παρασκευής.<br />
‗Sfr‘: Αφορά μόνο την Παρασκευή.<br />
‗Ssa‘: Αφορά μόνο το άββατο.<br />
‗Ssu‘: Αφορά μόνο την Κυριακή.<br />
‗Swd‘: Αφορά όλες τις καθημερινές.<br />
‗Swk‘: Αφορά όλες τις ημέρες της εβδομάδας.<br />
5.1.2.7 Αρχείο ‗calendar_dates.txt‘.<br />
(Προαιρετικά).<br />
Καθορίζει τις ημερομηνίες για τις οποίες υπάρχει εξαίρεση των Services<br />
Σο αρχείο περιέχει τα εξής πεδία:<br />
(εβδομαδιαίων προγραμμάτων) του Calendar, και τι θα ισχύει διαφορετικό εκείνες<br />
τις ημερομηνίες. Π.χ. περιέχει τις ημερομηνίες που υπάρχουν αργίες, κκαι<br />
καθορίζει ότι τότε θα ισχύει το πρόγραμμα της Κυριακής.<br />
Service_id (Απαραίτητο). Ο κωδικός του Service το οποίο επηρεάζεται.<br />
94
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Date (Απαραίτητο). Καθορίζει την ημερομηνία κατά την οποία δεν ισχύει (ή ισχύει) το<br />
εβδομαδιαίο Service.<br />
Exception_type (Απαραίτητο). Καθορίζει το εάν το αναφερόμενο Service ισχύει ή δεν ισχύει ως<br />
εξαίρεση την ημερομηνία που δίνεται στο ‗date‘. Οι δυνατές τιμές είναι οι εξής:<br />
‗1‘: Σο Service ισχύει κατ‘ εξαίρεση την ημερομηνία.<br />
‗2‘: Σο Service δεν ισχύει κατ‘ εξαίρεση την ημερομηνία.<br />
<br />
Σο αρχείο συμπεριλαμβάνει μία εγγραφή για την εξαίρεση του προγράμματος σε μία αργία ή<br />
ημιαργία, κι άλλη μία εγγραφή για το πρόγραμμα που το αντικαθιστά. Π.χ.:<br />
service_id date exception_type<br />
το παράδειγμα αυτό, για την ημερομηνία των Φριστουγέννων, εξαιρείται το πρόγραμμα της<br />
Παρασκευής ‗Sfr‘ από το πρόγραμμα της Κυριακής ‗Ssu‘.<br />
Ο αριθμός των εγγραφών για μία περίοδο ισχύος του προγράμματος δρομολογίων κυμαίνεται γύρω<br />
στο 30.<br />
Sfr 20091225 2<br />
Ssu 20091225 1<br />
5.1.2.8 Αρχείο ‗fare_attributes.txt‘.<br />
(Προαιρετικά).<br />
Περιέχει τα στοιχεία για τα εισιτήρια που ισχύουν.<br />
Σα πεδία του αρχείου είναι τα εξής:<br />
Fare_id (Απαραίτητο). Περιέχει έναν κωδικό που αντιστοιχεί μοναδικά στο είδος<br />
εισιτηρίου.<br />
Price (Απαραίτητο). Περιέχει την τιμή του εισιτηρίου.<br />
95
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Currency_type (Απαραίτητο). Περιέχει έναν κωδικό για το νόμισμα στο οποίο εκφράζεται η<br />
τιμή του πεδίου ‗price‘. Ο κωδικός αυτός πρέπει να αναγράφεται όπως<br />
ορίζεται από το πρότυπο ISO4217.<br />
Payment_method (Απαραίτητο). Προσδιορίζει πότε πρέπει να πληρωθεί το εισιτήριο. Οι δυνατές<br />
τιμές είναι οι εξής:<br />
‗0‘: Σο εισιτήριο πληρώνεται εντός του οχήματος.<br />
‗1‘: Σο εισιτήριο πληρώνεται πριν την επιβίβαση.<br />
Transfers (Απαραίτητο). Προσδιορίζει τον αριθμό των μετεπιβιβάσεων που<br />
επιτρέπονται με αυτό το εισιτήριο. Οι δυνατές τιμές είναι οι εξής:<br />
‗0‘: Δεν επιρέπονται μετεπιβιβάσεις.<br />
‗1‘: Επιτρέπεται μία μετεπιβίβαση.<br />
‗2‘: Επιτρέπονται δύο μετεπιβιβάσεις.<br />
(κενό): Επιτρέπονται άπειρες μετεπιβιβάσεις.<br />
Transfer_duration (Προαιρετικό). Προσδιορίζει το χρονικό διάστημα σε δευτερόλεπτα πριν λήξει<br />
μία μετεπιβίβαση. ε συνδυασμό με την τιμή ‗0‘ του ‗transfers‘ προσδιορίζει<br />
τον χρόνο ισχύος ενός εισιτηρίου χωρίς μετεπιβιβάσεις.<br />
To σύνολο του αρχείου/πίνακα ‗fare_attributes‘ όπως δημιουργήθηκε για την παρούσα Εφαρμογή<br />
είναι το εξής:<br />
Εικόνα 33: To σύνολο του αρχείου ‗fare_attributes.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη<br />
μορφή.<br />
fare_id price currency_type payment_method transfers transfer_duration<br />
FA0 1.00 EUR 1<br />
FA1 1.20 EUR 1<br />
FA2 3.20 EUR 1<br />
FA3 6.00 EUR 1<br />
FA4 5.00 EUR 0<br />
FA5 4.00 EUR 1<br />
96
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Δυστυχώς ο τρόπος που το GTFS ορίζει την καταγραφή των κανόνων εισιτηρίων, δεν επιτρέπει τον<br />
σωστό χειρισμό των επιτρεπόμενων επ‘αόριστον μετεπιβιβάσεων εντός περιόδου 90‘, όπως ισχύει με<br />
το κανονικό εισιτήριο του ΟΑΑ σχεδόν για όλες τις Γραμμές. Ο χειρισμός αυτός μπορεί να<br />
υλοποιηθεί μόνο κατά την ανάπτυξη προγραμματιστικά της εφαρμογής.<br />
Επίσης, ένα γενικότερο πρόβλημα είναι ότι δεν μπορούν να καθορισθούν διαφορετικά εισιτήρια ως<br />
προς την αξία, τα οποία χρησιμοποιούνται από κάποιες ομάδες επιβατών. Π.χ. δεν μπορούν να<br />
συνυπάρχουν εισιτήρια κανονικά €1, και εισιτήρια μειωμένα για φοιτητές αξίας €0.50 στις ίδιες<br />
Γραμμές.<br />
(Παρατήρηση: Κατά την διάρκεια της εκπόνησης, ο ΟΑΑ άλλαξε την τιμολογιακή πολιτική, κι επ‘<br />
ευκαιρίας ο υπολογισμός του αναγκαίου εισιτηρίου γίνεται πλέον στην client εφαρμογή, χωρίς να<br />
χρησιμοποιείται ο πίνακας του Feed.)<br />
5.1.2.9 Αρχείο ‗fare_rules.txt‘.<br />
(Προαιρετικά).<br />
Περιέχει τους κανόνες με τους οποίους προσδιορίζεται το εισιτήριο μιας<br />
διαδρομής.<br />
Οι κανόνες μπορούν να βασίζονται σε μία από τις ακόλουθες μορφές:<br />
Σο εισιτήριο εξαρτάται από την αφετηρία και τον τερματισμό.<br />
Σο εισιτήριο εξαρτάται από το ποιά ζώνη εισιτηρίων διασχίζει η διαδρομή.<br />
Σο εισιτήριο εξαρτάται από ποιά Γραμμή χρησιμοποιείται.<br />
Σα πεδία του αρχείου είναι τα εξής:<br />
Fare_id (Απαραίτητο). Ένας κωδικός που αντιστοιχεί στον τύπο εισιτηρίου.<br />
Route_id (Προαιρετικό). Ο κωδικός Γραμμής εάν υπάρχει σύνδεση του εισιτηρίου με την<br />
Γραμμή.<br />
97
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Origin_id (Προαιρετικό). ύνδεση του εισιτηρίου με την ζώνη εισιτηρίων στην οποία ανήκει<br />
η περιοχή επιβίβασης.<br />
Destination_id (Προαιρετικό). ύνδεση του εισιτηρίου με την ζώνη εισιτηρίων στην οποία ανήκει<br />
η περιοχή αποβίβασης.<br />
Contains_id (Προαιρετικό). υνδέει το εισιτήριο με ένα ‗zone_id‘ όπως περιέχεται στο αρχείο<br />
‗stops.txt‘. Έτσι, το εισιτήριο συνδέεται επίσης με τις διαδρομές που διέρχονται<br />
από κάθε ζώνη του contains_id.<br />
Σο πλήρες αρχείο/πίνακας ‗fare_rules.txt‘ κατά το τελευταίο Feed που δημιουργήθηκε για την<br />
παρούσα Εφαρμογή, είναι το εξής:<br />
Εικόνα 34: Σο πλήρες αρχείο ‗fare_rules.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή.<br />
πως φαίνεται υπάρχουν 17 διαφορετικοί κανόνες. Ο ΟΑΑ δεν χρησιμοποιεί ζώνες στην<br />
τιμολογιακή του πολιτική. την Εφαρμογή όμως έχουν χρησιμοποιηθεί πλασματικές ζώνες, έτσι ώστε<br />
με έμμεσο τρόπο να καταγραφεί το πως ισχύουν τα εισιτήρια. Οι πλασματικές ζώνες δεν αφορούν<br />
καθαρά γεωγραφικές περιοχές. Έτσι:<br />
fare_id route_id origin_id destination_id contains_id<br />
FA0 FZ0 FZ0<br />
FA1 FZ0 FZ1<br />
FA1 FZ1 FZ1<br />
FA3 FZ0 FZ3<br />
FA3 FZ3 FZ0<br />
FA4 FZ4 FZ0<br />
FA5 FZ3 FZ5<br />
FA5 FZ5 FZ3<br />
FA4 RT400<br />
FA2 RTX92<br />
FA2 RTX93<br />
FA2 RTX94<br />
FA2 RTX95<br />
FA2 RTX96<br />
FA2 RTX97<br />
FA2 FZ0 FZ2<br />
FA2 FZ2 FZ0<br />
98
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
‗FZ0‘ είναι η ζώνη που περιέχει όλες τις Γραμμές με το κανονικό εισιτήριο.<br />
‗FZ1‘ είναι η ζώνη που περιέχει τις στάσεις στην περιοχή της αρωνίδας.<br />
‗FZ2‘ είναι η ζώνη που αντιστοιχεί στις λεωφορειακές Γραμμές που εξυπηρετούν<br />
τον Αερολιμένα.<br />
‗FZ3‘ είναι η ζώνη που αντιστοιχεί στις Γραμμές Μετρό και Προαστιακού όταν<br />
εξυπηρετούν τον Αερολιμένα.<br />
‗FZ4‘ είναι η ζώνη που αντιστοιχεί στην λεωφορειακή Γραμμή sightseeing ‗400‘.<br />
‗FZ5‘ είναι η ζώνη που αντιστοιχεί στο εισιτήριο των €4.00 όταν αφετηρία ή<br />
τελικός προορισμός με Μετρό ή Προαστιακό είναι ο Αερολιμένας, αλλά ο<br />
προορισμός ή η αφετηρία αντίστοιχα είνα κάποιους από τους σταθμούς μετά τον<br />
‗Δουκίσσης Πλακεντίας‘.<br />
Οι κανόνες δεν έχουν εισαχθεί μόνο με τον τρόπο κατά Γραμμή, καθώς επιτρέπονται μετεπιβιβάσεις<br />
με το ίδιο εισιτήριο των ειδικών περιπτώσεων, ή απαιτούνται διαφορετικά εισιτήρια για την ίδια<br />
Γραμμή. Π.χ. για την Γραμμή ‗Ε22‘ που συνδέει την Αθήνα με την αρωνίδα, για ένα τμήμα της<br />
Γραμμής ισχύει το κανονικό εισιτήριο ‗FA0‘ €1.00, ενώ για το τμήμα από Βάρκιζα μέχρι αρωνίδα,<br />
απαιτείται εισιτήριο ‗FA1‘ €1.20.<br />
(Παρατήρηση: Κατά την διάρκεια της εκπόνησης, ο ΟΑΑ άλλαξε την τιμολογιακή πολιτική, κι επ‘<br />
ευκαιρίας ο υπολογισμός του αναγκαίου εισιτηρίου γίνεται πλέον στην client εφαρμογή, χωρίς να<br />
χρησιμοποιείται ο πίνακας του Feed.)<br />
5.1.2.10 Αρχείο ‗shapes.txt‘.<br />
(Προαιρετικά).<br />
Περιέχει τους κανόνες για την οπτικοποίηση των διαδρομών στον χάρτη. Αν για μια<br />
Διαδρομή δεν υπάρχουν τα σχετικά στοιχεία, τότε στην οπτικοποίηση οι στάσεις<br />
συνδέονται απλώς μεταξύ τους.<br />
Κάθε εγγραφή αναφέρεται σε ένα σημείο κόμβο μίας πολυγωνικής γραμμής. Σα πεδία του αρχείου<br />
είναι τα εξής:<br />
99
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Shape_id (Απαραίτητο). Ένας κωδικός μοναδικός για κάθε πολυγωνική γραμμή.<br />
Shape_pt_lat (Απαραίτητο). Σο γεωγραφικό πλάτος του σημείου κόμβου της πολυγωνικής<br />
γραμμής στο σύστημα WGS84.<br />
Shape_pt_lon (Απαραίτητο). Σο γεωγραφικό μήκος του σημείου κόμβου της πολυγωνικής<br />
γραμμής στο σύστημα WGS84.<br />
Shape_pt_sequence (Απαραίτητο). Η σειρά του σημείου κόμβου στην πολυγωνική γραμμή.<br />
Shape_dist_traveled (Προαιρετικό). ταν χρησιμοποιείται, προσδιορίζει το σημείο κόμβο σαν μία<br />
απόσταση που έχει διανυθεί από την αρχή της πολυγωνικής γραμμής.<br />
Κατά κάποιο τρόπο είναι δηλαδή η ‗χιλιομετρική θέση‘. Μπορεί να<br />
χρησιμοποιηθεί για την απεικόνιση τμήματος της διαδρομής. Η μονάδα<br />
μήκους μπορεί να είναι οτιδήποτε, αρκεί να συμφωνεί με την μονάδα στο<br />
αρχείο ‗stop_times.txt‘.<br />
την παρούσα Εφαρμογή δεν έχει δημιουργηθεί το συγκεκριμένο προαιρετικό αρχείο. Ο λόγος είναι<br />
ότι δεν υπήρχαν διαθέσιμα στοιχεία για την ακριβή κίνηση των οχημάτων πάνω στο οδικό δίκτυο. Για<br />
κάποιες Γραμμές η διαδρομή τους είναι γνωστή εμπειρικά, όμως αν το αρχείο χρησιμοποιούταν μόνο<br />
για λίγες Γραμμές, τότε το μικτό οπτικό αποτέλεσμα θα δημιουργούσε περιέργη εικόνα. Σο θέμα είναι<br />
ούτως ή άλλως περισσότερο μία πιο καλή οπτικοποίηση, καθώς ο επιβάτης δεν ενδιαφέρεται<br />
ιδιαίτερα για την διαδρομή των οχημάτων, παρά για τις στάσεις που πρέπει να<br />
επιβιβαστεί/αποβιβαστεί και τον χρόνο διαδρομής μεταξύ αυτών.<br />
Μία ιδέα δημιουργίας των σχετικών στοιχείων, χωρίς να εξασφαλίζεται ότι αυτά θα αντιστοιχούν<br />
απόλυτα στην πραγματικότητα, είναι η χρησιμοποίηση της πλοήγησης των Google Maps ανάμεσα<br />
στα σημεία που ορίζονται από τις στάσεις. Έτσι, θα προκύψουν οι διαδρομές με βάση π.χ. τον<br />
μικρότερο χρόνο για κίνηση με αυτοκίνητο, χωρίς όμως να είναι πάντα απαραίτητο ότι οι<br />
λεωφορειακές Γραμμές κινούνται όντως πάνω σε αυτές τις διαδρομές. πως όμως ειπώθηκε, ο<br />
επιβάτης δεν ενδιαφέρεται ιδιαίτερα για την διαδρομή μεταξύ των στάσεων και κάτι τέτοιο θα<br />
εξυπηρετούσε απλώς την καλύτερη αισθητικά παρουσίαση, οπότε δεν θα υπήρχε ιδιαίτερο<br />
πρόβλημα με την ανακρίβεια. μως προς το παρόν δεν έχει υλοποιηθεί η ιδέα αυτή, ώστε να<br />
αποφευχθεί στο στάδιο της ανάπτυξης η δημιουργία μεγάλων αρχείων.<br />
100
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
5.1.2.11 Αρχείο ‗frequencies.txt‘.<br />
(Προαιρετικά).<br />
Περιέχει την πληροφορία για την συχνότητα των Δρομολογίων μίας Γράμμης, στην<br />
περίπτωση που αυτά δεν έχουν καθορισμένους χρόνους.<br />
Σα πεδία του αρχείου είναι τα εξής:<br />
Trip_id (Απαραίτητο). Ο κωδικός Δρομολογίου στο οποίο αναφέρεται η συχνότητα.<br />
Start_time (Απαραίτητο). Προσδιορίζει την ώρα ‗HH:MM:SS‘ κατά την οποία συμβαίνει<br />
το πρώτο δρομολόγιο με αυτή την συχνότητα.<br />
End_time (Απαραίτητο). Προσδιορίζει την ώρα ‗HH:MM:SS‘ κατά την οποία λήγει αυτή<br />
η συχνότητα δρομολογίων.<br />
Headway_secs (Απαραίτητο). Προσδιορίζει τον χρόνο σε δευτερόλεπτα μεταξύ δύο<br />
συνεχόμενων δρομολογίων, είναι δηλαδή η χρονική απόσταση ή περίοδος<br />
πραγματοποίησης για το χρονικό διάστημα που ορίζεται από το ‗start_time‘<br />
και το ‗end_time‘.<br />
Ένα δείγμα του αρχείου/πίνακα ‗frequencies.txt.‘ όπως δημιουργήθηκε για την παρούσα Εφαρμογή<br />
είναι το εξής:<br />
trip_id start_time end_time headway_secs<br />
TRMM31SwdFP1730X 17:30:00 22:00:00 300<br />
TRMM31SwdFP2200X 22:00:00 23:59:00 600<br />
TRPP10SwkTtttttX 00:01:00 00:02:00 99999<br />
TRPP11SwkTtttttX 00:01:00 00:02:00 99999<br />
TRT020SwkTtttttX 05:00:00 24:15:00 900<br />
TRT021SwkTtttttX 05:00:00 24:15:00 900<br />
Εικόνα 35: Δείγμα από το αρχείο ‗frequencies.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή.<br />
101
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
το συγκεκριμένο εσκεμμένα επιλεγμένο δείγμα μπορούν να παρατηρηθούν τα εξής:<br />
Οι δύο πρώτες εγγραφες αφορούν την Γραμμή Μετρό ‗Μ3‘, τον Κλάδο/Παραλλαγή<br />
‗1‘, για το εβδομαδιαίο Πρόγραμμα (Service) ‗Swd‘. τη μία εγγραφή γίνεται<br />
προσδιορισμός της συχνότητας των δρομολογίων για το διάστημα 17:30-22:00 ως<br />
ανά 300 s = 5 min. τη δεύτερη εγγραφή γίνεται προσδιορισμός της συχνότητας<br />
για το επόμενο διάστημα 22:00-23:59, ως ανά 600 s = 10 min. Αυτή η<br />
διακύμανση συχνότητας μέσα στην ημέρα έχει υιοθετηθεί μόνο για τις Γραμμές<br />
Μετρό.<br />
τις υπόλοιπες Γραμμές τα δρομολόγια δεν ακολουθούσαν πάντα μία συγκεκριμένη<br />
συχνότητα ανά χρονικές περιόδους, καθώς π.χ. μπορεί να υπήρχε χρονική<br />
απόσταση του Β από το Α 20 min, του Γ από το Β 12 min, και στη συνέχεια του Δ<br />
από το Γ πάλι 20 min. Για τον λόγο αυτό προτιμήθηκε η υιοθέτηση μίας μέσης<br />
σταθερής συχνότητας για το σύνολο της ημέρας.<br />
τις περιπτώσεις που υπήρχε σημαντική παρόλα αυτά διακύμανση της μέσης κατά<br />
διαστήματα συχνότητας μέσα στην ημέρα, δημιουργηθήκαν αναλυτικά τα<br />
Δρομολόγια σύμφωνα με το πρόγραμμα ΟΑΑ, και τα Δρομολόγια αυτά<br />
περιέχονται στο αρχείο ‗stop_times.txt‘.<br />
Η Σρίτη και η Σέταρτη εγγραφή αφορούν Γραμή του Προαστιακού. Εξαιτίας του ότι<br />
δεν υπήρχαν καθόλου διαθέσιμα στοιχεία για τα δρομολόγια του Προαστιακού,<br />
υπάρχει η πλασματική περίοδος 00:01-00:02 με συχνότητα ανά 99999 s, οπότε<br />
πρακτικά τα δρομολόγια του Προαστιακού δεν λαμβάνονται υπόψη κατά το<br />
routing.<br />
Η Πέμπτη και η έκτη εγγραφή αναφέρονται σε δύο Κλάδους/Παραλλαγές της<br />
Γραμμής trolley 2, για το Service ‗Swk‘. Αναφέρονται στο σύνολο της ημέρας, με<br />
έναρξη δρομολογίων 05:00 και λήξη 24:15, δηλαδή 15‘ μετά τα μεσάνυχτα προς<br />
την επόμενη ημέρα. Η συχνότητα είναι ανά 900 s = 15 min, και πάντα οι Κλάδοι<br />
επιστροφής έχουν, όπως και στην συγκεκριμένη περίπτωση, την συχνότητα των<br />
Κλάδων από την Αφετηρία προς το Σέρμα.<br />
Σο αρχείο/πίνακας ‗frequencies.txt‘, όπως δημιουργήθηκε για την παρούσα Εφαρμογή, περιέχει 431<br />
εγγραφές, οι οποίες αφορούν 236 Γραμμές. Για τις υπόλοιπες Γραμμές υπάρχουν αναλυτικά<br />
δρομολόγια (στο ‗stop_times.txt‘) όπως καθορίζονται από το πρόγραμμα του ΟΑΑ. Ειδικά για την<br />
Γραμμή Μετρό ‗M3‘ έχει ακολουθηθεί όπως αναφέρεται σε άλλο σημείο ένα μικτό σύστημα.<br />
102
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
5.1.2.12 Αρχείο ‗transfers.txt‘.<br />
(Προεραιτικά).<br />
Περιέχει τους κανόνες για την πραγματοποίηση μετεπιβιβάσεων σε μεγάλους<br />
σταθμούς. υνήθως οι σχεδιαστές ταξιδιών υπολογίζουν σημεία μετεπιβιβάσεων με<br />
βάση την σχετική γειτνίαση των στάσεων. ε περιπτώσεις όπου υπάρχει έντονη<br />
ασάφεια για ένα ζεύγος στάσεων, ή όπου χρειάζεται να κωδικοποιηθούν<br />
συγκεκριμένες επιλογές, τότε μπορεί να χρησιμοποιηθεί το αρχείο αυτό ώστε να<br />
καθοριστούν επιπλέον κανόνες για τις μετεπιβιβάσεις.<br />
Σα πεδία του αρχείου είναι τα εξής:<br />
From_stop_id (Απαραίτητο). Περιέχει έναν κωδικό στάσης, της στάσης από την οποία<br />
ξεκινά η σύνδεση. ε περίπτωση που ο Κωδικός αντιστοιχεί σε σταθμό<br />
(ομάδα στάσεων), τότε ο κανόνας εφαρμόζεται για όλες τις στάσεις που<br />
περιέχει αυτός.<br />
To_stop_id (Απαραίτητο). Περιέχει έναν κωδικό στάσης, της στάσης στην οποία ξεκινά η<br />
σύνδεση. ε περίπτωση που ο Κωδικός αντιστοιχεί σε σταθμό (ομάδα<br />
στάσεων), τότε ο κανόνας εφαρμόζεται για όλες τις στάσεις που περιέχει<br />
αυτός.<br />
Transfer_type (Απαραίτητο). Καθορίζει τον τύπο της σύνδεσης για το ζεύγος στάσεων. Οι<br />
δυνατές τιμές για το πεδίο είναι:<br />
‗0‘ ή (κενό): Είναι ένα προτεινόμενο σημείο μετεπιβίβασης<br />
μεταξύ δύο Γραμμών.<br />
‗1‘: Είναι ένα περιορισμένο σημείο μετεπιβίβασης μεταξύ<br />
δύο Γραμμών. Σο όχημα που αναχωρεί αναμένεται ότι θα<br />
περιμένει την άφιξη του οχήματος που καταφθάνει, με<br />
επαρξή διαθέσιμο χρόνο για την μετεπιβίβαση.<br />
‗2‘: Η μετεπιβίβαση απαιτεί έναν ελάχιστο χρόνο μεταξύ<br />
άφιξης κι αναχώρησης για να είναι σίγουρη η σύνδεση. Η<br />
103
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
τιμή του απαιτούμενου χρόνου προσδιορίζεται στο πεδίο<br />
‗min_transfer_time‘.<br />
‗3‘: Δεν είναι δυνατή η μετεπιβίβαση μεταξύ των Γραμμών<br />
σε αυτή την τοποθεσία.<br />
Min_transfer_time (Προαιρετικά). ταν απαιτείται ένας ελάχιστος χρόνος μεταξύ άφιξης και<br />
αναχώρησης από την σύνδεση (‗transfer_type‘=2), τότε το πεδίο αυτό<br />
προσδιορίζει τον χρόνο σε δευτερόλεπτα που πρέπει να είναι διαθέσιμος σε<br />
ένα ταξίδι ώστε να επιτρέπεται η μετεπιβίβαση μεταξύ των Γραμμών σε<br />
αυτές τις στάσεις. Ο χρόνος αυτός πρέπει να είναι αρκετός ώστε να καλύψει<br />
τον χρόνο για την μετακίνηση από την μία στάση στην άλλη, αλλά και τον<br />
χρόνο ασφαλείας για την απόκλιση από τον προγραμματισμό.<br />
Κατά την παρούσα Εφαρμογή το αρχείο/πίνακας ‗transfers.txt‘ δεν συμπληρώθηκε με στοιχεία,<br />
καθώς τέτοιων ειδών μετεπιβιβάσεις δεν συμβαίνουν στο δίκτυο του ΟΑΑ, εκτός ειδικών και μη<br />
μόνιμων περιπτώσεων. Η λογική θα μπορούσε πάντως να χρησιμοποιηθεί για την εμπειρική βελτίωση<br />
των αποτελεσμάτων, μέσω ώθησης κάποιων μετεπιβιβάσεων και περιορισμού κάποιων άλλων.<br />
5.1.2.13 Διάγραμμα Οντοτήτων-υσχετίσεων (E-R) Σου GT Feed.<br />
To GTFS ορίζει στην πραγματικότητα μία δομή οντοτήτων και μεταξύ τους συσχετίσεων, έστω κι αν<br />
αυτή υλοποιείται με χρήση απλών ASCII αρχείων. Κάθε τέτοιο αρχείο ισοδυναμεί με έναν<br />
διαφορετικό πίνακα μίας σχεσιακής Βάσης Δεδομένων. Σο σχετικό διάγραμμα που περιγράφει<br />
συνοπτικά αυτή την δομή είναι το εξής:<br />
104
-<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ID<br />
Phone<br />
URL<br />
1<br />
Color<br />
Block<br />
Name UR<br />
L<br />
AGENCIES<br />
Time<br />
Zone<br />
Language<br />
Ν<br />
ID<br />
Description<br />
ID<br />
Εξυπθρετείται<br />
Από<br />
Type<br />
Shape<br />
Text Color<br />
ROUTES<br />
1<br />
Route<br />
Direction<br />
Start<br />
Time<br />
Agency<br />
Long<br />
Name<br />
Ν<br />
Είναι<br />
Σθσ<br />
FREQUENCIES<br />
Short<br />
Name<br />
Ν<br />
Service<br />
TRIPS<br />
Ζχει<br />
End<br />
Time<br />
Short<br />
Name<br />
1<br />
ID<br />
Headway<br />
Headsign<br />
1<br />
Zone<br />
Latitude<br />
M<br />
URL Type<br />
ID Code<br />
Longitude<br />
Ιςχφει<br />
Για<br />
M<br />
Pickup<br />
Type<br />
N<br />
Ζχει Σο<br />
Sunday<br />
Saturday<br />
STOPS<br />
Για<br />
Σθν<br />
Drop Off<br />
Type<br />
Trip<br />
Stop<br />
Headsign<br />
N<br />
Parent<br />
Station<br />
Name<br />
Description<br />
Start<br />
Date<br />
N<br />
Ζχει Σο<br />
Service<br />
Friday<br />
Ν<br />
Shape<br />
Distance<br />
Traveled<br />
Arrival<br />
Time<br />
STOP TIMES<br />
Stop<br />
Sequence<br />
End<br />
Date<br />
1<br />
Thursday<br />
Monday<br />
CALENDAR<br />
2<br />
Από/ε<br />
Departure<br />
Time<br />
Stop<br />
Tuesday<br />
Wednesday<br />
From<br />
Stop<br />
Ανικει<br />
τθν Ηώνθ<br />
Θ τάςθ<br />
Αντιςτοιχεί<br />
ε Μικοσ<br />
Σου<br />
Distance<br />
Traveled<br />
ID<br />
To<br />
Stop<br />
TRANSFERS<br />
Minimum<br />
Transfer<br />
Time<br />
Point<br />
Latitude<br />
SHAPES<br />
Point<br />
Sequence<br />
(Δεν)<br />
Ιςχφει<br />
Transfer<br />
Type<br />
ID<br />
Point<br />
Longitude<br />
N M<br />
Διάγραμμα 3: Σο Διάγραμμα Οντοτήτων-υσχετίσων (E-R) που αντιστοιχεί στο GTFS (Με γαλάζιο χρώμα ή παχείς χαρακτήρες τα απαραίτητα στοιχεία).<br />
N<br />
N<br />
1<br />
1<br />
1<br />
Route<br />
FARE RULES<br />
Contains<br />
Zone<br />
1<br />
Origin<br />
Destination<br />
ID<br />
Transfer<br />
Duration<br />
Χρειάηεται<br />
Σο<br />
N<br />
Price<br />
FARE ATTRIBUTES<br />
Transfers<br />
Service Date Exception<br />
Type<br />
CALENDAR DATES<br />
Currency<br />
Type<br />
Payment<br />
Method<br />
105
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
106
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
5.2 Δεδομένα Οδικού Δικτύου.<br />
5.2.1 Γενικά.<br />
Σα δεδομένα που αφορούν το οδικό δίκτυο απαιτούνται για την εύρεση διαδρομών στα τμήματα<br />
πεζή. ε επέκταση της Εφαρμογής ώστε να μπορούν να υπάρχουν τμήματα με ποδήλατο, ή με<br />
λειτουργίες Park & Ride, τότε θα χρησιμοποιούνταν και για τις σχετικές ευρέσεις διαδρομών με<br />
ποδήλατο ή ΙΦ αυτοκίνητο. Η επέκταση αυτή δεν κρίνεται όμως προς το παρόν ιδιαίτερης πρακτικής<br />
αξίας για την περίπτωση της Αθήνας, όπου αφενός τα ποδήλατα είναι λίγα και σχεδόν δεν<br />
επιτρέπονται στα ΜΜΜ, αφετέρου οι περιπτώσεις όπου υπάρχουν δυνατότητες Park & Ride είναι<br />
ελάχιστες. μως, πέρα όλων αυτών, αλλά και σε συνδυασμό μαζί τους, ακόμη μικρότερη πρακτική<br />
χρησιμότητα υπάρχει λόγω του ότι η Εφαρμογή απευθύνεται σε επισκέπτες της πόλης.<br />
Για τα δεδομένα του οδικού δικτύου έγινε αναζήτηση διαφόρων λύσεων, και τελικά αποφασίστηκε να<br />
χρησιμοποιηθούν τα στοιχεία αποό το Project ‗Open Street Map‘, ή ‗OSM‘ σε συντομία. O χάρτης<br />
του OSM χρησιμοποιείται κι από την Εφαρμογή Φρήστη του Open Trip Planner, ως χαρτογραφικό<br />
υπόβαθρρο. Η Εφαρμογή αυτή χρησιμοποιήθηκε αρχικά ως βάση και για την Εφαρμογή Φρήστη της<br />
παρούσας, οπότε το OSM έβρισκε χρησιμότητα σε δύο λειτουργίες, χωρίς μάλιστα να υπάρχουν έτσι<br />
διαφοροποιήσεις μεταξύ αυτών. Δηλαδή, αυτό που προέκυπτε από το routing engine, ήταν απόλυτα<br />
κι αυτό που εμφανιζόταν στον χάρτη.<br />
5.2.2 Open Street Map (OSM).<br />
Πρόκειται για Project που αποσκοπεί στην δημιουργία ενός<br />
ελεύθερου/δωρεάν και επεξεργάσιμου χάρτη ολόκληρου του<br />
κόσμου, μέσα από την συνεργασία εθελοντών. Ο χάρτης<br />
βελτιώνεται και επεκτείνεται συνεχώς, με δεδομένα που<br />
προκύπτουν από καταγραφές GPS, την γνώση ενός τόπου από<br />
τους εθελοντές, τις διαθέσιμες αεροφωτογραφίες, κ.α..<br />
ε αρκετές περιπτώσεις δεδομένα έχουν χορηγηθεί μάλιστα από<br />
ιδιωτικές εταιρείες ή δημόσιους φορείς, ενώ και η Yahoo! π.χ. έχει<br />
επιτρέψει την χρήση των αεροφωτογραφιών της για το Project. Σο Project ξεκίνησε το 2004, και<br />
μέχρι τα τέλη του 2009 υπήρχαν περισσότεροι από 20000 συνεργάτες. Μόνο όμως το 10% περίπου<br />
από αυτούς συνεισφέρει με δεδομένα σε μηνιαία βάση.<br />
107
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σα δεδομένα παρέχονται προς χρήση είτε σε διανυσματική (π.χ. ESRI Shape Files), είτε σε raster<br />
μορφή. Τπάρχει μάλιστα η δυνατότητα να γίνονται rendering τα διανυσματικά δεδομένα σε μορφή<br />
raster, από διάφορους renderers (π.χ. Mapnik ή Osmarender), και σε διάφορα θέματα, όπως π.χ.<br />
γενικός χάρτης, χάρτης ποδηλασίας, με απεικόνιση του αναγλύφου, κτλ.. Σα δεδομένα που<br />
παρέχονται ως raster tiles από διάφορους servers ανά τον κόσμο είναι πολύ εύκολο να<br />
χρησιμοποιηθούν σε εφαρμογέςπου απεικονίζουν WMS, με αξιοποίηση π.χ. των Openlayers. Η<br />
δυνατότητα rendering από τον χρήστη των διανυσματικών δεδομένων κάνει εφικτό το να<br />
δημιουργούνται WMS για ιδία χρήση, με πλήρως επιλεγμένη την χαρτογραφική απόδοση.<br />
Εικόνα 36: Απεικόνιση του κέντρου της Αθήνας με OpenStreetMap δεδομένα και Openlayers.<br />
Σο site με το wiki του OpenStreetMap βρίσκεται στη διεύθυνση:<br />
wiki.openstreetmap.org/wiki/Main_Page.<br />
108
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
5.2.3 Παρατηρήσεις.<br />
σον αφορά την περιοχή της Αθήνας, αν και υπάρχει ολόκληρο το οδικό δίκτυο σαν γεωμετρία στο<br />
Open Street Map, με μεγάλη μάλιστα ακρίβεια, εν τούτοις η συμπερίληψη της ονομασίας των οδών<br />
στα δεδομένα υπάρχει σε ιδιαίτερα μικρό ποσοστό, και μάλιστα όχι με κάποιον συγκεκριμένο τρόπο,<br />
δηλαδή υπάρχουν οδοί με καταγραφή της ονομασίας με ελληνικούς ή με λατινικούς χαρακτήρες.<br />
Για τον παραπάνω λόγο, αφενός δεν μπορούν να αναφερθούν σωστά στοιχεία όπως τα ονόματα των<br />
οδών ως καθοδήγηση, αφετέρου δεν μπορεί να πραγματοποιηθεί ικανοποιητικό geocoding. ε<br />
περίπτωση χρήσης υπηρεσίας geocoding που να μην αναφέρεται στο OSM, τότε σε αρκετές<br />
περιπτώσεις δημιουργείται αναντιστοιχία μεταξύ διεύθυνσης κι εμφάνισής της στον χάρτη, δυσκολία<br />
στην διαχείριση, κι επιπλέον, πιθανόν παραβίαση όρων χρήσης. Αυτό συμβαίνει π.χ. με την σχετική<br />
υπηρεσία της Google, η οποία τελικά χρησιμοποιήθηκε Η Google ζητάει τα αποτελέσματα του<br />
geocoding να απεικονίζονται πάνω στον χάρτη της Google Maps. Αυτός είναι ένας από τους λόγους<br />
που ώθησαν στην μετέπειτα ανάπτυξη μία εντελώς νέας Εφαρμογής Φρήστη, όπου οι υπηρεσίες της<br />
Google χρησιμοποιούνται τόσο για την χαρτογραφική απόδοση, όσο και για το geocoding.<br />
Επιπλέον αυτού του προβλήματος, υπάρχουν χαρακτηριστικά σημεία στα οποία η κάλυψη των οδών<br />
δεν είναι επαρκής, όπως π.χ. στην περιοχή του Αερολιμένα. Και ναι μεν τα σημεία αυτά είναι<br />
ιδιαίτερα μικρά στην συνολική έκταση ώστε να μειώσουν την συνολική πληρότητα κι ακρίβεια, όμως,<br />
όπως περιγράφεται παρακάτω, δημιουργούν αρκετά προβλήματα στην παρούσα Εφαρμογή, αφού<br />
πρόκειται για σημεία/περιοχές σημαντικού ενδιαφέροντος για αυτήν.<br />
Κατά την διάρκεια εκπόνησης της Εργασίας δοκιμάστηκαν διάφορες λύσεις για τον εμπλουτισμό και<br />
την διόρθωση των στοιχείων OSM για την περιοχή της Αθήνας, κυρίως με χρήση του πακέτου ArcGIS.<br />
Οι περισσότερες από αυτές τις λύσεις φάνηκε να έχουν σχετική επιτυχία, όμως ακόμη κι έτσι<br />
δημιουργούταν υπερβολικά μεγάλος όγκος εργασίας για τον manual έλεγχο και την αντιμετώπιση<br />
των όποιων προβλημάτων, πολύ πέρα από το αντικείμενο της παρούσας Εργασίας. Ακόμη, όλες οι<br />
λύσεις παραβίαζαν, ή πιθανόν παραβίαζαν, πνευματικά δικαιώματα, οπότε δεν υπήρχε άμεση<br />
πρακτική χρησιμότητα. Ο τελευταίος είναι προφανώς και ο λόγος για τον οποίον δεν<br />
χρησιμοποιήθηκαν πλήρως τέτοια sets δεδομένων.<br />
Η λύση που τελικά εφαρμόστηκε, και περιγράφεται παρακάτω, είναι να χρησιμοποιούνται τα<br />
στοιχεία του OSM για την δημιουργία γράφου και το routing με όλα τα μέσα από την σχετική<br />
μηχανή, όμως για το χαρτογραφικό υπόβαθρο και το geocoding να χρησιμοποιούνται οι αντίστοιχες<br />
υπηρεσίες της Google. την νέα Εφαρμογή Φρήστη που αναπτύχθηκε, στα τμήματα πεζή γίνεται<br />
μετεπεξεργασία των διαδρομών με χρήση της υπηρεσίας Google Directions, ώστε να υπάρχει<br />
καλύτερη αντιστοιχία με τον χάρτη. Έτσι όμως δημιουργείται αναπόφευκτα κάποια αναντιστοιχία<br />
όσον αφορά το routing, π.χ. για το μήκος διαδρομής.<br />
109
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
5.3 Δημιουργία Γράφου.<br />
Ο Γράφος που αντιστοιχεί στα παραπάνω δεδομένα, και ο οποίος χρησιμοποιείται από το routing<br />
engine, δημιουργήθηκε με χρήση του graph-builder του Open Trip Planner, ένα open source<br />
εργαλείο που περιγράφεται στο Error! Reference source not found.. Ο Γράφος περιέχει στοιχεία του<br />
δικτύου των ΜΜΜ και των δρομολογίων τους, αλλά και στοιχεία για το οδικό δίκτυο, τα οποία<br />
χρησιμοποιούνται για το αρχικό routing πεζή. Σα στοιχεία αυτά προέρχονται από το Open Street<br />
Map και γίνονται download από τον ίδιον τον graph-builder.<br />
Ο Γράφος που έχει δημιουργηθεί για την Αθήνα έχει μέγεθος περίπου 120 Mb. Ο χρόνος<br />
δημιουργίας του σε έναν υπολογιστή με υπολογιστή Quad Core 2.4 GΗz είναι της τάξης των αρκετών<br />
λεπτών της ώρας (~20). Ο χρόνος αυτός είναι αισθητά μικρότερος όταν υπάρχουν cached δεδομένα<br />
του Open Street Map, οπότε δεν γίνεται το σχετικό κατέβασμα.<br />
Εικόνα 37: (Επανάληψη) Ο Γράφος της Εφαρμογής στο Κέντρο της Αθήνας όπως απεικονίζεται στο<br />
module GUI του OTP. Οι κίτρινες γραμμές αντιστοιχούν σε δρομολόγια των ΜΜΜ, ενώ οι γαλάζιες<br />
στο οδικό δίκτυο.<br />
110
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6Τλοποίηση υστήματος.<br />
το Κεφάλαιο αυτό γίνεται περιγραφή της υλοποίησης, αλλά και των σημαντικότερων εργαλείων που<br />
χρησιμοποιήθηκαν.<br />
Πριν ξεκινήσει όμως το κυρίως μέρος του Κεφαλαίου, θα πρέπει να αναφερθεί ότι το όνομα που<br />
δόθηκε στην Τπηρεσία/Εφαρμογή της παρούσα Εργασίας είναι ‗Tsoop!‘. Δεν σημαίνει κάτι ιδιαίτερα,<br />
είναι όμως αρκετά απλό. Η φημολογία θέλει να προέρχεται από την φράση ―..και Σσουπ, Έφτασες!‖.<br />
Επίσης να αναφερθεί ότι, λόγω της συνεχούς ανάπτυξης της Εφαρμογής, είναι δυνατόν να<br />
παρατηρούνται διαφοροποιήσεις κάποια στιγμή ανάμεσα σε αυτό που τρέχει στην πραγματικότητα<br />
και σε ότι αναφέρεται στο παρόν Κεφάλαιο, χωρίς όμως οι διαφοροποιήσεις αυτές να είναι επί της<br />
ουσίας πολύ σημαντικές. Π.χ. αντί για PostgreSQL μπορεί να χρησιμοποιείται MySQL, απλά και μόνο<br />
επειδή αυτή υποστηρίζεται από κάποιον συγκεκριμένο Server.<br />
6.1 Εργαλεία Που Φρησιμοποιήθηκαν.<br />
τη συνέχεια δίνεται μία σύντομη περιγραφή των βασικότερων εργαλείων που χρησιμοποιήθηκαν, με<br />
σκοπό στη συνέχεια η περιγραφή της υλοποίησης να είναι περισσότερο κατανοητή. ε κάθε<br />
111
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
περίπτωση που ο αναγνώστης επιθυμεί περισσότερες πληροφορίες για κάποια από τα εργαλεία,<br />
προτρέπεται στην σχετική τεκμηρίωση.<br />
Η εφαρμογή έγινε προσπάθεια να πραγματοποιηθεί με την όσο το δυνατόν περισσότερη χρήση<br />
λογισμικού και δεδομένων που να διατίθενται ελεύθερα, κι ακόμη καλύτερα, με συνεισφορά του<br />
οποιουδήποτε το επιθυμεί (ανοικτός κώδικας, ανοικτά δεδομένα). Αυτό ήταν περισσότερο<br />
επιδιωκόμενο στο κομμάτι των στοιχείων που συμμετέχουν άμεσα στην λειτουργία (π.χ. web server),<br />
και δευτερευόντως στο κομμάτι που αφορά τα εργαλεία ανάπτυξης.<br />
Ένας κύριος λόγος αυτής της επιδίωξης ήταν να μπορεί να λειτουργήσει η εφαρμογή στην<br />
πραγματικότητα, ώστε το προϊόν της παρούσας Μεταπτυχιακής Διπλωματικής Εργασίας να είναι<br />
κάτι χρήσιμο, χωρίς να απαιτείται κάποιο σημαντικό κόστος, είτε για την αγορά λογισμικού, είτε για<br />
την αγορά δεδομένων. Ένας άλλος κύριος λόγος ήταν το να αποκτηθεί γνώση σχετικά με την<br />
ανάπτυξη ανοικτού λογισμικού και δεδομένων, δηλαδή τις διαδικασίες που πραγματοποιούνται για<br />
την λήψη αποφάσεων, τον συντονισμό της εργασίας, την ενημέρωση των μελών μίας κοινότητας<br />
κ.α..<br />
6.1.1 Java.<br />
Πρόκειται για ένα σύνολο προϊόντων λογισμικού και προδιαγραφών από την<br />
Sun Microsystems, η οποία είναι πλεόν θυγατρική εταιρεία της Oracle.<br />
Επιτρέπει την ανάπτυξη εφαρμογών οι οποίες μπορούν να λειτουργήσουν<br />
ανεξάρτητα πλατφόρμας, σε ένα πολύ μεγάλο εύρος συσκευών, όπως<br />
personal computers, servers, κινητά τηλέφωνα, και μικροσυσκευές. Αυτό<br />
είναι δυνατόν λόγω του ότι η εκτέλεση του κώδικα δεν πραγματοποιείται<br />
άμεσα από τον υπολογιστή, αλλά μέσω του Java Virtual Machine (JVM).<br />
O compiler της Java, ο οποίος περιέχεται στο Java Development Kit (JDK), παράγει έναν ενδιάμεσο<br />
κώδικα, τον Java bytecode, ο οποίος είναι ανεξάρτητος της πλατφόρμας εκτέλεσης, και ο οποίος<br />
μετασχηματίζεται σε εκτελέσιμη μορφή με τον JIT (Just-in-time) compiler του Java Runtime<br />
Environment (JRE). Ο τελευταίος μετασχηματισμός γίνεται on the fly, δηλαδή την στιγμή της<br />
εκτέλεσης.<br />
Ο κύριος λόγος μάλιστα ανάπτυξης της Java στην αρχή ήταν αυτή ακριβώς η δυνατότητα. Σο να<br />
μαθαίνει κάποιος μόνο μία γλώσσα, και να γράφει έναν κώδικα που να μπορεί να εκτελείται από ένα<br />
112
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
μεγάλο εύρος συσκευών, ιδίως από αυτές χωρίς μεγάλη επξεργαστική ισχύ και απαιτήσεις, όπως π.χ.<br />
είναι οι οικιακές συσκευές, ήταν ένα πολύ ζητούμενο της βιομηχανίας, αφού περιόριζε σημαντικά το<br />
κόστος.<br />
ήμερα η Java, λόγω της σύνδεσής της με τον web server από τα μέσα της δεκαετίας του 1990,<br />
χρησιμοποείται στην πλειοψηφία των εφαρμογών που βρίσκονται στην πλευρά του server. Λόγω της<br />
ευελειξίας που παρέχει το web, οι επιχειρήσεις και οι οργανισμοί έχουν μετατοπίσει τις εσωτερικές<br />
τους εφαρμογές σε περιβάλλον client-server, με αποτέλεσμα να έχει οφεληθεί σημαντικότατα η<br />
Java, χρησιμοποιούμενη πλεον ως η γλώσσα ανάπτυξης εταιρικών εφαρμογών.<br />
Βέβαια, η οφέλεια προέρχεται και από την ανάπτυξη του internet ως μέσο για πλήθος νέων<br />
εφαρμογών προς πελάτες, όπως είναι π.χ. τα online καταστήματα, οι αγορές εισιτηρίων, κ.α., για τις<br />
οποίες εφαρμογές, και πάλι στην πλευρά του server χρησιμοποιείται κατά κανόνα η Java.<br />
Λόγω αυτού του τρόπου λειτουργείας, η Java δεν διαθέτει αρκετά στοιχεία low-level, όπως είναι οι<br />
pointers, κι έχει ένα πολύ απλό μοντέλο μνήμης, στο οποίο κάθε αντικείμενο τοποθετείται στο heap<br />
και όλες οι μεταβλητές τύπου object είναι αναφορές. Η διαχείριση μνήμης γίνεται από το JVM με<br />
χρήση ενός ολοκληρωμένου ενσωματωμένου μηχανισμού.<br />
Η Java παρέχεται σε διάφορες εκδοχές, όπως<br />
Java Card, μία τεχνολογία που επιτρέπει μικρές Java εφαρμογές (applets) να τρέχουν με<br />
ασφάλεια σε έξυπνες κάρτες (smart cards) και αντίστοιχες συσκευές.<br />
Java ME (Micro Edition), η οποία έχει κάποια διαφορετικά set βιβλιοθηκών, έτσι ώστε να<br />
εξασφαλίζουν ότι δεν θα πρόκυψει χρήση υπερβολικά μεγάλων ποσοτήτων μνήμης.<br />
Java SE (Standard Edition), η οποία αποτελεί το πακέτο γενικής χρήσης, όπως π.χ. σε<br />
desktop υπολογιστές.<br />
Java EE (Enterprise Edition), η οποία αποτελεί ένα υπερσύνολο της SE, με επιπλέον<br />
διάφορα χρήσιμα APIs για την ανάπτυξη client-server εφαρμογών.<br />
Περισσότερα στοιχεία για την Java μπορεί κανείς να βρει στη διεύθυνση: www.java.com.<br />
113
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.1.2 Eclipse.<br />
To Eclipse είναι ένα περιβάλλον ανάπτυξης λογισμικού για<br />
διάφορες γλώσσες προγραμματισμού, συνδυάζονντας ένα<br />
ολοκληρωμένο περιβάλλον ανάπτυξης (Integrated<br />
Development Environment – IDE) κι ένα σύστημα<br />
πρόσθετων plug-ins. Ενδεικτικά, το Eclipse μπορεί να<br />
χρησiμοποιηθεί για την αν ανάπτυξη εφαρμογών σε γλώσσες<br />
όπως η Java, η C, η C++, η PHP, η Perl, η Python, κ.α.. Πρόκειται για λογισμικό ανοικτού κώδικα.<br />
Προέρχεται από την γενιά IDE της IBM με την ονομασία VisualAge, και η πιό συχνή χρήση αφορά<br />
την ανάπτυξη εφαρμογών Java με την χρήση των Java Development Tools (JDT). Οι δυνατότητες<br />
είναι επεκτάσιμες τοποθετώντας κατάλληλα πρόσθετα για ένα μεγάλο εύρος θεμάτων. Με την<br />
εξαίρεση μάλιστα ενός μικρού run-time kernel, οτιδήποτε στο Eclipse είναι στην πραγματικότητα<br />
ένα plug-in.<br />
Πρόκειται για λογισμικό ανοικτού κώδικα, και το επίσημο site είναι στην διεύθυνση: www.eclipse.org.<br />
6.1.3 Apache Subversion.<br />
υνήθως αναφέρεται ως SVN, και είναι ένα σύστημα<br />
διαχείρισης εκδόσεων λογισμικού. Με την βοήθειά του<br />
είναι δυνατόν να διατηρούνται διάφορες εκδόσεις<br />
αρχείων, που μπορούν να αφορούν π.χ. πηγαίο κώδικα, ιστοσελίδες κ.α.. Πρόκειται δηλαδή για<br />
λογισμικό που ανήκει στην κατηγορία Software Configuration Management (SCM).<br />
Σα repositories που χρησιμοποιεί μπορούν να είναι είτε βασισμένα στο σύστημα αρχείων, είτε στπ<br />
σχήμα http://host/path access. Σοποθετείται στο Eclipse ως plug-in, και είναι λογισμικό<br />
ανοικτού κώδικα, υπό την γενική άδεια Apache. Σο επίσημο site βρίσκεται στην διεύθυνση:<br />
subversion.apache.org.<br />
114
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.1.4 Apache Maven.<br />
Πρόκειται για προγραμματιστικό εργαλείο για την διαχείριση<br />
projects λογισμικού και την αυτοματοποίηση διαφόρων<br />
εργασιών κατά την φάση της ανάπτυξης (build automation),<br />
δηλαδή π.χ. το compilibg, το packaging του δυαδικού κώδικα, την εκτέλεση δοκιμών, την<br />
εγκατάσταση, ή ακόμα και την δημιουργία τεκμηρίωσης.<br />
πως προδίδει και το όνομά του, ανήκει στο γενικότερο project Apache, και μπορεί θεωρητικά να<br />
χρησιμοποιηθεί για οποιαδήποτε γλώσσα προγραμματισμού. Φρησιμοποιεί ένα Project Object Model<br />
(POM) ώστε να περιγράψει το λογισμικό που αναπτύσσεται, τις εξαρτήσεις του (dependencies) σε<br />
εξωτερικά modules και άλλα συστατικά, όπως επίσης και την σειρά των βημάτων του building.<br />
Σο Maven κατεβάζει δυναμικά τις βιβλιοθήκες Java και τα plug-ins του ιδίου που απαιτούνται, από<br />
ένα ή περισσότερα repositories. Αν και θεωρητικά το σύστημα αρχιτεκτονικής των plug-ins<br />
επιτρέπει την χρήση του για οποιαδήποτε γλώσσα προγραμματισμού, εν τούτοις στην πράξη<br />
χρησιμοποιείται σχεδόν αποκλειστικά για την Java. Σο ίδιο το Maven γίνεται πολύ εύκολα plug-in στο<br />
περιβάλλον του Eclipse.<br />
Περισσότερα στοιχεία μπορεί να βρει κανείς στο site του project, το οποίο είναι στην διεύθυνση:<br />
http://maven.apache.org.<br />
6.1.5 Apache Tomcat.<br />
Σο Apache Tomcat (ή Jakarta Tomcat) είνα ένας servlet container<br />
ανοικτού κώδικα, ο οποίος έχει αναπτυχθεί από το Apache Software<br />
Foubdation. Εφαρμόζει τόσο την Java Servlet όσο καο την<br />
JavaServer Pages (JSP) προδιαγραφή της Sun Microsystems, και<br />
παρέχει ένα αμιγώς Java περιβάλλον HTTP web server περιβάλλον για<br />
την εκτέλεση κώδικα Java. Η παραμετροποίηση του server είναι<br />
δυνατή είτε μέσω εργαλείων επιλογών, είτε με την επεξεργασία XML αρχείων.<br />
O servlet container του Tomcat ονομάζεται ‗Catalina‘, ενώ το ‗Coyote‘ είναι ο HTTP connector, ο<br />
οποίος υποστηρίζει τo HTTP 1.1 πρωτόκολλο για τον web server ή τον application container. Σο<br />
Coyote παρακολουθεί ένα συγκεκριμένο TCP Port για εισερχόμενες συνδέσεις, και προωθεί το<br />
αίτημα στο Tomcat Engine για την επεξεργασία και την αποστολή πίσω μίας απάντησης στον<br />
115
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
αιτούντα. Σο Jasper 2 είναι το JSP Engine του Tomcat (από την έκδοση 5.x κι έπειτα), που αποτελεί<br />
μία υλοποίηση της προδιαγραφής JavaServer Pages 2.0 της Sun Microsystems. Σο Jasper αναλύει<br />
τα JSP αρχεία ώστε να τα κάνει compiling σε κώδικα Java σαν servlets, τα οποία μπορεί να τα<br />
χειριστεί το Catalina. Κατά την εκτέλεση, το Jasper εντοπίζει αλλαγές στα JSP αρχεία και τα κάνει<br />
ξανά compiling.<br />
Περισσότερες πληροφορίες μπορεί κανείς να βρεί στην web διεύθυνση: http://tomcat.apache.org.<br />
6.1.6 Apache HTTP Server.<br />
Σο Apache HTTP Server (ή σκέτο Apache) είναι ένα λογισμικό web server το οποίο αναπτύσεται και<br />
συντηρείται από μία ανοικτή κοινότητα developers, την Apache Software Foundation. Σο λογισμικό<br />
είναι διαθέσιμο για μία μεγάλη ποικιλία λειτουργικών συστημάτων, αν και κυρίως εγκαθίσταται σε<br />
συστήματα τύπου Unix. ύμφωνα με τις πιο πρόσφατες εκτιμήσεις, το Apache ήταν ο server για το<br />
60% των web sites, και περίπου των 2/3 από τα 1000000 sites με την μεγαλύτερη επισκεψιμότητα.<br />
Διαθέτει μεγάλο πλήθος χαρακτηριστικών και λειτουργιών, πολλά από τα οποία έχουν υλοποιηθεί ως<br />
compiled modules τα οποία επεκτείνουν την κύρια λειτουργικότητα. Σα modules αυτά μπορούν να<br />
αφορούν από υποστήριξη γλωσσών προγραμματισμού στην πλευρά του server, μέχρι συστήματα<br />
ασφαλείας. Η δυνατότητα virtual hosting επιτρέπει σε μία εγκατάσταση του server να εξυπηρετεί<br />
πολλά διαφορετικά domains και sites.<br />
Η απόδοση του Apache HTTP Server είναι ιδιαίτερα υψηλή, καθώς βασίζεται σε μία αρχιτεκτονική<br />
όπου παρέχονται Modules Πολυεπεξεργασίας (MPMs), τα οποία επιτρέπουν στον server να τρέχει σε<br />
διάφορες καταστάσεις, έτσι ώστε να ταιριάζει καλύτερα στην εκάστοτε υποδομή και να την αξιοποιεί<br />
περισσότερο.<br />
Περισσότερες πληροφορίες μπορεί κανείς να βρει στην διεύθυνση: http://httpd.apache.org.<br />
6.1.7 AlivePDF.<br />
Πρόκειται για μία Open Source βιβλιοθήκη για την εκτύπωση από την Actionscript 3 απευθείας σε<br />
PDF αρχεία. Επιτρέπει λεπτομερή χειρισμό του κειμένου, όμως δυστυχώς δεν διαχειρίζεται ορθά την<br />
εκτύπωση των γραφικών αντικειμένων, καθώς βείσκεται ακόμη σε πολύ πρωίμη μορφή.<br />
116
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Δεν υπάρχουν πολλές πληροφορίες διαθέσιμες προς το παρόν, μπορεί όμως κανείς να βρει κάποια<br />
επιπλέον στοιχεία στην διεύθυνση: http://alivepdf.bytearray.org.<br />
6.1.8 Open Street Map (OSM).<br />
Πρόκειται για Project που αφορά την δημιουργία ενός διανυσματικού χάρτη για ολόκληρο τον<br />
κόσμο, με την εθελοντική συμβολή των χρηστών. Περισσότερες πληροφορίες για το OSM δίνονται<br />
στο 5.2.2, μιας που χρησιμοποιήθηκε ως πηγή για τα δεδομένα του οδικού δικτύου και την<br />
δημιουργία του γράφου.<br />
6.1.9 PostgreSQL.<br />
To PostgreSQL είναι ένα αντικειμενοσχεσιακό σύστημα<br />
διαχείρισης βάσης δεδομένων (object-relational database<br />
management system [ORDBMS]). Διατίθεται κάτω από μία MIT-<br />
style άδεια και είναι λογισμικό ανοικτού κώδικα.<br />
Σο PostgreSQL προέρχεται από το project Ingres του<br />
πανεπιστημίου Berkeley, εξελίσσοντας την ιδέα πάνω σε έναν νέο<br />
κώδικα. Η πρώτη εμφάνιση έγινε το 1985. Έπειτα από μία<br />
διακοπή που πραγματοποίηθηκε το 1993, μετά την έκδοση 4, η εξέλιξη του PostgreSQL<br />
πραγματοποιήθηκε ως open source. H ονομασία PostgreSQL (η αρχική ήταν Postgres) δόθηκε το<br />
1996, έτσι ώστε να εμφανίζεται η υποστήριξη της SQL.<br />
To PostgreSQL υποστηρίζει Procedural γλώσσες (pgSQL, Tcl, Perl, Python) , διάφορα είδη<br />
ευρετηρίων (B+-tree, hash, GiST, GiN, και οριζόμενα από τον χρήστη), όπως επίσης και Εxpression<br />
και Partial ευρετήρια. τα Expression ευρετήρια χρησιμοποιείται η τιμή μιάς συνάρτησης αντί της<br />
τιμής κάποιας στήλης, ενώ στα Partial ευρετήρια χρησιμοποιείται μία συνάρτηση WHERE έτσι ώστε<br />
το ευρετήριο να αφορά τμήμα μόνο του Πίνακα.<br />
Ένα άλλο χαρακτηριστικό του PostgreSQL είναι η υποστήριξη triggers για τα διάφορα συμβάντα που<br />
αφορούν πίνακες (όχι όμως για αυτά που αφορούν views), όπως επίσης το σύστημα Multi-Version<br />
117
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Concurrency Control (MVCC) το οποίο δίνει σε κάθε χρήστη ένα στιγμιότυπο της βάσης δεδομένων,<br />
επιτρέποντας να γίνονται έτσι αλλαγές που δεν είναι ορατές στους άλλους χρήστες, παρά μόνο<br />
έπειτα από ένα transaction. Με τον τρόπο αυτό περιορίζεται η αναγκαιότητα των read locks.<br />
To PostgreSQL υποστηρίζει μία μεγάλη ποικιλία από τύπους δεδομένων, επιτρέποντας στους χρήστες<br />
την δημιουργία πρόσθετων, δικών τους τύπων δεδομένων. Ένα τέτοιο παράδειγμα ανάπτυξης<br />
πρόσθετων τύπων δεδομένων είναι το Project PostGIS, όπου υποστηρίζονται διάφοροι τύποι<br />
δεδομένων σχετικοί με χωρικά στοιχεία, όπως επίσης και ανάλογες συναρτήσεις.<br />
Σο administration γίνεται μέσα από διάφορα front-ends ανοικτού κώδικα, με το ποιό γνωστό από<br />
όλα να είναι το pgAdmin, το οποίο είναι διαθέσιμο σε πάρα πολλές γλώσσες για τα δημοφιλέστερα<br />
λειτουργικά συστήματα.<br />
Περισσότερες πληροφορίες για το PostgreSQL μπορεί κανείς να βρει στην εξής διέυθυνση:<br />
http://www.postgresql.org.<br />
6.1.10 Google Maps – Google Maps API.<br />
Σο Google Maps είναι μία υπηρεσία της Google γνωστή σχεδόν σε όλους σήμερα, η οποία παρέχει<br />
χάρτες και δορυφορικούς ή αερο- ορθοφωτοχάρτες για το σύνολο του πλανήτη. Επιπλέον των<br />
χαρτών όμως, η υπηρεσία συμπεριλαμβάνει την τεχνολογία για την χαρτογραφική υποστήριξη<br />
διαφόρων εφαρμογών, μέσα από το Google Maps API.<br />
118
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 38: Σο κέντρο της Αθήνας, όπως φαίνεται στον οδικό χάρτη του Google Maps.<br />
Η υπηρεσία παρέχεται δωρεάν για μη εμπορική χρήση από κάποιο συγκεκριμένο domain, για το<br />
οποίο αφού δηλωθεί, παραχωρείται ένα αλφαριθμητικό κλειδί-ταυτότητα. Επίσης, μέχρι αυτή την<br />
στιγμή δεν υπάρχουν διαφημίσεις, αλλά υπάρχει η επιφύλαξη για την εισαγωγή τους.<br />
Λόγω της μεγάλης πληρότητας και ακρίβειας τον δεδομένων που περιέχουν, οι χάρτες της Google<br />
έχουν γίνει αυτή τη στιμή οι ευρύτερα διαδεδομένοι διαδικτυακοί χάρτες. ε αυτό έχουν βοηθήσει<br />
και παράγοντες βέβαια όπως η αξιοπιστία της υπηρεσίας, η παροχή των πληροφοριών σε πάρα<br />
πολλές γλώσσες, αλλά και η προσθήκη συνεχώς νέων θεμάτων, όπως είναι π.χ. χάρτες<br />
κυκλοφοριακών συνθηκών.<br />
Ιδιαίτερα έχει βοηθήσει η ύπαρξη του Google Maps API, το οποίο έχει επιτρέψει την δημιουργία<br />
πολυάριθμων εφαρμογών ανά τον κόσμο, με χρήση των Google Maps ως υπόβαθρο. Με τα εργαλεία<br />
που παρέχονται μπορεί κανείς να δημιουργήσει σχετικά εύκολα μία εφαρμογή, της οποίας ο χάρτης<br />
και οι λειτουργίες του να είναι ήδη οικία στο μεγαλύτερο ποσοστό των χρηστών. Σο Google Maps API<br />
παρέχεται σε έκδοση για JavaScript, αλλά και για Adobe Flash, όπου μάλιστα μπορεί να γίνει μίξη με<br />
τα στοιχεία του Adobe Flash.<br />
119
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.1.10.1 Κύρια τοιχεία του API.<br />
Σο κύριο αντικείμενο του Google Maps API είναι το map, πάνω στο οποίο τοποθετούνται όλα τα<br />
υπόλοιπα αντικείμενα-παιδιά. Μια βελτιωμένη εκδοχή του map είναι το map3D, το οποίο παρέχει<br />
επιπλέον την δυνατότητα για χάρτες με τρισδιάστατη οπτική. Σο αντικείμενο map έχει ιδιότητες που<br />
καθορίζουν το μέγεθος, το κεντράρισμα, την κλίμακα, την γλώσσα απεικόνισης, όπως επίσης τα είδη<br />
χάρτη και ποιά από αυτά είναι θα είναι επιλέξιμα από τον χρήστη (π.χ. χάρτης, δορυφορικός<br />
ορθοφωτοχάρτης, κ.α.).<br />
Σο map δέχεται επάνω του διάφορα χειριστήρια, όπως για τον προσανατολισμό, την κλίμακα, ή την<br />
απεικόνιση ενός ευρύτερου χάρτη μικρής κλίμακας. Σο αντικείμενο map μπορεί να αντιδρά σε<br />
διάφορα συμβάντα (π.χ. click του χρήστη σε κάποιο σημείο), κι ανάλογα να ενεργοποιούνται οι<br />
σχετικές ρουτίνες της εφαρμογής.<br />
Αντικείμενα-παιδιά του map μπορούν να είναι διάφορα επιθέματα, όπως Markers για σημεία,<br />
Polylines για γραμμικά στοιχεία, και Polygons για επιφανειακά στοιχεία, ή ακόμη και εικόνες (ground<br />
overlays). Καθέ ένα από αυτά έχει ένα πλήθος από ιδιότητες (σχήμα, μέγεθος, χρώμα, κτλ), και<br />
μπορεί να υπάρχει χειρισμός των συμβάντων, όπως π.χ. το click του χρήστη επάνω τους.<br />
Ένα ιδαίτερα χρήσιμο στοιχείο, το οποίο μπορεί να ανήκει σε κάποιο από τα υπόλοιπα (Map,<br />
Markers, Polylines, Polygons) είναι το InfoWindow. Πρόκειται για ένα συννεφάκι στην πιο<br />
συνηθισμένη του μορφή, το οποίο μπορεί να περιέχει μέσα του περιέχομενο από απλό κέιμενο και<br />
HTML, μέχρι άλλα αντικείμενα, ακόμη και Flash.<br />
Περισσότερες και αναλυτικές πληροφορίες μπορεί κανείς να βρει στην διεύθυνση:<br />
http://code.google.com/intl/en/apis/maps/documentation/flash.<br />
6.1.11 Google Geocoding API.<br />
To Google Geocoding είναι μία Web Τπηρεσία που παρέχεται από την Google και η οποία μπορεί να<br />
μετατρέπει διευθύνσεις σε γεωγραφικές συντεταγμένες, αλλά και το αντίστροφο. Σο API δίνει την<br />
δυνατότητα πρόσβασης σε έναν geocoder μέσω ενός HTTP request.<br />
120
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Η χρήση της Τπηρεσίας είναι δωρεάν κι ελεύθερη από διαφημίσεις μέχρι αυτή την στιγμή, αρκεί τα<br />
queries να μην ξεπεράσουν τα 2500/ημέρα για κάποιον χρήστη, ή να μην γίνονται σε πολύ γρήγορο<br />
ρυθμό. Απαραίτητη προϋπόθεση της άδειας χρήσης της υπηρεσίας είναι τα αποτελέσματα να<br />
σχετίζονται με την εμφάνισή τους σε έναν Google Map.<br />
Περισσότερες πληροφοριές μπορεί κανείς να βρει στην διεύθυνση:<br />
http://code.google.com/apis/maps/documentation/geocoding/#Geocoding<br />
6.1.12 Google Directions API.<br />
To Google Directions API είναι και αυτό μία υπηρεσία της Google η οποία βρίσκει διαδρομές μεταξύ<br />
τοποθεσιών, με ερωτήματα στην μορφή HTTP. Οι τοποθεσίες είναι δυνατόν να δίνονται είτε<br />
περιγραφικά, σαν κείμενο, οπότε γίνεται και geocoding, είτε σε μορφή γεωγραφικών συντεταγμένων.<br />
Η υπηρεσία προσφέρεται δωρεάν, με ανώτατο όμως όριο τα 2500 ερωτήματα ανά ημέρα, με<br />
μέγιστο τα 8 ενδιάμεσα σημεία ανά ερώτημα. ε περιπτώση μεγαλύτερης κίνησης, τότε μπορεί<br />
κάποιος να αγοράσει το Google Maps Premier, οπότε τα ερωτήματα μπορεί να είναι μέχρι 100000<br />
την ημέρα, με μέγιστο τα 23 ενδιάμεσα σημεία ανά ερώτημα. πως και στην περίπτωση του<br />
Geocoding API, η χρήση επιτρέπεται μόνο όταν γίνεται απεικόνιση των αποτελεσμάτων σε χάρτη της<br />
Google.<br />
Περισσότερες πληροφοριές μπορεί κανείς να βρει στην διεύθυνση:<br />
http://code.google.com/apis/maps/documentation/directions<br />
6.1.13 Adobe Flex 4, Adobe Flash Builder 4.<br />
Σο Flex της εταιρίας Adobe είναι ένα πλαίσιο open source, με το οποίο οι<br />
προγραμματιστές μπορούν να δημιουργήσουν web εφαρμογές που να<br />
επιτρέπουν στους χρήστες την διαχείριση δεδομένων με ιδιαίτερα<br />
αποτελεσματικό τρόπο. Ένα σημαντικό πλεονέκτημα είναι ότι οι εφαρμογές μπορούν να τρέχουν<br />
χωρίς πολλές τροποποιήσεις σε έναν μεγάλο αριθμό διαφορετικών συσκευών και λειτουργικών<br />
συστημάτων. Σο τρέξιμο των εφαρμογών μπορεί να γίνεται είτε μέσα σε κάποιον από τους γνωστούς<br />
121
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
web browser μέσω του Flash Player, είτε αυτόνομα, μέσα από το Adobe AIR το οποίο παρέχεται<br />
δωρεάν.<br />
Σο Flex παρέχει μία γλώσσα προγραμματισμού κι ένα μοντέλο που βασίζεται σε διαδεδομένα<br />
πρότυπα. Η γλώσσα ονομάζεται MXML, και όπως μαρτυρά το όνομά της βασίζεται στην XML για να<br />
περιγράψει δηλωτικά τα συστατικά του user interface και των συμπεριφορών (π.χ. listboxes και<br />
mouseover αντίστοιχα). Επιπλέον, η γλώσσα ActionScript 3.0 είναι μία αντικειμενοστραφής γλώσσα<br />
για την δημιουργία της «λογικής» στην εφαρμογή. Σο Flex είναι δυνατόν να επεκτείνεται, κι έτσι αυτή<br />
την στιγμή υπάρχουν πάνω από 100 στοιχεία για το user interface.<br />
Ένα πολύ σημαντικό στοιχείο του Flex είναι η δυνατότητα να ορίζονται προκαθορισμένα states.<br />
Κάθε state αντιστοιχεί σε κάποιες ιδιότητες των αντικειμένων του user interface. Έτσι, είναι πολύ<br />
εύκολο να δημιουργήσει κανείς μία εφαρμογή όπου κάποια διακριτά στάδια της λειτουργίας (π.χ.<br />
είσοδος δεδομένων, παρουσίαση αποτελεσμάτων) θα είναι σχεδόν πλήρως ανεξάρτητα από την<br />
άποψη των widgets, και η εναλλαγή των καταστάσεων αυτών θα γίνεται γρήγορα και με μία μόνο<br />
γραμμή κώδικα, χωρίς να χρειάζεται να ορίζονται συνεχώς οι ιδιότητες των αντικειμένων (π.χ.<br />
εμφάνιση, θέση, μέγεθος, ενεργό ή όχι, κτλ).<br />
Εικόνα 39: τιγμιότυπο από το Adobe Flash Builder κατά τθν ανάπτυξθ τθσ εφαρμογισ.<br />
Σο Adobe Flash Builder βασίζεται στην λειτουργία του Eclipse, και είναι όπως κι εκείνο ένα εργαλείο<br />
ανάπτυξης εφαρμογών, αλλά για το Flex. Προσφέρει μεταξύ άλλων δυνατότητες debugging, οπτικής<br />
122
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
σχεδίασης του layout του user interface, κα.. Ιδιαίτερα σημαντικό στοιχείο είναι ότι όλες οι<br />
εφαρμογές της Adobe συνεργάζονται σε μεγάλο βαθμό μεταξύ τους, οπότε στην ουσία μπορούν<br />
διάφορες εφαρμογές να συνδυαστούν και να αποτελούν όλες μαζί ένα ολοκληρωμένο πακέτο<br />
εργαλείων.<br />
Ενδεικτικά αναφέρονται η εφαρμογή LiveCycle Data Services, ένας server συνεργαζόμενος εύκολα<br />
με τα υπόλοιπα λογισμικά της εταιρείας, έτσι ώστε να παρέχει δεδομένα σε client εφαρμογές, το<br />
Dreamweaver, εφαρμογή για τον σχεδιασμό ιστοσελίδων, τo Adobe Flash, για την δημιουργία Flash<br />
<strong>An</strong>imations και εφαρμογών, και το Flash Catalyst, με την οποία διάφορα αρχεία εικόνων<br />
μετατρέπονται σε αντικείμενα web με αλληλεπίδραση.<br />
Θα πρέπει να σημειωθεί όμως ότι στο Flash Builder η υποστήριξη των HTTP συνδέσεων είναι μεν<br />
αρκετά πλούσια σε δυνατότητες, όπως το ότι μπορούν να ανιχνεύονται σε μεγάλο βαθμό οι δομές<br />
των JSON και των XML αποκρίσεων και να δημιουργούνται κατάλληλες οντότητες, όμως δεν είναι<br />
πλήρως ολοκληρωμένες. Έτσι, σε περιπτώσεις που εμφανίζονται λάθη ή προβλήματα π.χ., δεν<br />
εμφανίζεται κανένα μήνυμα λάθους, ούτε καν απλώς ως επισήμανση χωρίς αναφορά για το είδος<br />
του προβλήματος. Αυτό ήταν κάτι που δυσκόλεψε ιδιαίτερα την ανάπτυξη της Εφαρμογής της<br />
Εργασίας.<br />
Περισσότερες πληροφορίες για όλα τα προϊόντα μπορεί κανείς να βρει στο site της εταιρείας, στην<br />
διεύθυνση: www.adobe.com.<br />
6.1.14 OpenTripPlanner (OTP).<br />
Ο Open Trip Planner (OTP) είναι ένα Project ανοικτού κώδικα σχετικά με την Δημόσια υγκοινωνία,<br />
το οποίο έχει την συνεισφορά μικρότερων Projects και φορέων, όπως είναι ο OpenPlans, το<br />
OneBusAway, το FivePoints, το GraphServer, και το byCycle.<br />
Η αδειοδότηση του OTP γίνεται κατά GNU LGPL, κάτι που σημαίνει ότι οποιοσήποτε μπορεί να τον<br />
αντιγράψει, να τον τροποποιήσει και να τον διανείμει, αρκεί να περάσει τα δικαιώματα αυτά και<br />
στους χρήστες του. Η απαίτηση αυτή δεν ισχύει για κώδικα που απλώς χρησιμοποιεί τον OTP.<br />
123
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Ο OTP σαν συνολικό project δεν αφορά μόνο την μηχανή routing, αλλά ένα πλήθος λειτουργιών, οι<br />
οποίες περιγράφονται στη συνέχεια. την πραγματικότητα είναι μια ολοκληρωμένη λύση για Journey<br />
Planner, αν και στην παρούσα υλοποίηση δεν χρησιμοποιήθηκαν τα τμήματά του που αφορούν το<br />
user interface.<br />
Σο site www.opentripplanner.org αφορά την ανάπτυξη του project.<br />
6.1.15 Βασικοί υμμέτοχοι.<br />
Ο OpenPlans είναι μη κερδοσκοπικός οργανισμός τεχνολογίας, ο οποίος<br />
εστιάζει στην ανοικτή διακυβέρνηση, και ο οποίος αναπτύσει λογισμικό<br />
ανοικτού κώδικα για την μετατροπή δεδομένων σε προσβάσιμη και χρήσιμη πληροφορία. Ιδρύθηκε<br />
το 1999, εδρεύει στην New York, και αποτελείται από 50 προγραμματιστές, σχεδιαστές, ειδικούς<br />
πολιτικής, εκπαιδευτές, και δημοσιογράφους. Σο site του οργανισμού βρίσκεται στην εξής<br />
διεύθυνση: www.openplans.org.<br />
Σο OneBusAway πρόκειται για project το οποίο ξεκίνησε από φοιτητές του<br />
Πανεπιστημίου της Washington, και παρέχει υποστήριξη στην βελτίωση της<br />
χρηστικότητας των Μέσων Μαζικής Μεταφοράς. Αυτή την στιγμή παρέχει με διάφορους τρόπους<br />
(web, τηλέφωνο, SMS) πληροφόρηση για τα δρομολόγια και την πραγματικού χρόνου κίνηση των<br />
οχημάτων αρκετών Υορέων ΜΜΜ στην περιοχή Puget Sound. Περισσότερες πληροφορίες μπορεί<br />
κανείς να βρει στη διεύθυνση: www.onebusaway.org.<br />
Σο FivePoints είναι Project το οποίο αφορά την ανάπτυξη λογισμικού ανοικτού<br />
κώδικα με εστίαση σε εργαλεία για μετακίνηση πεζή, με ποδήλατο, και με<br />
ΜΜΜ. Ξεκίνησε το 2004, και σήμερα προσφέρει υπηρεσίες στην πόλη της Atlanta, με επέκταση σε<br />
άλλες πόλεις να πρόβλεπεται εντός σύντομου χρόνου. Σο site του Project βρίσκεται στην διεύθυνση:<br />
www.fpdev.org.<br />
Σο GraphServer είναι και αυτό project το οποίο αφορά ανάπτυξη λογισμικού<br />
ανοικτού κώδικα για multi modal trip planning. Δυστυχώς δεν υπάρχουν<br />
πάρα πολλά στοιχεία σχετικά με το Project, του οποίου το site βρίσκεται στην εξής διεύθυνση:<br />
bmander.github.com/graphserver. τα πρώτα βήματα, η υλοποίηση της παρούσας εφαρμογής<br />
βασίστηκε στο GraphServer.<br />
124
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σο byCycle παρέχει μία διαδικτυακή εφαρμογή για τον σχεδιασμό διαδρομών<br />
που θα πραγματοποιηθούν με ποδήλατο, κι αφορά αυτή τη στιγμή τις<br />
μητροπολιτικές περιοχές του Portland, του Milwaukee, και του Pittsburgh. Ο κώδικας της<br />
εφαρμογής είναι ανοικτός, βασίζεται σε DHTML και AJAX, αλλά δυστυχώς δεν υπάρχουν κι εδώ<br />
περισσότερα στοιχεία διαθέσιμα. Σο site της εφαρμογής είναι στην διεύθυνση: bicycle.org.<br />
6.1.16 Κύρια Φαρακτηριστικά Σου OTP.<br />
Ο OTP αναπτύσσεται σε ένα ολοκληρωμένο σχεδιαστή ταξιδίων με ΜΜΜ, ποδήλατο, και πεζή. Δεν<br />
αφορά μόνο το τμήμα της μηχανής εύρεσης, αλλά και τα τμήματα του web περιβάλλοντος χρήστη<br />
και του περιβάλλοντος διαχειριστή. Ο OTP είναι δυνατόν να προτείνει ταξίδια που μπορεί να<br />
επιλεγούν να γίνουν πεζή, με ΜΜΜ (Λεωφορεία, Σρένα), με ποδήλατο, ή με συνδυασμούς αυτών.<br />
Εικόνα 40: Φαρακτηριστικό στιγμιότυπο από τις επιλογές του χρήστη στο γραφικό περιβάλλον που<br />
συμπεριλαμβάνει ο OTP.<br />
Σο περιβάλλον του χρήστη παρέχει πληροφορίες για την καθοδήγηση, τόσο με βάση το κείμενο, όσο<br />
και με βάση την οπτικοποίηση σε χάρτη. Εάν ο Υορέας των ΜΜΜ διαθέτει στοιχεία σχετικά με την<br />
125
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
προσβασιμότητα σταθμών και οχημάτων από Άτομα Με Ειδικές Ανάγκες, τότε ο OTP μπορεί να<br />
δώσει προτάσεις ταξιδίων που να εξαρτώνται από αυτήν. Επίσης, το περιβάλλον χρήστη που<br />
παρέχεται είναι δυνατόν να διαμορφωθεί αρκετά και εύκολα κατά κάποιον επιθυμητό τρόπο, έτσι<br />
ώστε να ταιριάξει π.χ. με την εικόνα που έχει οικία ο χρήστης για τα σύμβολα, τους τρόπους<br />
απεικόνισης, κ.α., όπως αυτά χρησιμοποιούνται από τον Υορέα σε χάρτες, στάσεις, οχήματα, κτλ.<br />
Εικόνα 41: Φαρακτηριστικό στιγμιότυπο με στοιχεία καθοδήγησης από το web interface που<br />
συμπεριλαμβάνει ο OTP.<br />
Η βελτιστοποίηση των ταξιδιών μπορεί να γίνει είτε για τον μικρότερο χρόνο, είτε για τις λιγότερες<br />
μετεπιβιβάσεις, ενώ στην περίπτωση χρήσης ποδηλάτου μπορεί να γίνει επιλογή βελτιστοποίησης για<br />
την μεγιστοποίηση της ασφάλειας, όπως αυτή αντιπροσωπεύεται από τα στοιχεία του οδικού<br />
δικτύου. την περίπωση αυτή μάλιστα μάλιστα, της χρήσης ποδηλάτου, είναι δυνατόν να παρέχεται<br />
η μηκοτομή υψομέτρων της διαδρομής, αρκεί να παρέχονται τα απαραίτητα τοπογραφικά στοιχεία<br />
Αν και σαν γλώσσα χρησιμοποιείται η Αγγλική, εν τούτοις ο OTP έχει αναπτυχθεί με τρόπο ώστε να<br />
επιδέχεται εύκολα διαμόρφωση για λειτουργία και σε άλλες γλώσσες. Μέχρι σήμερα είναι γνωστό<br />
πως υπάρχουν εκδόσεις στα Ισπανικά, τα Πολωνικά, και τα Ινδικά. Η αλλαγή διαμόρφωσης δεν<br />
126
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
αφορά μόνο τη γλώσσα, αλλά και την χρήση μονάδων μέτρησης (m, ή ft), τον τρόπο απεικόνισης<br />
(των ημερομηνιών π.χ.), κτλ..<br />
Ο OTP είναι γραμμένος κατά κόρον σε Java EE, μία δοκιμασμένη πλατφόρμα, η οποία είναι<br />
ανεξάρτητη του υλικού και του λειτουργικού συστήματος, κι επίσης παρέχει, ως modular που είναι,<br />
την δυνατότητα για εύκολη κατανόηση και επέκταση από πολλούς προγραμματιστές. Η καρδιά του<br />
λογισμικού είναι ο αλγόριθμος βασισμένος στον Α* σχετικά με την εύρεση των ταξιδιών, ο οποίος<br />
χρησιμοποιεί contraction hierarchies όσον αφορά τον οδικό δίκτυο, και κάνει χρήση των ακριβών<br />
χρόνων των δρομολογίων για το δίκτυο ΜΜΜ. Σο τελευταίο είναι όπως αναλύεται αλλού ένα κατά<br />
κάποιο τρόπο μειονέκτημα της παρούσας εγαρμογής, λόγω του τρόπου λειτουργίας των ΜΜΜ στην<br />
περιοχή της Αθήνας.<br />
Σο περιβάλλον χρήστη βασίζεται στην λειτουργία με web browser ο οποίος τρέχει JavaScript. Τπό<br />
εξέλιξη βρίσκεται έκδοση του περιβάλλοντος προσαρμοσμένη στις ιδιαιτερότητες των φορητών<br />
συσκευών, όπως είναι τα κινητά τηλέφωνα. Ένα ιδιαίτερα σημαντικό στοιχείο του OTP είναι η ύπαρξη<br />
RESTful API, η οποία δίνει την δυνατότητα για ευκολη δημιουργία ποικίλων εφαρμογών, όπως π.χ.<br />
περιβάλλοντων χρήστη, ή περιβάλλοντων για λειτουργία σε κεντρά εξυπηρέτησης, όπως π.χ. σε<br />
τηλεφωνικά κέντρα φορέων ΜΜΜ.<br />
σον αφορά τα δεδομένα του οδικού δικτύου για την δημιουργία των γράφων που δημιουργεί ο OTP,<br />
αυτά μπορούν να προέρχονται είτε από το OpenStreetMap Project, είτε από ESRI Shape Files.<br />
Τπάρχει επίσης η δυνατότητα χρησιμοποίησης στοιχείων υψομέτρου, από αρχεία NED, τα οποία<br />
αφορούν όμως μόνο τις USA. Σα δεδομένα για το δίκτυο των ΜΜΜ πρέπει να ακολουθούν το<br />
πρώτυπο GTFS (General Transit Feed Specification), το οποίο είναι το de facto πρότυπο που έχει<br />
καθιερωθεί από την Google.<br />
τον παρακάτω πίνακα εμφανίζονται οι εκτιμήσεις για τον απαιτούμενο υπολογιστικό εξοπλισμό<br />
ανάλογα με τον φόρτο και το μέγεθος της περιοχής εξυπηρέτησης.<br />
1000 τετραγωνικά μίλια)<br />
4GB RAM, 1 Core 16GB RAM, 1 Core<br />
4GB RAM, 2+ Cores 16GB RAM, 4+ Cores<br />
Πίνακας 1: Εκτιμήσεις απαιτήσεων του OTP σε υπολογιστικό εξοπλισμό.<br />
127
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.1.17 Σα Σμήματα Που Αποτελούν τον Open Trip Planner.<br />
Ο OTP αποτελείται στην πλήρη εκδοχή του, όπως αναπτύσσεται, από διάφορα τμήματα. Υυσικά,<br />
είναι δυνατόν στις διάφορες υλοποιήσεις με βάση τον OTP να χρησιμοποιηθεί μέρος μόνο των<br />
τμημάτων του πακέτου, και μάλιστα τροποποιημένων, αφού κάτι τέτοιο είναι επιτρεπτό από την<br />
χορηγούμενη άδεια. Σα τμήματα αυτά είναι τα εξής:<br />
6.1.17.1 WEBAPP:<br />
Πρόκειται για το τμήμα του OpenTripPlanner το οποίο παρέχει το Web Interface στους χρήστες. Σο<br />
σημείο αυτό, δηλαδή τα απεικονιζόμενα στοιχεία και ο τρόπος λειτουργίας, είναι εξίσου σηματικό με<br />
το να παρέχονται επιτυχημένες προτάσεις διαδρομών. Ένα δύσχρηστο interface αποτρέπει τους<br />
χρήστες, και η κακή σχεδίασή του είναι ικανή να καταστρέψει την όποια υπόλοιπη καλή υλοποίηση<br />
της εφαρμογής.<br />
την παρούσα Περίπτωση δεν χρησιμοποιήθηκε τελικά το user interface του OpenTripPlanner,<br />
παρόλο που αρχικά είχαν γίνει διάφορες εργασίες και μία υλοποίηση με βάση αυτό, αλλά<br />
δημιουργήθηκε ένα νέο με χρήση του Adobe Flex, το οποίο δίνει δυνατότητα εύκολης αξιοποίησης<br />
των API της Google, κι επιπλέον ένα πολύ πιο καλό οπτικά αποτέλεσμα. Έτσι, στο τμήμα αυτό γίνεται<br />
μια σύντομη μόνο αναφορά.<br />
την παρακάτω εικόνα φαίνεται το interface από την εφαρμογή στην Granada, ως παράδειγμα μιας<br />
τυπικής εφαρμογής.<br />
128
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 42: To User Interface της εφαρμογής του OpenTripPlanner στην Granada. Η οθόνη επιλογής<br />
των παραμέτρων διαδρομής.<br />
Σο κύριο στοιχείο είναι ο χάρτης OpenStreetMap, ο οποίος απεικονίζεται με χρήση των OpenLayers,<br />
με τα συνήθη χειριστήρια (μετακίνηση και αλλαγή κλίμακας). τα αριστερά υπάρχει ένα accordion,<br />
στο οποίο το ένα panel περιέχει τις επιλογές (ή τις απαντήσεις), και το άλλο panel προορίζεται να<br />
περιέχει κάποια στοιχεία copyright και όρων χρήσης.<br />
Εικόνα 43: Οι επιλογές στο τυπικό UI του OTP, από την εφαρμογή στην Grenada.<br />
129
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Παρατηρείται ότι το panel εισαγωγής στοιχείων έχει δύο πεδία για την επιλογή προέλευσης και<br />
προορισμού (η επιλογή των οποίων μπορεί να γίνει και με click στον χάρτη), ένα κουμπί για την<br />
δυνατότητα εναλλαγή τους, την επιλογή για Άφιξη ή Αναχώρηση την χρονική στιγμή που ορίζεται<br />
(σαν DropDownList), την επιλογή ημερομηνίας από ένα calendar, και την επιλογή ώρας από ένα<br />
textbox με stepper για πάνω-κάτω.<br />
Οι υπόλοιπες επιλογές αφορούν τον τρόπο μετακίνησης, την επιθυμητή βελτιστοποίηση, το μέγιστο<br />
μήκος διαδρομής πεζή, και το αν απαιτείται η πρόσβαση από αναπηρικό αμαξίδιο. λες αυτές οι<br />
επιλογές γίνονται από αντίστοιχα DropDownLists.<br />
Αφού ο χρήστης εισάγει τα στοιχεία και κάνει τις επιλογές που θέλει, μετά από σύντομη αναμονή<br />
εμφανίζεται η οθόνη αποτελεσμάτων.<br />
Εικόνα 45: Η οθόνη αποτελεσμάτων στο τυπικό UI<br />
του OTP, από την εφαρμογή στην Grenada.<br />
την οθόνη αποτελεσμάτων, ο χάρτης μετατίθεται,<br />
κεντράρεται, και αλλάζει η κλιμακά του, ώστε να<br />
απεικονίσει το σύνολο της διαδρομής. Η απεικόνιση<br />
γίνεται με μικρά σύμβολο που αναπαριστούν το μέσο<br />
κάθε τμήματος της διαδρομής, και με μία γραμμή<br />
για την διαδρομή μέσα στην πόλη. Μέσα στο panel<br />
των επιλογών στα αριστερά, έχει προστεθεί ένα<br />
Εικόνα 44: Σο tab με την λίστα<br />
αποτελεσμάτων για την πρόταση ταξιδίου.<br />
130
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
επιπλέον tab, κάτω από το οποίο παρέχονται τα τμήματα του προτεινόμενου ταξιδίου, και<br />
περιεχόμενο σε κάθε ένα από αυτά ανάλογα με το μέσο. το τέλος της λίστας παρέχονται<br />
συγκεντρωτικά στοιχεία για την πρόταση, δηλαδή ο χρόνος διαδρομής και η απόσταση που πρέπει<br />
να διανυθεί, ενώ στο πάνω μέρος αναφέρεται ο αριθμός των μετεπιβιβάσεων που απαιτούνται.<br />
το τέλος υπάρχουν κάποιες επιλογές για τα επόμενα βήματα, οι οποίες είναι η εναλλαγή αφετηρίας-<br />
τερματισμού, η επεξεργασία των επιλογών, η εκτύπωση, και η εμφάνιση ενός συνδέσμου για το<br />
αποτέλεσμα. Η λειτουργία της εκτύπωσης δεν είναι ακόμη υλοποιημένη, κι ετσί απλά ανοίγει ένα νέο<br />
παράθυρο στον browser, επαναλαμβάνοντας τα αποτελέσματα. Ο σύνδεσμος είναι το HTTP URL<br />
Request στην εφαρμογή για τις συγκεκριμένες επιλογές, αλλά παρέχονται HTTP URL requests για τις<br />
ίδιες επιλογές και για άλλα site που παρέχουν καθοδήγηση πεζή, όπως αυτό της Google.<br />
λο το UI βασίζεται σε JavaScript, OpenLayers, και τα EXT widgets, όπως επίσης σε css για την<br />
μορφοποίηση. τη συνέχεια δίνονται ενδεικτικά τα αρχεία που αποτελούν το module, το οποίο κι<br />
αυτό παρέχεται από τον Apache Tomcat server.<br />
6.1.17.2 GRAPH-BUILDER:<br />
Πρόκειται για το module το οποίο δημιουργεί το αρχείο γράφου, παίρνοντας σαν δεδομένo εισόδου<br />
για το σύστημα συγκοινωνιώn ένα αρχείο GT Feed. Σα στοιχεία του οδικού δικτύου μπορούν να<br />
εισαχθούν είτε ως στοιχεία OSM, είτε ως Shape Files. To module έχει την δυνατότητα να κατεβάζει<br />
μόνο του τα στοιχεία OSM που αντιστοιχούν στην περιοχή που ορίζεται από το δίκτυο συγκοινωνιών,<br />
αρκεί να του δοθεί η διεύθυνση κάποιου σχετικού server. Επιπλέον, είναι δυνατόν να συμπεριληφούν<br />
στα δεδομένα εισόδου υψομετρικά στοιχεία των USA σε μορφή NED, τα οποία αφορούν την<br />
καθοδήγηση για διαδρομές με ποδήλατο.<br />
131
6.1.17.3 GUI:<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Πρόκειται για module το οποίο επιτρέπει την θέαση/οπτικοποίηση ενός Γράφου, με την εμφάνιση<br />
διαφόρων data και metadata ανάλογα με τις επιλεγμένες κάθε φορά ακμές, τους κόμβους (στάσεις),<br />
ή τις διαδρομές.<br />
Εικόνα 46: Ο Γράφος της Εφαρμογής στο Κέντρο της Αθήνας όπως απεικονίζεται στο module GUI<br />
του OTP. Οι κίτρινες γραμμές αντιστοιχούν σε δρομολόγια των ΜΜΜ, ενώ οι γαλάζιες στο οδικό<br />
δίκτυο.<br />
6.1.17.4 ROUTING:<br />
Πρόκειται για το module που είναι η καρδιά του συστήματος, καθώς είναι η μηχανή για την εύρεση<br />
των ταξιδιών προς πρόταση. Φρησιμοποιώντας contraction hierarchies και τον αλγόριθμο Α*,<br />
αναζητά στον Γράφο τα ταξίδια με βάση τους περιορισμούς και τις άλλες παραμέτρους που του<br />
δίνονται. Οι παράμετροι αφορούν την ημερομηνία και ώρα, τα επιθυμητά μέσα μετακίνησης, την<br />
μέγιστη επιθυμητή απόσταση περπατήματος, τον τρόπο βελτιστοποίησης (πιο γρήγορη διαδρομή, με<br />
τις λιγότερες μετεπιβιβάσεις, ασφαλέστερη διαδρομή), όπως επίσης το αν η ώρα αφορά την<br />
αναχώρηση ή την άφιξη.<br />
132
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Επιπλέον παραμετροποιήσεις, που δεν γίνονται από τον χρήστη, αφορούν π.χ. την ταχύτητα<br />
περπατήματος, το κάτα πόσο πιο επιθυμητή είναι η αναμονή ενός ΜΜΜ από το περπάτημα, ή ποιές<br />
είναι οι ποινές-βάρη για τις μετεπιβιβάσεις. Οι παράμετροι αυτές ρυθμίστηκαν για την παρούσα<br />
εφαρμογή με βάση την εμπειρική αξιολόγηση των αποτελεσμάτων σε διάφορες δοκιμές.<br />
6.1.17.5 UTILS:<br />
Πρόκειται για ένα πολύ μικρό module προς το παρόν, το οποίο δημιουργεί τα αλφαριθμητικά strings<br />
κατά base64 για την οπτικοποίηση των διαδρομών. Είναι δηλαδή ένας polyline encoder.<br />
6.1.17.6 API-WEBAPP:<br />
Ρρόκειται για το API το οποίο παρζχει τθν ςφνδεςθ του OTP με τθν όποια εφαρμογι<br />
δθμιουργίασ ερωτθμάτων και διαχείριςθσ των αποτελεςμάτων. Ρρόκειται για module το<br />
οποίο γίνεται ορατό μζςω του Apache Tomcat Server. Δεν γίνεται εκτενζςτερθ περιγραφι<br />
ςτο ςθμείο αυτό του κειμζνου, κακϊσ υπάρχει λεπτομερισ περιγραφι ςτθν 6.4.5.<br />
6.1.17.7 API-EXTENDED:<br />
Πρόκειται για ένα πρόσθετο API, το οποίο λειτουργεί ως proxy ανάμεσα στην web εφαρμογή και τον<br />
Geoserver. Η λειτουργία του είναι να παρουσιάζονται πάνω στον χάρτη πρόσθετα στοιχεία για το<br />
δίκτυο ΜΜΜ, όπως οι στάσεις, οι γραμμές, και τα επόμενα δρομολόγια από κάθε στάση. την<br />
παρούσα Εφαρμογή δεν χρησιμοποιήθηκε καθόλου, αφού ως υπόβαθρο χρησιμοποιήθηκε το Google<br />
Maps, το οποίο δεν λειτουργεί με openlayers. Ακόμη όμως κι αν δεν είχε συμβεί αυτό, θα ήταν πολύ<br />
δύσκολο να χρησιμοποιηθεί αυτή η πρόσθετη λειτουργία του OpenTripPlanner, αφού:<br />
Σο δίκτυο ΜΜΜ της Αθήνας είναι αρκετά μεγάλο, συνεπώς θα ήταν ιδιαίτερα μεγάλος<br />
φόρτος η μεταφορά των δεδομένων μέσω Internet και η απεικόνισή τους από τα<br />
openlayers. Κάτι τέτοιο θα ήταν πρακτικά εφικτό μόνο αν περιορίζονταν τα στοιχεία,<br />
όπως π.χ. να απεικονίζονταν μόνο οι γραμμές metro.<br />
133
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σο API απαιτεί να έχουν οριστεί οι διαδρομές ως shapes μέσα στο GT Feed (αναλύεται<br />
σε άλλο σημείο). μως αυτό δεν θα μπορούσε να γίνει, για το σύνολο των γραμμών<br />
τουλάχιστον, καθώς δεν υπάρχουν διαθέσιμα σχετικά στοιχεία. Σα στοιχεία του ΟΑΑ<br />
περιέχουν την αλληλουχία των στάσεων μιας γραμμής με τις συντεταγμένες τους, κι<br />
έτσι μπορεί να γίνει χονδρική απεικόνιση με γραμμές που να συνδέουν τις στάσεις<br />
μεταξύ τους. μως, δεν είναι εφικτή η απεικόνιση των γραμμών με λεπτομέρεια πάνω<br />
στο οδικό δίκτυο, αφού δεν είναι καταγεγραμμένη σε αξιοποίησιμη μορφή η σχετική<br />
πληροφορία.<br />
Σο API Extended παρέχεται κι αυτό μέσω του Apache Tomcat. Επειδή δεν χρησιμοποιήθηκε στην<br />
παρούσα εφαρμογή, δεν γίνεται κάποια περαιτέρω περιγραφή.<br />
6.2 Δομή υστήματος.<br />
Σο σύστημα που αφορά την Εφαρμογή που υλοποιήθηκε είναι βασισμένο στη λογική Client-Server.<br />
Κατά αυτήν, υπάρχει ένα κομμάτι που εκτελείται στον υπολογιστή (ή άλλη συσκευή του χρήστη) και<br />
το οποίο επικοινωνεί με τον ή τους servers για την υποστήριξή του. Έτσι, το client κομμάτι μπορεί να<br />
δέχεται δεδομένα ως απάντηση σε σχετικές αιτήσεις που κάνει, ή να στέλνει στοιχεία στον server για<br />
την επεξεργασία τους από αυτόν και την επιστροφή της απάντησης. Σο μεγάλο μειονέκτημα της<br />
αρχιτεκτονικής είναι, αφενός η διαρκής διακίνηση δεδομένων, αφετέρου και κυρίως όμως, πως σε<br />
περίπτωση βλάβης κάποιου server, οι clients μένουν σχεδόν χωρίς καμία δυνατότητα λειτουργίας<br />
τους.<br />
Client<br />
Διάγραμμα 4: Απεικόνιση της Αρχιτεκτονικής Client-Server, με έναν ή περισσότερους Servers, οι<br />
οποίοι ενδέχεται να επικοινωνούν άμεσα μεταξύ τους.<br />
Server<br />
Server 2<br />
134
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.3 Λειτουργίες Φρήστη.<br />
το σημείο αυτό του κειμένου γίνεται μία παρουσίαση των λειτουργιών που παρέχονται στον χρήστη<br />
από το σχετικό client κομμάτι. Με αυτόν τον τρόπο ο αναγνώστης θα μπορεί να έχει εικόνα για το σε<br />
τι αναφέρεται στην τεχνική περιγραφή που ακολουθεί.<br />
6.3.1 Γενικά Για την Εφαρμογή Φρήστη.<br />
Σόσο οι αλγόριθμοι για το routing, όσο και τα δεδομένα που χρησιμοποιούνται σε μία τέτοια<br />
Εφαρμογή, είναι πολύ σημαντικά ώστε να παράγονται έγκυρα και χρήσιμα αποτελέσματα. μως<br />
εξίσου σημαντικό είναι και το περιβάλλον χρήστη, το τμήμα δηλαδή της εφαρμογής που δίνει στον<br />
χρήστη την δυνατότητα να αναζητήσει αυτό που θέλει, και να πάρει το αποτέλεσμα της αναζήτησης<br />
με έναν τρόπο ώστε να μπορεί να το αξιοποίησει άμεσα και αποτελεσματικά.<br />
ήμερα όλα τα αντίστοιχα περιβάλλοντα τείνουν να είναι διαθέσιμα μέσω World Wide Web, καθώς<br />
με αυτόν τον τρόπο υπάρχουν μία σειρά από πλεονεκτήματα, όπως αυτά αναφέρονται στην<br />
Παράγραφο 4.3.<br />
Για την ανάπτυξη της εφαρμογής που περιγράφεται στην παρούσα, αρχικά χρησιμοποιήθηκε η<br />
σχετική εφαρμογή που έχει αναπτυχθεί στα πλαίσια του Open Trip Planner, με διάφορες βέβαια<br />
τροποποιήσεις, τόσο στην λειτουργία, όσο και στην εμφάνιση. Σο σημαντικότερο πρόβλημα που<br />
υπήρχε ήταν η χρησιμοποίηση του OSM ως χάρτη απεικόνισης, ο οποίος όμως παρουσιάζει προς το<br />
παρόν αρκετές ελλείψεις όσον αφορά την περιοχή της Αθήνας. Αν και υπήρχε η δυνατότητα για<br />
χρήση του Google Maps μαζί με το OpenLayers, μέσω ενός μικρού λογισμικού που λειτουργούσε ως<br />
ενδιάμεσος WMS server, η λύση αυτή, η οποία δοκιμάστηκε επιτυχώς, είχε εν τούτοις δύο σημαντικά<br />
μειονεκτήματα:<br />
Καταρχάς, υπήρχε η ανάγκη λειτουργίας ενός ακόμη server, ο οποίος θα<br />
δημιουργούσε σημαντικότατο υπολογιστικό φόρτο, και πολύ περισσότερο, φόρτο<br />
διακίνησης δεδομένων μέσω του δικτύου. Ο λόγος είναι βέβαια ότι όλη η διακίνηση<br />
δεδομένων για τις απεινονίσεις χάρτη θα είχαν ως ενδιάμεσο τον server αυτόν, και<br />
δεν θα υπήρχε απευθείας κατέβασμα από τους servers της Google.<br />
135
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Κατά δεύτερον, η χρήση του Google Maps μέσω ενδιάμεσου server, επί της ουσίας<br />
συνιστούσε παραβίαση των όρων σύμφωνα με τους οποίους η Google παρέχει την<br />
υπηρεσία δωρεάν, οπότε δεν θα υπήρχε η δυνατότητα η εφαρμογή να έχει<br />
πραγματική λειτουργία.<br />
Ούτως ή άλλως ήταν αναγκαία η χρήση των υπηρεσιών της Google για την λειτουργία του<br />
geocoding, καθώς δεν υπήρχε άμεση δυνατότητα χρήσης κάποιος άλλης υπηρεσίας με αντίστοιχα<br />
καλά αποτελέσματα. Αλλά, και η καθοδήγηση με αναφορά στα ονόματα οδών έπρεπε να γίνει με<br />
χρήση του Google Directions, καθώς από τον χάρτη OSM έλλειπαν τα περισσότερα από τα ονόματα<br />
των οδών του Λεκανοπεδίου Αττικής.<br />
Οι λύσεις λοιπόν που υπήρχαν για να ξεπεραστούν τα παραπάνω προβλήματα, ήταν οι εξής:<br />
Είτε να δημιουργηθεί ένα τελείως νέο χαρτογραφικό υπόβαθρο, με χρήση<br />
κατάλληλων διανυσματικών στοιχείων για όλες τις εργασίες routing.<br />
Είτε να ενημερωθούν τα στοιχεία του OSM για την περιοχή ενδιαφέροντος, μέ<br />
πιθανή χρησιμοποίηση στοιχείων από άλλες πηγές,<br />
Είτε να δημιουργηθεί μία τελείως καινούρια εφαρμογή, η οποία να χρησιμοποιεί ως<br />
χάρτη αυτόν του Google Maps.<br />
Η πρώτη από τις τρεις λύσεις απαιτούσε πάρα πολύ μεγάλη ποσότητα εργασίας, καθώς απαιτούσε<br />
την συλλογή, επεξεργασία, και διαχείριση των στοιχείων για ολόκληρη την περιοχή, με πιθανότες τις<br />
σημαντικές απαιτούμενες τροποποιήσεις και στην ίδια την εφαρμογή. Σο πλεονέκτημα θα ήταν η<br />
χρησιμοποίηση ενός χάρτη που θα μπορούσε να διαμορφωθεί ελεύθερα, και με πιθανή χρησιμότητα<br />
και σε άλλες εφαρμογές.<br />
Η δεύτερη λύση απαιτούσε και αυτή πολύ μεγάλη ποσότητα εργασίας, καθώς θα έπρεπε να<br />
ελεγχθούν κι ενημερωθούν τα στοιχεία του OSM στο σύνολο της περιοχής. Η ενημέρωση αυτή<br />
πρακτικά μπορούσε να γίνει μόνο με επίθεση των στοιχείων από άλλες πηγές, μέσα από διάφορα<br />
στάδια επεξεργασίας, μετασχηματισμών, κτλ.. μως ήταν σχεδόν αδύνατον να βρέθουν τέτοια<br />
στοιχεία που να ήταν αξιόπιστα και να μπορούν να χρησιμοποιθούν ελεύθερα, πολύ περισσότερο το<br />
να υπάρχει εξασφαλισμένη ενημέρωσή τους, κάτι το οποίο ισχύει φυσικά ως βασικό μειονέκτημα και<br />
για την πρώτη λύση.<br />
Η τρίτη από τις λύσεις ήταν εμφανώς η καλύτερη, καθώς έδινε την δυνατότητα ανάπτυξης μιας<br />
καινούριας εφαρμογής, χωρίς να απαιτείται η χρονοβόρα, εργοβόρα, αλλά ίσως και χρηματοβόρα,<br />
ενασχόληση με τα στοιχεία του χάρτη. Η καινούρια εφαρμογή θα μπορούσε να χτιστεί ελεύθερα,<br />
136
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ανεξάρτητα από το ότι ήδη είχε δημιουργηθεί για τον OpenTripPlanner, δίνοντας εξαρχής την<br />
δυνατότητα προσαρμογής στην ιδιαίτερη λειτουργία για την συγκεκριμένη Τπηρεσία, είτε άμεσα,<br />
όσον αφορά δηλαδή το λειτουργικό κομμάτι που σχετίζεται με τον χρήστη, είτε έμμεσα, όσον αφορά<br />
δηλαδή το κομμάτι που σχετίζεται με την διαχείριση των αποτελεσμάτων του routing σε δεύτερο<br />
στάδιο, χωρίς επιπλέον τροποποιήσεις του ίδιου του Open Trip Planner.<br />
6.3.2 Λειτουργική Ροή της Εφαρμογής Φρήστη.<br />
Η διαδικασία που απαιτείται να κάνει ο χρήστης από την στιγμή της εισόδου του σε μία ανάλογη<br />
εφαρμογή, μέχρι την στιγμή της εξόδου του από αυτήν έχοντας πάρει αυτό που ζητούσε, είναι σε<br />
μεγάλο βαθμό συγκεκριμενοποιημένη από την φύση του αντικειμένου. Αυτό που καταρχάς ζητείται<br />
είναι η παραμετροποίηση του ερωτήματος, η θέση του, η λήψη των αποτελεσμάτων, και ο<br />
παραπέρα χειρισμός τους, όπως π.χ. η εκτύπωση.<br />
ε μορφή διαγράμματος, η βασική αυτή λειτουργική ροή έχει ως εξής:<br />
Αρχικοποίθςθ<br />
Ραραμετροποίθςθ<br />
Ερωτιματοσ<br />
Διάγραμμα 5: Λειτουργική Ροή της Εφαρμογής Φρήστη.<br />
Κατά την αρχικοποίηση γίνεται η δημιουργία του περιβάλλοντος της Εφαρμογής και δίνονται οι<br />
προκαθορισμένες τιμές στις διάφορες παραμέτρους.<br />
Βοικεια / Πλθροφορίεσ / Επικοινωνία<br />
Θζςθ Ερωτιματοσ Λιψθ Απάντθςθσ<br />
Διαχείριςθ<br />
Απάντθςθσ<br />
Κατά την Παραμετροποίηση Ερωτήματος ο Φρήστης καλείται να παραμετροποιήσει το ερώτημά του,<br />
να θέσει δηλαδή την προέλευση και τον προορισμό, τα επιθυμητά μέσα για να κάνει την διαδρομή,<br />
137
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
τον τρόπο βελτιστοποίησης των αποτελεσμάτων, την μέγιστη επιθυμητή απόσταση διαδρομής πεζή,<br />
κι επίσης την στιγμή που επιθυμεί να ξεκινήσει το ταξίδι, ή να αφιχθεί στον προορισμό του.<br />
Κατά την Θέση Ερωτήματος η Εφαρμογή διαμορφώνει ανάλογα τα ερωτήματα κι επικοινωνεί με<br />
τους διάφορους Servers, έτσι ώστε να λάβει την απάντηση σχετικά με το επιθυμητό ταξίδι. Πρόκειται<br />
για ένα στάδιο στο οποίο δεν υπάρχει παρέμβαση του Φρήστη.<br />
μοια δεν υπάρχει παρέμβαση του Φρήστη και στο επόμενο στάδιο, κατά το οποίο γίνεται η λήψη<br />
της απάντησης από τους Servers. την πραγματικότητα τα δύο αυτά στάδια, της θέσης του<br />
ερωτήματος και της λήψης της απάντησης, είναι άμεσα συνδεδεμένα μεταξύ τους. Κι αυτό γιατί<br />
κατά την λήψη της απάντησης π.χ. από το Route Engine υπάρχει συνεχής νέα υποβολή<br />
υποερωτημάτων, τα οποία αφορούν τις εναλλακτικές Γραμμές για έναν κλάδο μίας πρότασης<br />
ταξιδίου, ή την διαδρομή πεζή που χρειάζεται να πραγματοποιηθεί από και προς τις στάσεις ΜΜΜ.<br />
τη διαδικασία της λήψης συμπεριλαμβάνεται και η ενημέρωση των στοιχείων της Εφαρμογής με τα<br />
δεδομένα που παρέχονται από τους Servers, αλλά κι από αυτά που η ίδια η Εφαρμογή παρέχει<br />
έπειτα από μετεπεξεργασία, όπως είναι π.χ. η τιμή του απαιτούμενου εισιτηρίου.<br />
Κατά το στάδιο της διαχείρισης απάντησης ο Φρήστης μπορεί να επιλέγει να βλέπει κάθε φορά την<br />
μία από τις εώς και τρεις παρεχόμενες προτάσεις ταξιδίου, όπως επίσης μπορεί να επιλέξει να κάνει<br />
ένα νέο ερώτημα, να διαμορφώσει διαφορετικά αυτό που ήδη έχει υποβάλλει, ή τέλος να εκτυπώσει<br />
κάθε μία από τις παρεχόμενες προτάσεις.<br />
Παράλληλα στα προηγούμενα στάδια, υπάρχουν και τα στάδια που αφορούν την παροχή βοήθειας<br />
για την χρήση, την παροχή πληροφοριών σχετικά με την υπηρεσία, πληροφοριών σχετικά με τα<br />
ΜΜΜ στην Αθήνα, την διαδρομή από/προς τον Αερολιμένα, κι επίσης την δυνατότητα επικοινωνίας<br />
του Φρήστη με τους λειτουργούς της Τπηρεσίας, π.χ. για την υποβολή προτάσεων βελτίωσης.<br />
6.3.3 Λειτουργική Ανάλυση της Εφαρμογής Φρήστη.<br />
6.3.3.1 Εκτέλεση Εφαρμογής Φρήστη και Προκαθορισμός Επιλογών.<br />
Η Εφαρμογή Φρήστη είναι μία Flash εφαρμογή, η οποία μπορεί να εκτελείται μέσα σε έναν browser,<br />
ή ανεξάρτητα, ως desktop εφαρμογή εντός του Adobe Air. την περίπτωση του browser η εφαρμογή<br />
είναι «τοποθετημένη» εντός ενός HTML αρχείου. Σο αρχείο αυτό κάνει έλεγχο για την ύπαρξη της<br />
κατάλληλης έκδοσης του Flash Player, και πρυτρέπει για την εγκατάστασή της αν αυτό απαιτείται.<br />
138
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Επίσης, σε συνδυασμό με την σχετική υπηρεσία StatsCounter που παρέχεται δωρεάν, στέλνει σε<br />
αυτήν διάφορα στατιστικά στοιχεία (ημερομημία, ώρα, περιοχή, IP Address από το οποίο προήλθε η<br />
επίσκεψη,το λειτουργικό, τον Web Browser, την ανάλυση οθόνης κτλ του Φρήστη. ε καμία<br />
περίπτωση δεν αποστέλλονται προσωπικά στοιχεία, ενώ η χρήση της εν λόγω υπηρεσίας είναι<br />
ενδεικτική, καθώς διατίθενται δωρεάν πλήθος άλλων.<br />
Η μητρική HTML σελίδα προωθεί προς την Flash εφαρμογή και τις πιθανές σχετικές<br />
προκαθορισμένες τιμές στην παραμετροποίηση ερωτήματος, αν το link προς την Εφαρμογή<br />
προέρχεται από κάποιο site που προωθεί σε αυτήν για την εξυπηρέτηση μίας εγκατάστασης ή ενός<br />
γεγονότος, όπως π.χ. την πρόσβαση με ΜΜΜ σε ένα συνέδριο.<br />
6.3.3.2 Αρχικοποίηση.<br />
Με την έναρξη της Εφαρμογής παργματοποιείται η αρχικοποίηση, κατά την οποία γίνεται η<br />
δημιουργία του περιβάλλοντος Φρήστη, και δίνονται οι αρχικές τιμές. Κατά το στάδιο αυτό<br />
εμφανίζεται μία εισαγωγική Splash εικόνα στον Φρήστη, με περιεχόμενο και τις πιθανόν υπάρχουσες<br />
σημαντικές πληροφορίες, όπως είναι π.χ. για παρατηρούμενες ή προβλεπόμενες δυσλειτουργίες.<br />
139
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 47: Η αρχική εικόνα που εμφανίζεται στον Φρήστη κατά την έναρξη της Εφαρμογής. Εκτός<br />
του τίτλου, περιέχονται μηνύματα σχετικά με σημαντικά θέματα άμεσου ενδιαφέροντος, όπως π.χ.<br />
μία προγραμματισμένη απεργία.<br />
Πατώντας στο «CONTINUE» εμφανίζεται στον Φρήστη η κύρια οθόνη της Εφαρμογής, στην λειτουργία<br />
παραμετροποίησης του ερωτήματος.<br />
140
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.3.3.3 Γενική Διάταξη.<br />
Εικόνα 48: Η οθόνη για την παραμετροποίηση του Ερωτήματος, όπως αυτή πρωτοεμφανίζεται στον<br />
Φρήστη.<br />
Η παραπάνω εικόνα εμφανίζει το γενικό layout της εφαρμογής σε μία μεγάλη οθόνη, σε state<br />
Options, χωρίς να έχει υπάρξει προκαθορισμός επιλογών. τα γενικά στοιχεία διακρίνονται τα εξής:<br />
Κύριο στοιχείο της οθόνης είναι ο Φάρτης Google, ο οποίος αρχικά βρίσκεται σε εμφάνιση Map. Η<br />
εμφάνιση αυτή μπορεί να αλλάξει, πατώντας ένα άλλο πλήκτρο πάνω δεξιά, το οποίο αντιστοιχεί σε<br />
μία άλλη εμφάνιση: «Satellite» για δορυφορική εικόνα, «Hybrid» για συνδυασμό δορυφορικής εικόνας<br />
και χάρτη, και τέλος «Terrain», με απόδοση της μορφής του αναγλύφου. Οι περισσότες από τις<br />
μορφές αυτές εμφάνισης είναι ήδη ευρέως γνωστές από άλλες εφαρμογές, και για αυτόν τον λόγο<br />
δεν γίνεται εκτενέστερη αναφορά. μοια δεν γίνεται και για το slider κλίμακας, ή για τον γενικότερο<br />
χειρισμό του χάρτη. Ο εμφανιζόμενος χάρτης έχει τα αναγραφόμενα στοιχεία τόσο στην Ελληνική,<br />
όσο και στην Αγγλική γλώσσα, ενώ υπάρχει μάλιστα η δυνατότητα 3D απεικόνισης μέσα από το Flex,<br />
απεικόνιση εντυπωσιακή μεν, που μάλλον όμως θα μπέρδευε κάποιους από τους χρήστες.<br />
141
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Η Google επιτρέπει ελεύθερα την χρήση του χάρτη, χωρίς περιορισμούς στις εμφανίσεις που γίνονται<br />
ημερησίως. Σο μόνο που απαιτείται είναι η εφαρμογή που τον χρησιμοποιεί να διατίθεται δωρεάν<br />
στο ευρύ κοινό, και η απόκτηση ενός αλφαριθμητικού κλειδιού για το domain ή subdomain<br />
φιλοξενίας.<br />
6.3.3.4 Φάρτης Δικτύου Metro.<br />
την κάτω δεξιά γωνία του χάρτη υπάρχει ένα κουμπί που λειτουργεί ως διακόπτης δύο θέσεων<br />
(toggle button). Με την ενεργοποίηση του γίνεται οπτικοποίηση από την Εφαρμογή πάνω στον χάρτη<br />
του βασικού δικτύου ΜΜΜ της Αθήνας, το οποίο αποτελείται από τις Γραμμές Μετρό και τους<br />
σχετικούς ταθμούς. Πηγαίνοντας τον κέρσορα πάνω σε έναν σταθμό, εμφανίζεται ένα tooltip με την<br />
ονομασία του.<br />
Εικόνα 49: Οπτικοποίηση του δικτύου Metro όταν είναι ενεργοποιημένο το σχετικό Toggle Button<br />
κάτω δεξιά στον Φάρτη.<br />
Σα σύμβολα των σταθμών είναι ενεργά αντικείμενα στον Φάρτη, καθώς με απλό click πάνω τους<br />
ανοίγει ένα InfoWindow το οποίο επιτρέπει την επιλογή κάθε σταθμού ως προέλευση ή προορισμό.<br />
Αυτό είναι χρήσιμο για κάποιον που ενδιαφέρεται απλώς να βρεθεί σε έναν συγκεκριμένο σταθμό<br />
metro, γνωρίζοντας τα υπόλοιπα τμήματα της διαδρομής που θέλει να κάνει, καθώς οι σταθμοί<br />
αποτελούν ούτως ή άλλως σημαντικά σημεία αναφοράς τής ευρύτερης περιοχής τους.<br />
142
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Οπτικοποίηση του συνολικού δικτύου ΜΜΜ είναι πρακτικώς αδύνατη για τους εξής λόγους:<br />
Θα υπήρχε υπερβολικά μεγάλος αριθμός αντικειμένων (τάσεις και Γραμμές) πάνω<br />
στον χάρτη, γεγονός που θα τον έκανε αργό στις ανανεώσεις, και θα απαιτούσε<br />
μεγάλη επεξεργαστική ισχύ.<br />
Ο υπερβολικά μεγάλος αυτός αριθμός αντικειμένων θα δημιουργούσε ανάλογα<br />
μεγάλη κίνηση στο δίκτυο του internet και στους server της εφαρμογής για την<br />
διακίνηση των σχετικών data, με αποτέλεσμα το αυξημένο κόστος και την πιο αργή<br />
λειτουργία.<br />
Αν και για τους προηγούμενους λόγους μπορεί να επιτευχθεί περιορισμός των<br />
προβλημάτων, όπως π.χ. με το κατέβασμα δεδομένων και την απεικόνιση τους<br />
ιεραρχικά και με βάση την κλίμακα και την περιοχή απεικόνισης, εν τούτοις δεν<br />
υπάρχει μεγάλη ωφέλεια από την απεικόνιση προς τον χρήστη ενός μεγάλου και<br />
πολύπλοκου δικτύου ΜΜΜ. Ιδιαίτερα μάλιστα όταν αυτός είναι επισκέπτης της<br />
πόλης, οπότε κατά κανόνα δεν έχει και δεν θέλει να μάθει την λεπτομερή δομή και<br />
μορφή του δικτύου. Λόγω μικρού όγκου, τα σχετικά στοιχεία της απεικόνισης του<br />
δικτύου metro περιέχονται εντός του αρχείου της Εφαρμογής Φρήστη.<br />
6.3.3.5 Πληροφορίες χετικά Με Σα ΜΜΜ την Αθήνα, Σην Εξυπηρέτηση Σου<br />
Αερολιμένα, Και Σην Φρήση Σης Εφαρμογής.<br />
τα αριστερά της οθόνης βρίσκεται σε κατακόρυφη μορφή μία λεπτή στήλη. Αυτή περιέχει το<br />
λογότυπο της Εφαρμογής, τα λογότυπα αυτών που την παρέχουν, και μία σειρά από κουμπιά<br />
λειτουργιών. τον ελεύθερο κάθε φορά χώρο θα μπορούσαν να προστεθούν κουμπιά επιπλέον<br />
λειτουργιών, ή πληροφορίες άμεσης θέασης, όπως: ‗Athens‘ Urban Transit Info Line 185‘.<br />
ε μία εμπορική λειτουργία, θα μπορούσαν να τοποθετούνται και στοιχεία όπως είναι π.χ.<br />
διαφημίσεις.<br />
Σα κουμπιά λειτουργιών είναι τα εξής αυτή την στιγμή:<br />
143
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 50: Σα κουμπιά λειτουργιών στην αριστερή κατακόρυφη στήλη της Εφαρμογής.<br />
Σα κουμπιά «To/From Airport», «Transit in Athens», και «Help», δεν έχουν κάποιο ιδιαίτερο τεχνικό<br />
ενδιαφέρον, και γι‘ αυτό δεν αναλύονται περισσότερο. Με το πάτημά ενός από αυτά, ανοίγει ένα<br />
επιπλέον tab στον web browser, στο οποίο εμφανίζονται αντίστοιχα πληροφοριές στην Αγγλική<br />
γλώσσα για την μετακίνηση από/προς τον Αερολιμένα, την λειτουργία των ΜΜΜ στην Αθήνα (τιμές<br />
εισιτηρίων, χρήσιμα τηλέφωνα κτλ), και την χρήση της Εφαρμογής με εικόνες και παραδείγματα. Σο<br />
άνοιγμα πρόσθετων tabs αφενός επιτρέπει την χρήση απλής HTML, που όμως είναι η καταλληλότερη<br />
για την περίσταση, αφετέρου επιτρέπει την σχεδόν παράλληλη θέαση με την Εφαρμογή και την<br />
εύκολη εκτύπωση.<br />
144
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.3.3.6 Εμφάνιση Πληροφοριών Για Σην Εφαρμογή.<br />
Σο πλήκτρο «About» αλλάζει το state της Εφαρμογής στο ομώνυμο, όπου εμφανίζεται ένα modal<br />
παράθυρο με βασικές πληροφορίες σχετικά με αυτήν, και με κουμπιά-links προς διάφορα σχετικά<br />
sites.<br />
Εικόνα 51: Σο modal παράθυρο About της Εφαρμογής, με βασικές πληροφορίες σχετικά με αυτήν,<br />
κι επίσης με links προς διάφορα σχετικά sites.<br />
6.3.3.7 Επικοινωνία Με Σους Λειτουργούς Σης Τπηρεσίας.<br />
μοια, με πάτημα στο κουμπί «Contact» ενεργοποιείται το ομώνυνο state, από όπου υπάρχει η<br />
δυνατότητα να αποσταλεί email σε μία διεύθυνση ταχυδρομείου των λειτουργών της Τπηρεσίας.<br />
Σο email μπορεί να αποσταλεί μέσω του Mail Client του Φρήστη, όπου προσυμπληρώνεται η<br />
διεύθυνση παραλήπτη. Με αυτόν τον τρόπο ο Φρήστης στέλνει email με έναν τρόπο που του είναι<br />
145
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
οικείος, αφού χρησιμοποιεί το δικό του λογισμικό για ηλεκτρονικό ταχυδρομείο. Τπάρχουν βέβαια<br />
περιπτώσεις που αυτό μπορεί να μην λειτουργεί, ιδιαίτερα αν ο Φρήστης δεν χρησιμοποιεί εκείνη την<br />
στιγμή τον δικό του Τπολογιστή. Για τις περιπτώσεις αυτές, αναγράφεται και η διεύθυνση<br />
ηλεκτρονικού ταχυδρομείου στην οποία μπορεί να γίνει αποστολή του όποιου μηνύματος.<br />
Εικόνα 52: To modal παράθυρο Contact της Εφαρμογής, από το οποίο μπορεί να ενεργοποιηθεί ο<br />
Mail Client του Φρήστη, με προσυμπληρωμένη την διεύθυνση παραλήπτη.<br />
6.3.3.8 Παραμετροποίηση Ερωτήματος.<br />
πως έχει αναφερθεί, αμέσως μετά την εισαγωγική splash οθόνη, ο Φρήστης βλέπει το γενικό layout<br />
της Εφαρμογής, σε κατάσταση κατά την οποία μπορεί να γίνει η παραμετροποίηση του ερωτήματος<br />
που θέλει αυτός να υποβάλει. την κατάσταση αυτή, το κύριο στοιχείο είναι ο Φάρτης, ενώ πάνω<br />
αριστερά εμφανίζεται ένα παράθυρο στο οποίο εμφανίζονται οι διάφορες παράμετροι.<br />
146
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 53: Σο κύριο παράθυρο από όπου γίνεται η παραμετροποίηση από τον Φρήστη του<br />
ερωτήματος.<br />
Η επιλογή Προέλευσης και Προορισμού μπορεί να γίνεται με έναν από τους εξής τρόπους:<br />
Με geocoding μίας διεύθυνσης ή ενός ζεύγους συντεταγμένων. Σα στοιχεία<br />
εισάγονται στα αντίστοιχα text boxes κι έπειτα εμφανίζεται ένα επιπλέον παράθυρο<br />
στο οποίο υπάρχει η λίστα με τις εώς και δέκα καλύτερες απαντήσεις σύμφωνα με<br />
την Τπηρεσία Geocoding της Google.<br />
Πατώντας ο Φρήστης πάνω σε μία απάντηση, ο Φάρτης μετακινείται ώστε να<br />
κεντραριστεί στο σημείο που αντιστοιχεί η απάντηση, ενώ ένας Marker επισημαίνει<br />
καλύτερα το σημείο αυτό. Βλέποντας ότι η συγκεκριμένη απάντηση ταιριάζει σε<br />
αυτό που ψάχνει, ο Φρήστης μπορεί να την αποδεχθεί ως προέλευση ή προορισμό.<br />
Ο τρόπος αυτός επιλογής προέλευσης/προορισμού αναμένεται να είναι κι ο πλέον<br />
χρησιμοποιούμενος, αφού συνήθως έχει κάποιος την διεύθυνση για το μέρος από<br />
το οποίο φεύγει ή θέλει να φτάσει, όπως π.χ. την διεύθυνση ενός ξενοδοχείου.<br />
147
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 54: Η λειτουργία Geocoding για την προέλευση.<br />
Με διπλό click πάνω στον Φάρτη. το σημείο του click ανοίγει ένα InfoWindow, από<br />
το οποίο μπορεί κανείς να επιλέξει αν επιθυμεί το σημείο αυτό για προέλευση ή<br />
προορισμό.<br />
Εικόνα 55: Με διπλό click σε κάποιο σημείο του Φάρτη εμφανίζεται ένας Marker με ένα Info Window<br />
για την δηλωσή του σημείου ως προέλευση ή προορισμό.<br />
148
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Με επιλογή από λίστα σημείων ενδιαφέροντος. Πατώντας πάνω στο κουμπί ‗POIs‘<br />
που εμφανίζεται δίπλα στην διεύθυνση για την προέλευση ή τον προορισμό, ανοίγει<br />
ένα επιπλέον παράθυρο, από το οποίο μπορεί να γίνει επιλογή ενός σημείου για τον<br />
αντίστοιχο ρόλο.<br />
Η λίστα εμφανίζει τα διάφορα σημεία ενδιαφέροντος κατηγοριοποιημένα σε μορφή<br />
δένδρου. Πατώντας πάνω σε ένα από τα αντικείμενα της λίστας, ο Φάρτης<br />
κεντράρεται στο σημείο που αντιστοιχεί χωρικά στο αντικείμενο αυτό, κι ένας<br />
Marker επισημαίνει καλύτερα το σημείο αυτό. Βλέποντας ότι η συγκεκριμένη θέση<br />
ταιριάζει σε αυτό που ψάχνει, ο Φρήστης μπορεί να την αποδεχθεί.<br />
Εικόνα 56: Επιλογή ενός ημείου Ενδιαφέροντος ως Προέλευση ή Προορισμό, από<br />
κατηγοριοποιημένη λίστα.<br />
Με επιλογή κάποιου ενεργού σημείου πάνω στον Φάρτη. Προς το παρόν τέτοια<br />
ενεργά σημεία είναι οι σταθμοί του Μετρό, όταν απεικονίζεται το σχετικό δίκτυο.<br />
Μέσα από ένα InfoWindow μπορεί ο Φρήστης να θέσει το σημείο ως προέλευση ή<br />
προορισμό. Μελλοντικά θα μπορούσαν να υπάρξουν ακόμη και τρισδιάστες<br />
αναπαραστάσεις χαρακτηριστικών κτηρίων, όπως π.χ. ο Παρθενώνας.<br />
149
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 57: Επιλογή ενός Ενεργού ημείο (ταθμός Μετρό) ως προέλευση ή προορισμό.<br />
Με σύρσιμο (dragging) πάνω στον Φάρτη ενός από τους Markers που επισημαίνουν την<br />
προέλευση ή τον προορισμό.ταν έχουν επιλεγεί, είτε η προέλευση, είτε ο προορισμός, τότε<br />
τα σημεία αυτά επισημαίνονται με έναν πράσινο κι έναν κόκκινο Marker αντίστοιχα.<br />
ύροντας έναν από τους Markers σε κάποια τοποθεσία, τότε αυτή επιλέγεται ως προέλευση<br />
ή προορισμός, κι ανάλογα ενημερώνεται το σχετικό πεδίο με τις υντεταγμένες της<br />
τοποθεσίας. Πατώντας πάνω στο συμπληρωμένο πεδίο κειμένου ο Φρήστης, έχει την<br />
δυνατότητα να εμφανίζεται πλέον η διεύθυνση που αντιστοιχεί στις συγκεκριμένες<br />
συντεταγμένες.<br />
Εικόνα 58: Σα επιλεγμένα κάθε φορά σημεία προέλευσης και προορισμού επισημαίνονται με<br />
πράσινο και κόκκινο Marker αντίστοιχα, οι οποίοι είναι draggable.<br />
150
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 59: Με σύρσιμο (dragging) του Marker της προέλευσης ή του προορισμού, επιλέγεται μία<br />
τοποθεσία από τον Φάρτη. Σα αντίστοιχα πεδία ενημερώνονται με τις συντεταγμένες της τοποθεσίας.<br />
Εικόνα 60: Αντικατάσταση της εμφάνισης των συντεταγμένων μιας τοποθεσίας, έπειτα από σύρσιμο<br />
του Marker σε αυτήν, από την διεύθυνση που τους αντιστοιχεί.<br />
Η ύπαρξη ενός σχετικού πλήκτρου («SWAP») επιτρέπει οποτεδήποτε την εναλλαγή της προέλευσης<br />
και του προορισμού.<br />
151
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
την παραμετροποίηση του ερωτήματος ο Φρήστης μπορεί να επιλέξει επίσης τα μέσα με τα οποία<br />
επιθυμεί να πραγματοποιήσει το ταξίδι του. τις επιλογές για τα επιθυμητά μέσα πραγματοποίησης<br />
του ταξιδιού εμφανίζονται τα εξής:<br />
Εικόνα 61: Σο List Box με τις επιλογές των επιθυμητών Μέσων για την πραγματοποίηση του ταξιδίου.<br />
‗Using <strong>An</strong>y Mean‘: Δηλαδή το ταξίδι μπορεί να γίνει με οποιοδήποτε ΜΜΜ. Αυτή<br />
είναι και η default επιλογή.<br />
‗Using Trains‘: Σο ταξίδι μπορεί να γίνει μόνο με τρένα, όχι και με λεωφορεία<br />
δηλαδή.<br />
‗Using Buses‘: Σο ταξίδι μπορεί αντίστοιχα να γίνει μόνο με λεωφορεία, εξαιρώντας<br />
δηλαδή τα τρένα.<br />
‗Walking Only‘: Οπότε έτσι το ταξίδι μπορεί να γίνει μόνο πεζή. ε όλες τις άλλες<br />
επιλογές συμπεριλαμβάνεται η διαδρομή πεζή, κάτι που είναι απαραίτητο για να<br />
υπάρξη απάντηση με την διαδρομή π.χ. μέχρι την πρώτη στάση, από την τελευταία<br />
στάση, ή ενδιάμεσα δύο στάσεων.<br />
Ο Φρήστης μπορεί επίσης να επιλέξει αν επιθυμεί την βελτιστοποίηση των απαντήσεων βάσει της<br />
συντομότερης άφιξης στον προορισμό, ή βάσει των λιγότερων μετεπιβιβάσεων, δηλαδή ‗As Soon As<br />
Possible‘ ή ‗With Fewest Transfers‘ αντίστοιχα. Default επιλογή είναι η πρώτη.<br />
Εικόνα 62: Οι επιλογές βελτιστοποίησης που παρέχονται στον Φρήστη.<br />
152
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Μία άλλη δυνατότητα επιλογής που παρέχεται στον Φρήστη είναι της μέγιστης απόστασης που<br />
επιθυμεί να διανύσει πεζή. Οι δυνατές επιλογές είναι για 600 m, 1200 m, 2000 m, και ‗Doesn ‗t<br />
Matter‘, δηλαδή να αγνοείται αυτή η παράμετρος. Σα 600 m είναι η απόσταση στην οποία<br />
θεωρείται ότι πρέπει να βρίσκεται μία στάση metro, όμως ως default επιλογή τέθηκε η 1200m, ώστε<br />
να αποφεύγονται οι πολύ μικρές μετακινήσεις με ΜΜΜ για μία ή δύο στάσεις. Σο Routing Engine δεν<br />
χρησιμοποιεί δεσμευτικά την παραμετροποίηση αυτή, καθώς μπορεί να χαλαρώνει ανάλογα τον<br />
περιορισμό απόστασης, ώστε να προκύπτουν λύσεις.<br />
Εικόνα 63: Οι επιλογές για την μέγιστη απόσταση σε μέτρα που επιθυμεί ο Φρήστης να διανύσει πεζή.<br />
Σα τελευταία στοιχεία παραμετροποίησης του ερωτήματος αφορούν χρονικές παραμέτρους. Έτσι, ο<br />
Φρήστης επιλέγει μέσω δύο radio buttons αν ο χρόνος αφορά την εκκίνηση από την προέλευση ή την<br />
άφιξη στον προορισμό, την χρονική στιγμή, και την ημερομηνία. Η επιλογή της χρονικής στιγμής<br />
γίνεται μέσω ενός slider με στρογγυλοποιημένες τιμές ανά 5 λεπτά, ενώ της ημερομηνίας, μέσω ενός<br />
ημερολογίου. Σέλος, ένα κουμπί με την ένδειξη ‗NOW‘ επιτρέπει τον ορισμό της ώρας και της<br />
ημερομηνίας στις τρέχουσες τιμές.<br />
Εικόνα 64: Οι επιλογές για την ημερομηνία και την ώρα αναχώρησης ή άφιξης.<br />
153
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.3.3.9 Θέση Ερωτήματος & Λήψη Απαντήσης.<br />
Μετά την επιθυμητή παραμετροποίηση, ο Φρήστης πατώντας στο κουμπί «Plan My Journey!»,<br />
ξεκινάει την διαδικασία για την εύρεση και παρουσίαση των προτάσεων ταξιδίου. Κατά την<br />
διαδικασία αυτή είναι ενεργοποιημένο η κατάσταση αναμονής, κατά το οποίο εμφανίζεται στον<br />
Φρήστη ένα πληροφοριακό παράθυρο με μία Progress Bar που είναι ενδεικτική της εξέλιξης.<br />
Εικόνα 65: τιγμιότυπο από την οθόνη αναμονής καθόσο διαρκεί η αναζήτηση και επεξεργασία των<br />
προτάσεων ταξιδίου.<br />
το σημείο αυτό γίνονται και οι κύριες λειτουργίες της Εφαρμογής.<br />
6.3.3.10 Παρουσίαση Προτάσεων,<br />
την κατάσταση της οπτικοποίησης των Προτάσεων Σαξιδίου, εμφανίζεται μία κατακόρυφη στήλη<br />
στα αριστερά της οθόνης με τα λεκτικά αποτελέσματα, ενώ πάνω στον χάρτη γίνεται η αντίστοιχη<br />
οπτικοποίηση. Αρχικά εμφανίζεται η πρώτη Πρόταση, όμως ο Φρήστης μπορεί να επιλέξει σε ένα<br />
accordion όποια από τις εώς και τρεις Προτάσεις θέλει για να είναι η ενεργή.<br />
154
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 66: Η Client Εφαρμογή σε κατάσταση παρουσίασης και διαχείρισης των Προτάσεων<br />
Σαξιδίου.<br />
155
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Η κατακόρυφη στήλη με τα λεκτικά αποτελέσματα έχει<br />
την εξής τυπική μορφή σε ένα τυχαίο παράδειγμα:<br />
το πάνω τμήμα εμφανίζονται τα γενικά στοιχεία, τα<br />
οποία αφορούν όλες τις Προτάσεις Σαξιδίου, και τα<br />
οποία προέρχονται από την Παραμετροποίηση του<br />
Ερωτήματος. Σα στοιχεία αυτά είναι η προέλευση, ο<br />
προορισμός, τα επιθυμητά ΜΜΜ προς χρησιμοποίηση,<br />
κι επίσης η χρονική στιγμή για την αναχώρηση ή την<br />
άφιξη. Η διάκριση ανάμεσα σε αυτές γίνεται από τον<br />
τίτλο που εμφανίζεται για την χρονική στιγμή. το<br />
παράδειγμα της διπλανής στήλης ο τίτλος είναι ‗Depart<br />
Soon After:‘, που σημαίνει ότι η χρονική στιγμή αφορά<br />
την επιθυμητή αναχώρηση από τον προορισμό. Αν ο<br />
τίτλος ήταν ‗Arrive No Later Than:‘, τότε η χρονική<br />
στιγμή θα αφορούσε την επιλεγμένη αργότερη άφιξη<br />
στον προορισμό.<br />
Κάτω από τα γενικά στοιχεία του ταξιδίου εμφανίζεται<br />
ένα accordion με τις μέχρι και 3 Προτάσεις Σαξιδίου<br />
που έχουν δοθεί ως απάντηση από το routing engine.<br />
Ο τίτλος κάθε Pane εμφανίζει την χρονική διάρκεια του<br />
προτεινόμενου ταξιδίου στρογγυλοποιημένη στα πάνω<br />
5‘ και των αριθμό των μετεπιβιβάσεων.<br />
Μέσα στο Pane υπάρχουν αρχικά τα στοιχεία για την<br />
ώρα αναχώρησης από την προέλευση και την ώρα<br />
άφιξης στον προορισμό, όπως επίσης την απόσταση<br />
που πρέπει να διανυθεί πεζή με ανάλυση 100m, και<br />
την αξία του απαιτούμενου κανονικού εισιτηρίου.<br />
Σο μέγεθος της απόστασης πεζή που εμφανίζεται<br />
προέρχεται από την απάντηση του routing engine,<br />
δηλαδή βασίζεται στα στοιχεία του OpenStreetMap.<br />
Επειδή όμως η οπτικοποίηση γίνεται με βάση την<br />
υπηρεσία Directions της Google, είναι πιθανόν να<br />
υπάρχει ασυμφωνία μεταξύ της τιμής που<br />
αναγράφεται και των απεικονιζόμενων διαδρομών<br />
στον Φάρτη. Ακόμη κι όπου αυτό πρόκειται να συμβεί<br />
Εικόνα 67: Συπική Μορφή της<br />
Κατακόρυφης τήλης με τα λεκτικά<br />
αποτελέσματα, μέσα από ένα τυχαίο<br />
παράδειγμα.<br />
156
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
όμως, δεν αναμένεται η διαφορά να είναι μεγάλη, πλην ελάχιστων ιδιαίτερων περιπτώσεων, όπου<br />
π.χ. οι δύο χάρτες διαφέρουν σημαντικά.<br />
ε κατακόρυφη λίστα εμφανίζονται στη συνέχεια οι οδηγίες και τα στοιχεία για κάθε κλάδο της<br />
εμφανιζόμενης Πρότασης Σαξιδίου. Η αναγραφή έχει γίνει προσπάθεια να είναι όσο το δυνατόν<br />
κοντύτερα στον τρόπο που επικοινωνεί κι αντιλαμβάνεται ένας άνθρωπος, δηλαδή χωρίς να<br />
παρατίθενται τυποποιημένα νούμερα, όμοια σε κάθε περίπτωση. Ο κάθε κλάδος διακρίνεται από την<br />
αρίθμησή του και τον τρόπο και το μέσο με το οποίο θα πρέπει να πραγματοποιηθεί, ενώ και ο<br />
χρωματισμός της επικεφαλίδας αυτής γίνεται ανάλογα. Έτσι, γίνεται ευκολότερη αναγνώριση των<br />
τρόπων ταξιδίου, αλλά κι ευκολότερη αναγνώριση της οπτικοποίησης του κλάδου στον διπλανό<br />
χάρτη.<br />
Εικόνα 68: Παράδειγμα περιγραφής αρχικού κλάδου διαδρομής πεζή.<br />
το παραπάνω παράδειγμα εμφανίζονται τα στοιχεία για έναν αρχικό κλάδο διαδρομής πεζή. Σα<br />
στοιχεία που παρατίθενται είναι τα ελάχιστα που μπορούν να ενδιαφέρουν κάποιον, έτσι ώστε αυτός<br />
να μην πνίγεται από κατακλυσμό παράθεσης στοιχείων, κάτι που δείχνει να είναι το πιο σύνηθες<br />
λάθος αντίστοιχων εφαρμογών.<br />
Εικόνα 69: Παράδειγμα περιγραφής κλάδου με Μέσα Μαζικής Μεταφοράς.<br />
το δεύτερο παράδειγμα που εμφανίζεται παραπάνω, περιέχονται τα στοιχεία για έναν κλάδο της<br />
Πρότασης Σαξιδίου που πρέπει να πραγματοποιηθεί με χρήση ΜΜΜ. την πρώτη σειρά εμφανίζεται<br />
157
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
το μέσο και η Γραμμή η οποία έχει δοθεί από το routing engine, ενώ οι υπόλοιπες Γραμμές (ή/και<br />
παραλλαγές αυτών) είναι οι υπόλοιπες που συνδέουν το ζεύγος των στάσεων προέλευσης και<br />
προορισμού του κλάδου.<br />
Σα στοιχεία στις υπόλοιπες Γραμμές αφορούν την στάση αποβίβασης, την στάση πριν από αυτήν, κι<br />
επίσης τον χρόνο που απαιτείται για την πραγματοποίηση της διαδρομής του κλάδου. Η εμφάνιση<br />
της ονομασίας της στάσης πριν από αυτή της αποβίβασης, δίνει την δυνατότητα στον Φρήστη να<br />
αναγνωρίσει ευκολότερα το ότι πλησιάζει στην τελευταία, και να έχει αρκετό χρόνο προετοιμασίας<br />
για την αποβίβασή του.<br />
Σόσο η προηγούμενη από την αποβίβαση στάση, όσο και ο χρόνος διαδρομής, αφορούν άμεσα μόνο<br />
την πρώτη εμφανιζόμενη Γραμμή, αυτή δηλαδή που δίνεται από το routing engine (στο<br />
συγκεκριμένο παράδειγμα η λεωφορειακή Γραμμή ‗036‘). Σα στοιχεία αυτά για τις εναλλακτικές<br />
Γραμμές μπορεί να είναι διαφοροποιημένα, όμως κάτι τέτοιο μπορεί να συμβεί σε απειροελάχιστες<br />
περιπτώσεις, λόγω της δομής και της μορφής του δικτύου ΜΜΜ, και του τρόπου λειτουργίας τους. Η<br />
παράθεση των διαφοροποιημένων στοιχείων θα πρόσθετε λοιπόν, προς χάριν πολύ σπανίων<br />
περιπτώσεων, αυξημένη πολυπλοκότητα κι όγκο στοιχείων προς τον Φρήστη.<br />
Δίπλα στην κατακόρυφη στήλη με τα λεκτικά στοιχεία υπάρχει ο χάρτης, πάνω στον οποίο<br />
παρουσιάζεται κάθε φορά η επιλεγμένη Πρόταση Σαξιδίου.<br />
158
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 70: Η οπτικοποίηση της Πρότασης Σαξιδίου στον Φάρτη.<br />
πως μπορεί να παρατηρηθεί, οι διάφοροι κλάδοι της Πρότασης έχουν χρωματισθεί ανάλογα με τον<br />
τρόπο, το μέσο, και την Γραμμή με την οποία πρέπει να πραγματοποιηθούν, και στην αρχή τού κάθε<br />
159
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
κλάδου υπάρχει αντίστοιχα χρωματισμένος Marker με ετικέττα τον αύξοντα αριθμό του κλάδου.<br />
Έτσι, γίνεται άμεσα η σύνδεση από τον Φρήστη της οπτικοποίησης με την λεκτική παράθεση. Θέση<br />
του κέρσορα πάνω σε κάποιον Marker εμφανίζει ένα tooltip με το όνομα π.χ. της στάσης, ενώ το<br />
toggle button που υπάρχει κάτω δεξιά δίνει κι εδώ την δυνατότητα θέασης του δικτύου και των<br />
σταθμών του Metro.<br />
6.3.3.11 Διαχείριση Προτάσεων.<br />
το κάτω μέρος της η κατακόρυφη στήλη περιέχει τρία κουμπιά τα οποία ενεργοποιούν τις<br />
λειτουργίες διαχείρισης των προτάσεων:<br />
‗New‘, για την δημιουργία ενός νέου ερωτήματος,<br />
‗Edit‘, για την επιστροφή στην κατάσταση παραμετροποίησης ερωτήματος (state<br />
‗Options‘) και την νέα διαμόρφωσή τής τελευταίας,<br />
‗Print‘, για την εκτύπωση της εμφανιζόμενης Πρότασης Σαξιδίου.<br />
Η εκτύπωση πραγματοποιείται προς ένα αρχείο PDF, σε σελίδα μεγέθους Α4.. Η λειτουργία όμως<br />
αυτή είναι προβληματική, καθώς η open source βιβλιοθήκη AlivePDF που χρησιμοποιείται, βρίσκεται<br />
ακόμη σε πολύ πρωίμο στάδιο ανάπτυξης. ε κάθε περίπτωση όμως, είναι εφικτή η εκτύπωση<br />
απευθείας από τον browser, ή ακόμη κι από το Flash Player Plugin, χωρίς όμως να υπάρχει έτσι η<br />
κατάλληλη προσαρμογή για το μέγεθος σελίδας, την οικονομία της εκτύπωσης (με περιορισμό των<br />
χρωμάτων), και την καλύτερη αντίθεση.<br />
Θα πρέπει να σημειωθεί, αν κι έχει αναφερθεί και σε άλλο σημείο του κειμένου, πως έχει γίνει<br />
προσπάθεια έτσι ώστε να μην υπάρχει μετά την μορφοποίηση των Προτάσεων Σαξιδίου εξάρτηση<br />
της client εφαρμογής από τους Servers. Αυτό, αφενός για να μειωθεί η κίνηση του δικτύου και ο<br />
υπολογιστικός φόρτος, αφετέρου για να μπορεί ο Φρήστης να βλέπει τα αποτελέσματα ακόμη κι όταν<br />
δεν έχει έπειτα διαθέσιμη πρόσβαση στο Internet, ή αυτή έχει ιδιαίτερα υψηλό κόστος.<br />
160
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4 Σεχνική Περιγραφή.<br />
πως έχει αναφερθεί, το σύστημα ακολουθεί την αρχιτεκτονική Client-Server, ενώ οι άμεσες<br />
λειτουργίες που προσφέρονται είναι οι ακόλουθες:<br />
Εμφάνιςθ Δικτφου ΜΜΜ<br />
Χαρτογραφικό Τπόβακρο<br />
Προζλευςθσ-Προοριςμοφ<br />
Με Marker<br />
Dragging<br />
Με Λειτουργίεσ<br />
Επιλογι<br />
Χάρτθ<br />
Από Ενεργά<br />
Αντικείμενα<br />
Επιλογι Σρόπου<br />
Βελτιςτοποίθςθσ<br />
Επιλογι Επικυμθτών<br />
Μζςων<br />
Επιλογι Μζγιςτθσ<br />
Απόςταςθσ Πεηι<br />
Επιλογι Για Αναχώρθςθ ι<br />
Άφιξθ<br />
Επιλογι Χρονικισ τιγμισ<br />
Διάγραμμα 6: Λειτουργίες κατά την παραμετροποίηση.<br />
Από θμεία<br />
Ενδιαφζροντοσ<br />
Από Geocoding<br />
Παραμετροποίθςθ<br />
Ερωτιματοσ<br />
Προκακοριςμόσ<br />
Άλλεσ Λειτουργίεσ (Πλθροφορίεσ, Βοικεια, Επικοινωνία, κτλ)<br />
161
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Διάγραμμα 7: Εύρεση προτάσεων ταξιδίου, μετεπεξεργασία, εμπλουτισμός, κι άλλες ενέργειες.<br />
Εμφάνιςθ Δικτφου ΜΜΜ<br />
Διαμόρφωςθ<br />
Προτάςεων<br />
Χαρτογραφικό Τπόβακρο<br />
Εκτφπωςθ<br />
Επεξεργαςία Από Σο Routing Engine<br />
Μετεπεξεργαςία<br />
Προςκικθ Εναλλακτικών Γραμμών<br />
Εφρεςθ Αναγκαίου Ειςιτθρίου<br />
Εμφάνιςθ<br />
Προτάςεων<br />
Σροποποίθςθ<br />
Παραμετροποίθςθσ<br />
Επανζναρξθ<br />
Άλλεσ Λειτουργίεσ (Πλθροφορίεσ, Βοικεια, Επικοινωνία, κτλ)<br />
Διάγραμμα 8: Παρούσιαση Προτάσεων, διαχείρισή τους, και επιλογή συνέχειας.<br />
162
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Με βάση τις λειτουργίες αυτές, και τα εργαλεία που ήδη έχει αναφερθεί πως επιλέχτηκαν για την<br />
χρησιμοποίησή τους, το ευρύτερο μοντέλο που αναπτύχθηκε είναι το εξής:<br />
Ραραμετροποίθςθ<br />
Ερωτιματοσ<br />
Διαμόρφωςθ<br />
Ρροτάςεων<br />
ΧΡΘΣΘ<br />
GOOGLE<br />
SERVICES<br />
Χαρτογραφικό<br />
Υπόβακρο<br />
Επιλογι<br />
Ρροζλευςθσ-Ρροοριςμοφ<br />
Μετεπεξεργαςία<br />
Πλα Εκτόσ<br />
Από Σθμεία Ενδιαφζροντοσ<br />
ΕΦΑΡΜΟΓΘ ΧΡΘΣΘ<br />
Διαμόρφωςθ<br />
Ρροτάςεων<br />
Εμφάνιςθ Δικτφου ΜΜΜ<br />
Ρροκακοριςμόσ<br />
Άλλεσ Λειτουργίεσ<br />
Χαρτογραφικό Υπόβακρο<br />
Ραραμετροποίθςθ Ερωτιματοσ<br />
Ραροχι Εφαρμογισ Χριςτθ / Ρροκακοριςμόσ<br />
Άλλεσ Λειτουργίεσ<br />
Μετεπεξεργαςία<br />
Ρροςκικθ Εναλλακτικϊν Γραμμϊν<br />
Εφρεςθ Αναγκαίου Ειςιτθρίου<br />
Εμφάνιςθ Ρροτάςεων Εκτφπωςθ<br />
TSOOP! SERVER<br />
Διαμόρφωςθ Ρροςκικθ Εναλλακτικϊν Γραμμϊν<br />
Ρροτάςεων Routing Engine<br />
Διάγραμμα 9: Απεικόνιση τού ποιές λειτουργίες εκτελούνται σε κάθε τμήμα του υστήματος.<br />
163
6.4.1 Γενικά.<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Η Web-Based εφαρμογή Φρήστη που έχει αναπτυχθεί στα πλαίσια του Open Trip Planner, και η<br />
οποία αποτελούσε την βάση για την αρχική εφαρμογή χρήστη και στην Παρούσα, χρησιμοποιεί τον<br />
Tomcat ως server, λειτουργώντας με βάση την javascript.<br />
Για την τελική όμως Εφαρμογή του Tsoop!, η οποία και περιγράφεται εδώ, επιλέχτηκε ως περιβάλλον<br />
ανάπτυξης το Adobe Flex framework, στην έκδοση 4, αν και δεν υπήρχε καμία εμπειρία από<br />
προηγούμενη χρήση του. πως περιγράφεται και στην Παράγραφο 5.1.13, το Flex πρόκειται για ένα<br />
open source SDK πλάισιο το οποίο προσφέρει πάρα πολλές δυνατότητες για την δημιουργία RIAs<br />
(Rich Internet Apllications), έχοντας μάλιστα στοιχεία και διευκολύνοντας την συνδεσιμότητα με<br />
άλλες εφαρμογές και πρότυπα της εταιρίας Adobe, όπως είναι τo Flash. Λόγω λοιπόν του ευρύτερου<br />
περιβάλλοντος στο οποίο ανήκει, το Flex παρέχει την δ8υνατότητα δημιουργίας εφαρμογών με<br />
εντυπωσιακή και λειτουργική εμφάνιση, με εύκολη συμπερίληψη μάλιστα multimedia στοιχείων.<br />
Η γλώσσα που χρησιμοποιείται στο Flex για την ανάπτυξη της «λογικής» είναι η ActionScript v3.0, η<br />
οποία θυμίζει αρκετά την Java ως προς την σύνταξη, και είναι έντονα αντικειμενοστραφής. Ένα<br />
σημαντικό στοιχείο του Flex στην έκδοση που χρησιμοποιήθηκε είναι το Spark namespace, το οποίο<br />
προσφέρει οπτικά και μη αντικείμενα, με εξελιγμένες ιδιότητες και μεθόδους.<br />
Mεγάλο πλεονέκτημα του Flex είναι επίσης η δυνατότητα λειτουργίας σε μεγάλο αριθμό<br />
διαφορετικών λειτουργικών συστημάτων, σε ποικίλες κατηγορίες συσκευών (desktop υπολογιστές,<br />
κινητά τηλέφωνα), μέσα σε browsers ή ανεξάρτητα (σε Adobe AIR), χωρίς να απαιτείται σχεδόν<br />
καμία μεταβολή του κώδικα.<br />
6.4.2 Λειτουργίες τον HTTP Server.<br />
H client Εφαρμογή Φρήστη παρέχεται σε αυτόν μέσω ενός HTTP Server. Ο Server παρέχει λοιπόν<br />
προς τον browser του χρήστη ένα αρχικό html αρχείο, το οποίο ελέγχει για την ύπαρξη του<br />
κατάλληλου Flash player και σε περίπτωση που αυτός λείπει αλλά είναι διαθέσιμος για την συσκευή,<br />
το λειτουργικό σύστημα, ή και τον browser του χρήστη, τότε προτείνεται στον τελευταίο να<br />
προχωρήσει στο κατέβασμα και την εγκατάσταση.<br />
Ο ΗΣΣP Server, ο οποίος έχει επιλεχθεί να είναι συγκεκριμένα ο Apache HTTP Server, προμηθεύει<br />
την client Εφαρμογή και με όλα τα αρχεία εικόνων (JPG, PNG, κ.α.), όπως επίσης και με τα όμοια<br />
αρχεία που χρησιμοποιούνται για την παροχή πληροφοριών και βοήθειας. Ο Server είναι<br />
164
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
προσβάσιμος μέσω συγκεκριμένου port που καθορίζεται. υνήθως ο αριθμός του port για web<br />
servers είναι το 80, όμως στην συγκεκριμένη εφαρμογή χρησιμοποιήθηκε το 8087, έτσι ώστε να μην<br />
επηρεάζεται η λειτουργία άλλων προεγκατεστημένων web servers.<br />
Μία άλλη λειτουργία που πραγματοποιείται στον HTTP Server είναι η εκτέλεση διαφόρων αρχείων<br />
PHP. Σα αρχεία αυτά, όπως αναφέρεται και σε άλλο σημείο του κειμένου, χρησιμοποιούνται ως<br />
ενδιάμεσα για τις συνδέσεις της Flex εφαρμογής με τις διάφορες HTTP υπηρεσίες. Με αυτόν τον<br />
τρόπο παρακάμπτεται η αναγκαιότητα για την ύπαρξη ενός αρχείου αδειοδότησης της πρόσβασης,<br />
ανάλογα με το IP του client. Η δημιουργία ενός τέτοιου αρχείου δεν θα ήταν φυσικά πρόβλημα για<br />
τις HTTP υπηρεσίες που παρέχονται από τον Tsoop! Server, θα ήταν όμως αδύνατον για τις HTTP<br />
υπηρεσίες που παρέχονται από την Google. Αν και η Google παρέχει και αντίστοιχες SOAP<br />
υπηρεσίες, αυτές δεν προτιμήθηκαν, για λόγους που αναφέρονται στις αχετικές παραγράφους.<br />
Ένα πρόσθετο πλεονέκτημα της χρήσης PHP είναι η μετατροπή των δεδομένων που διακινούνται,<br />
από XML σε JSON μορφή. Με αυτόν τον τρόπο επιτυγχάνεται μείωση του διακινούμενου όγκου,<br />
καθώς τα περιγραφικά δεδομένα είναι λιγότερα. Από την άλλη όμως, προκύπτει διακίνηση των<br />
δεδομένων που αφορούν τις HTTP υπηρεσίες της Google μέσω του Tsoop! Server, γεγονός που<br />
αυξάνει έτσι την κίνηση από και προς τον server.<br />
Η PHP έχει έναν ακόμη ρόλο, αυτόν του ενδιάμεσου ανάμεσα στην client εφαρμογή και τον<br />
PostgreSQL Server. Ο Server αυτός χρησιμοποιείται για την εύρεση των εναλλακτικών Γραμμών<br />
(ή/και παραλλαγών) οι οποίες συνδέουν το ζεύγος στάσεων που αντιστοιχεί σε ένα τμήμα μίας<br />
Πρότασης Σαξιδίου. Αυτό γιατί το routing engine δίνει μόνο μία Γραμμή για την σύνδεση των δύο<br />
στάσεων, αυτή που αντιστοιχεί σε συγκεκριμένο δρομόλογιο.<br />
Για να έχει ο Apache HTTP Server την δυνατότητα παροχής της PHP, χρειάζεται να γίνει<br />
εγκατάσταση πρόσθετων αρχείων που δίνονται δωρεάν από το site ανάπτυξης της γλώσσας, όπως<br />
επίσης, να γίνουν οι κατάλληλες ρυθμίσεις.<br />
6.4.3 Λειτουργίες τον Tomcat Server.<br />
Ο Tomcat Server ανήκει κι αυτός στην οικογένεια Apache. την Εφαρμογή που υλοποιήθηκε ο<br />
Tomcat χρησιμοποιείται ως servlet container για το routing engine. το Project του<br />
OpenTripPlanner o Tomcat χρησιμοποιείται και για την web-based Εφαρμογή Φρήστη. Η πρόσβαση<br />
στον Tomcat γίνεται μέσω ενός καθορισμένου port, το οποίο στην περίπτωση της παρούσας έχει<br />
οριστεί να είναι το 58080.<br />
165
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Αν και θα μπορούσε να χρησιμοποιηθεί ο Tomcat και για την κάλυψη των υπηρεσιών που παρέχονται<br />
από τον HTTP server, εν τούτοις προτιμήθηκε να υπάρχουν σε λειτουργία και οι δύο. Αυτό γιατί ο<br />
τελευταίος παρέχει την δυνατότητα μεγαλύτερης παραμετροποίησης, είναι αρκετά πιο γρήγορος<br />
όσον αφορά στατικές σελίδες, αρκετά πιο ―ρωμαλέος», κι επίσης μπορεί να καλύψει γενικότερες<br />
ανάγκες. Έτσι, θέλοντας εξαρχής να υπάρχει ένα σύστημα το οποίο να είναι προσαρμόσιμο πάνω σε<br />
hardware που χρησιμοποιείται π.χ. και για άλλες χρήσεις, υιοθετήθηκε η συνλειτουργία και των δύο<br />
servers.<br />
6.4.4 Λειτουργίες Που Πραγματοποιούνται Με Φρήση Σων Τπηρεσιών Που<br />
Παρέχονται Από Σην Google.<br />
την Εφαρμογή που παρουσιάζεται, χρησιμοποιούνται η HTTP υπηρεσία της Google για το<br />
geocoding και το routing που αφορά τις διαδρομές πεζή. Οι υπηρεσίες αυτές ονομάζονται<br />
Geocoding και Directions αντίστοιχα. πως έχει ήδη αναφερθεί, η πρόσβαση στην πρώτη υπηρεσία<br />
από την client εφαρμογή δεν γίνεται απευθείας, αλλά μέσω του Apache HTTP Server και των<br />
σχετικών PHP scripts. Πλέον αυτών, χρησιμοποιείται και η υπηρεσία χάρτη της εταιρείας, Google<br />
Map, ώς υπόβαθρο. Η πρόσβαση στην Directions και την Map γίνονται μέσω επεκτάσεων του Flex<br />
που παρέχονται δωρεάν από την ίδια την Google.<br />
Η υπηρεσία Geocoding χρησιμοποιείται για την εύρεση διευθύνσεων σύμφωνα με κάποια<br />
αλφαριμθητική εισαγωγή που κάνει ο Φρήστης. Οι διευθύνσεις αυτές χρησιμοποιούνται ως σημεία<br />
προελεύσεων και προορισμών. Παρέχεται δωρεάν, με όριο όμως τις 2500 κλήσεις ανά ημέρα.<br />
Η υπηρεσία Directions χρησιμοποιείται για το routing διαδρομών, τμήματα του προτεινόμενου<br />
ταξιδίου, που πρέπει να γίνουν πεζή. Σο routing αυτό γίνεται σε πρώτο στάδιο από το routing<br />
engine. μως, τα διάφορα προβλήματα πληρότητας κι εγκυρότητας που παρουσιάζουν τα δεδομένα<br />
του οδικού δικτύου που χρησιμοποιούνται σε αυτό, δηλαδή του Open Street Map, ώθησαν ώστε από<br />
την Εφαρμογή Φρήστη να αντικαθίσταται το σχετικό routing πεζή με αυτό της υπηρεσίας Directions.<br />
Κατά αυτόν τον τρόπο είναι δυνατόν να παρέχεται και αναλυτική καθοδήγηση, χρησιμοποιοώντας<br />
τις ονομασίες των οδών.<br />
μως, έτσι δεν αποφευγέται η επιλογή Προτάσεων που εν μέρει βασίζονται σε όχι σωστά στοιχεία,<br />
ενώ είναι πρακτικά αναπόφευκτες οι διαφοροποιημένες απαντήσεις σε κάποιες περιπτώσεις.<br />
166
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4.5 Routing Engine.<br />
To routing engine που χρησιμοποιείται βασίζεται στο open source πακέτο λογισμικού<br />
OpenTripPlanner, το οποίο όμως βρίσκεται σε πολύ πρωϊμο στάδιο ανάπτυξης. Φαρακτηριστικά, η<br />
τρέχουσα έκδοση είναι η 0.3. Αυτό ήταν ένα σημαντικό πρόβλημα κατά την δημιουργία του<br />
συστήματος που περιγράφεται, αφού παρουσιάζονταν διάφορες δυσλειτουργίες, και οι νέες εκδόσεις<br />
των διαφόρων κλάσεων δημιουργούσαν συνεχώς προβλήματα συμβατότητας.<br />
Μόλις οριστικοποιήθηκε ο συνδυασμός των εκδόσεων κλάσεων που ήταν λειτουργικός, τότε έγιναν<br />
πάνω σε αυτή την συνολική έκδοση διάφορες τροποποιήσεις, ώστε να καλυφθούν οι ανάγκες<br />
χρήσεις της εφαρμογής που υλοποιήθηκε. Οι τροποποιήσεις αυτές δεν αφορούσαν τον τρόπο με τον<br />
οποίον γίνεται η αναζήτηση λύσεων στον Γράφο, αλλά:<br />
την παραμετροποίηση των διαφόρων στοιχείων που καθορίζουν την αναζήτηση,<br />
όπως π.χ. του κόστος μετεπιβίβασης, τη; Σαχύτητα; περπατήματος, του πόσο<br />
προτιμότερο είναι το περπάτημα από την αναμονή οχήματος ΜΜΜ, κ.α.. Οι<br />
παραμετροποιήσεις αυτές δεν έχουν παραμείνει σταθερές, αλλά μεταβάλονται<br />
συνεχώς, ώστε να βελτιώνονται διαρκώς οι λύσεις που προτείνονται, ανάλογα με<br />
την εκτίμηση των λύσεων που εμφανίζονται στις διάφορες δοκιμές, σε συνδυασμό<br />
με την εμπειρία.<br />
την κατάλληλη μορφοποίηση των αποτελεσμάτων, έτσι ώστε να είναι συμβατά με<br />
το Flex Framework που χρησιμοποιείται στην Εφαρμογή Φρήστη, όπως επίσης και<br />
να είναι κατά το δυνατόν περιορισμένα σε μέγεθος. Για τον σκοπό αυτό<br />
τροποποιήθηκαν κατάλληλα τα classes που αφορούν την απάντηση (response) κι<br />
απαλείφτηκαν π.χ. οι λεπτομέρειες που αφορούν τα βήματα στις διαδρομές πεζή<br />
(οδηγίες καθοδήγησης).<br />
6.4.5.1 Μορφή HTTP Ερωτήματος.<br />
πως έχει αναφερθεί, το routing engine τρέχει στον Tomcat Server, ως ένα java module. την<br />
πραγματικότητα τα modules είναι δύο: το ένα αφορά το ίδιο το routing, ενώ το άλλο αφορά την<br />
παροχή του web-api interface.<br />
Σο ερώτημα που τίθεται προς τον server από την Client Εφαρμογή είναι της εξής μορφής:<br />
167
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
http://{servernamedomain}:{port}/opentripplanner-apiwebapp/ws/plan<br />
?fromPlace={lat, lng}<br />
&toPlace={lat,lng}<br />
&arriveBy={Depart ή Arrive}<br />
&optimise={QUICK ή TRANSFERS ή SAFE}<br />
&maxWalkDistance={απόζηαζη ζε μέηπα}<br />
&mode={Σςνδςαζμόρ ηων λέξεων TRANSIT, BUSISH,TRAINISH,WALK,BICYCLE,<br />
σωπιζμένων με κόμμα}<br />
&numIteneraries={1 ή 2 ή 3}<br />
&date={ημεπομηνία}<br />
&time={ώπα}<br />
&showIntermediateStops={true ή false}<br />
Servernamedomain:<br />
Port:<br />
fromPlace:<br />
toPlace:<br />
Είναι η διεύθυνση του server στον οποίο τρέχει το API. Π.χ. www.tsoop.gr.<br />
Ο αριθμός της θύρας (port) στην οποία «ακούει» ο server τα ερωτήματα προς το API. Π.χ.<br />
58080.<br />
Σο σημείο αφετηρίας, με τις γεωγραφικές συντεταγμένες στην μορφή ‗πλάτος, μήκος‘<br />
διαχωρισμένες με κόμμα. Π.χ. 37.12345,23.98765.<br />
Σο σημείο τερματισμού, εκφρασμένο όμοια με το σημείο αφετηρίας.<br />
168
arriveBy:<br />
optimise:<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Δέχεται μία από τις τιμές ‗Depart‘ και ‗Arrive‘. Με την ‗Depart‘ ορίζεται ότι η ημερομηνία<br />
και η ώρα αφορούν την επιθυμητή στιγμή αναχώρησης (όχι νωρίτερα από αυτήν), ενώ με<br />
την ‗Arrive‘ ορίζεται ότι η ημερομηνία και η ώρα του ερωτήματος αφορούν την επιθυμητή<br />
στιγμή άφιξης στον προορισμό (δηλαδή όχι αργότερα από αυτήν).<br />
Η επιθυμητή βελτιστοποίηση των προτεινόμενων διαδρομών. Με την ‗QUICK‘ επιλέγεται η<br />
βελτιστοποίηση που επιτυγχάνει την γρηγορότερη άφιξη, με την ‗TRANSFERS‘ αυτή που<br />
επιτυγχάνει τις λιγότερες αλλαγές μέσων, ενώ με την ‗SAFE‘ αυτή που επιτυγχάνει την<br />
ασφαλέστερη ποδηλατική διαδρομή, η οποία όμως δεν χρησιμοποιείται στην παρούσα.<br />
Για να χρησιμοποιηθεί σωστά η επιλογή ‗SAFE‘ απαιτείται καθορισμός της επίδρασης στην<br />
ασφάλεια που παρέχει κάθε οδός του δικτύου, ο οποίος καθορισμός μπορεί να γίνει είτε<br />
γενικά, ανάλογα με τον τύπο της οδού, είτε πιο ειδικευμένα, ανά οδό. Η διαδικασία<br />
απόδοσης στοιχείων ασφάλειας στις οδούς γίνεται κατά την δημιουργία του Γράφου.<br />
maxWalkDistance:<br />
mode:<br />
numItineraries:<br />
Η επιθυμητή μέγιστη απόσταση περπατήματος κατά το ταξίδι, εκφρασμένη σε μέτρα. Η<br />
απόσταση αυτή δεν είναι δεσμευτική από την μηχανή του routing, καθώς μπορεί να την<br />
αυξάνει για την δημιουργία προτάσεων ταξιδίου.<br />
Ο συνδυασμός των λέξεων, διαχωρισμένων με κόμμα, ορίζει τον επιθυμητό τρόπο ταξιδίου,<br />
αποκλείοντας άλλους. Με την λέξη ‗TRANSIT‘ επιλέγονται όλα τα ΜΜΜ, με την ‗BUSISH‘<br />
μόνο τα λεωφορεία, με την ‗TRAINISH‘ μόνο τα τρένα. Με την ‗WALK‘ επιλέγεται και η<br />
διαδρομή πεζή, ενώ με την ‗BICYCLE‘ και η διαδρομή με ποδήλατο. Ο ορισμός της<br />
παραμέτρου ως ‗TRANSIT, WALK‘ π.χ., ορίζει η αναζήτηση να γίνει για ταξίδια που<br />
συνδυάζουν όλα τα ΜΜΜ και την διαδρομή πεζή.<br />
Πρόκειται για έναν ακέραιο αριθμό, με τον οποίο καθορίζεται ο αριθμός της Πρότασης<br />
Διαδρομής (Journey Proposal) που επιθυμείται στην απάντηση. Η τιμή μπορεί να έχει την<br />
τιμή 1, 2, 3, καθώς τρείς είναι οι μέγιστες επιστρεφόμενες Προτάσεις Σαξιδίου. Εύκολα<br />
μπορούν να παρέχονται περισσότερες Προτάσεις, όμως αυτό δεν έχει ιδιαίτερο πρακτικό<br />
169
date:<br />
time:<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
νόημα. την παρούσα φάση παρέχεται μόνο μία Πρόταση όταν έχει δοθεί το ‗Arrive‘ στην<br />
παράμετρο arriveBy.<br />
Η ημερομηνία στην οποία επιθυμείται η αναχώρηση ή η αφιξη. Πρόκειται για ένα string της<br />
μορφής ‗MM/DD/YYYY‘.<br />
Η ώρα στην οποία επιθυμείται η αναχώρηση ή η αφιξη. Πρόκειται για ένα string της μορφής<br />
‗hh:mm‘ ή ‗hh:mm p‘.<br />
showIntermediateStops:<br />
wheelchair:<br />
Boolean παράμετρος, η οποία δέχεται μία από τις τιμές ‗true‘, ‗false‘. την περίπτωση της<br />
τιμής ‗true‘ στα αποτελέσματα δίνονται επιπλέον στοιχεία για τις ενδιάμεσες στάσεις κάθε<br />
τμήματος διαδρομής με ΜΜΜ.<br />
Boolean παράμετρος, η οποία δέχεται μία από τις τιμές ‗true‘, ‗false‘. την περίπτωση της<br />
τιμής ‗true‘ η δημιουργία προτάσεων ταξιδίου λαμβανει υπόψη την προσβασιμότητα από<br />
αναπηρικά αμαξίδια. την περίπτωση της Αθήνας δεν υπάρχουν τέτοια στοιχεία, αν και<br />
δυστυχώς αν αυτά δεν απεικόνιζαν μία εικονική πραγματικότητα, τότε ο Journey Planner<br />
δεν θα ήταν σε θέση να προτείνει διαδρομές. υνεπώς, δεν χρησιμοποιείται στην παρούσα<br />
Εφαρμογή.<br />
Ένα πλήρες παράδειγμα της διατύπωσης ερωτήματος προς το API είναι το εξής:<br />
http://www.tsoopdomain.gr:58080/opentripplanner-api-<br />
webapp/ws/plan?fromPlace=38.013967724051,23.769744081396&toPlace=38.00869296<br />
9808,23.810427827732&arriveBy=Depart&optimise=QUICK&maxWalkDistance=840&mode<br />
=TRANSIT,WALK&numIteneraries=3&date=10/16/2010&time=14:30&showIntermediateSt<br />
ops=true&wheelchair=false<br />
Κάποιες από τις παραμέτρους μπορούν να μην υπάρχουν στο ερώτημα, οπότε και αντικαθίστανται<br />
από τις default τιμές τους κατά το routing. Π.χ. οι παράμετροι showIntermediateStops και<br />
wheelchair έχουν ως default την τιμή false.<br />
170
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4.5.2 Μορφή Απάντησης.<br />
Σα αποτελέσματα που παρέχονται από το API είναι σε μορφή XML, αν και μέσω της PHP που<br />
χρησιμοποιείται ως ενδιάμεση, η τελική μορφή που λαμβάνει η client Εφαρμογή είναι JSON. Για το<br />
προηγούμενο παράδειγμα ερωτήματος, η απάντηση όπως δίνεται από την υλοποίηση της παρούσας<br />
Εφαρμογής, είναι σε αποσπασματική μορφή:<br />
<br />
<br />
<br />
2010-10-16T14:30:00+03:00<br />
<br />
Odos Dionisiou Solomou<br />
123<br />
23.76979128465102<br />
38.014089719552786<br />
<br />
{"type": "Point", "coordinates": [23.76979128465102,38.014089719552786]}<br />
<br />
<br />
<br />
way 32133535 from 1<br />
123<br />
23.810928071820058<br />
38.00869741175583<br />
<br />
{"type": "Point", "coordinates": [23.810928071820058,38.00869741175583]}<br />
<br />
<br />
Μέχρι το σημείο αυτό δίνονται τα στοιχεία που αφορούν το σύνολο της απάντησης (Response),<br />
όπου τα γεινκά στοιχεία αποτελούν το Plan.<br />
171
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Έτσι βλέπουμε ότι η απάντηση περιλαμβάνει την ημερομηνία και την ώρα (UTC+ZONE Offset το<br />
οποίο αγνοείται στην παρούσα, και η ώρα θεωρείται τοπική Αθήνας.<br />
Επίσης αναφέρονται τα στοιχεία της αφετηρίας (Pfrom) και του τερματισμού (Pto). Και για τα δύο<br />
αυτά σημεία δίνονται πληροφορίες για την ονομασία, τον κωδικό στάσης (‗123‘ στην περίπτωση που<br />
το ταξίδι δεν ξεκινά ή σταματά σε μία στάση), καθώς και τις γεωγραφικές συντεταγμένες. Η<br />
ονομασία περιέχει τις τιμές από το αντίστροφο geocoding στα στοιχεία του Γράφου, με βάση ότι<br />
πληροφορία έχει εισαχθεί για το οδικό δίκτυο. Επιπλέον δίνονται τα στοιχεία της γεωμετρίας σε<br />
μορφή GeoJSON.<br />
<br />
<br />
3545000<br />
2010-10-16T14:35:06+03:00<br />
2010-10-16T15:34:11+03:00<br />
882000<br />
2346000<br />
0<br />
1171.326784312879<br />
0.0<br />
0.0<br />
1<br />
<br />
<br />
<br />
regular<br />
<br />
100<br />
<br />
<br />
<br />
<br />
<br />
το τμήμα αυτό δίνεται η επικεφαλίδα για το τμήμα που περιέχει τις Προτάσεις Σαξιδίου<br />
(JourneyProposals), και ξεκινάει η περιγραφή της πρώτης από αυτές. Δίνονται στοιχεία για την<br />
172
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
διάρκεια ταξιδίου συνολικά (σε ms), την χρονική στιγμή εκκίνησης, την χρονική στιγμή τερματισμού,<br />
τον χρόνο διαδρομής πεζή (σε ms), τον χρόνο διαδρομής εντός ΜΜΜ, τον χρόνο αναμονής, το<br />
μήκος περπατήματος (σε μέτρα), όπως επίσης στοιχεία για την μεταβολή υψομέτρου και τον αριθμό<br />
των μετεπιβιβάσεων. Σα στοιχεία υψομέτρου, ιδιαίτερα χρήσιμα στην περίπτωση διαδρομής με<br />
ποδήλατο, είναι μηδενικά πάντα στην περίπτωση της Παρούσας Εφαρμογής.<br />
Σο τελευταίο στοιχείο αφορά το απαιτούμενο κόστος εισιτηρίου, ανά τύπο εισιτηρίου. Θα πρέπει να<br />
σημειωθεί εδώ ότι στο συγκεκριμένο θέμα υπάρχουν προβλήματα, τόσο στο GTFS, όσο και στην<br />
υλοποίηση του OpenTripPlanner. το μεν GTFS δεν παρέχεται η δυνατότητα ορισμού διαφορετικών<br />
τύπων εισιτηρίου, στον δε OpenTripPlanner δεν γίνεται απολύτως σωστά ο υπολογισμός του κόστους,<br />
καθώς το συγκεκριμένο τμήμα βρίσκεται σε πολύ πρώιμο στάδιο. Είναι ένα χαρακτηριστικό σημείο<br />
πάντως του μειονεκτήματος των trip planners που σχεδιάζονται για πολλές πόλεις, και σε αυτούς<br />
που αφορούν υλοποιήσεις για μία πόλη. τους planners της πρώτης περίπτωσης δεν παρέχεται η<br />
απαραίτητη ευελιξία για την μοντελοποίηση των τιμολογιακών πολιτικών όπως διαφοροποιούνται<br />
από πόλη σε πόλη.<br />
<br />
<br />
2010-10-16T14:35:06+03:00<br />
2010-10-16T14:42:17+03:00<br />
571.6015332866416<br />
WALK<br />
Odos Dionisiou Solomou<br />
<br />
Odos Dionisiou Solomou<br />
23.76979128465102<br />
38.014089719552786<br />
<br />
{"type": "Point", "coordinates":<br />
[23.76979128465102,38.014089719552786]}<br />
<br />
<br />
<br />
AG. DIMITRIOU<br />
ST778533<br />
23.77175<br />
38.009472<br />
173
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
<br />
{"type": "Point", "coordinates": [23.77175,38.009472]}<br />
<br />
<br />
<br />
9<br />
_s_gFepapCb@{ArA`@rABzASfIiCdEqAvBm@Ss@<br />
<br />
431000<br />
<br />
.<br />
.<br />
.<br />
Ακολουθούν τα υπόλοιπα legs.<br />
το τμήμα αυτό δίνεται η επικεφαλίδα για το ότι ακολουθεί η περιγραφή των τμημάτων ταξιδίου, των<br />
legs, και στη συνέχεια ξεκινάει η περιγραφή του πρώτου leg. την αρχή δίνονται τα γενικά του<br />
στοιχεία, δηλαδή η χρονική στιγμή εκκίνησης, η χρονική στιγμή άφιξης, το μήκος σε μέτρα, το μέσο<br />
(‗WALK‘ για περπάτημα, ‗BUS‘ για λεωφορείο, ‗SUBWAY‘ για metro, ‗RAIL‘ για τρένο, ή άλλα που<br />
δεν αφορούν την παρούσα εφαρμογή, π.χ. ‗FUNICULAR‘ για σχοινόδρομο), αλλά και την Γραμμή<br />
(route) που πρέπει να χρησιμοποιηθεί. την περίπτωση που το μέσο είναι ‗WALK‘, τότε το στοιχείο<br />
route περιέχει την οδό εκκίνησης.<br />
τη συνέχεια δίνονται για τα σημεία εκκίνησης (Pfrom) και τερματισμού (Pto) τα στοιχεία της<br />
ονομασίας, των συντεταγμένων, και της γεωμετρίας σε μορφή GeoJSON, όμοια με την περίπτωση<br />
του συνολικού ταξιδίου.<br />
το τμήμα δίνονται στοιχεία για την γεωμετρία του leg, δηλαδή ο αριθμός των<br />
σημείων και η encoded polyline, καθώς και η διάρκεια σε ms για την πραγματοποίηση του leg.<br />
την περίπτωση που το μέσο είναι λεωφορείο π.χ, τότε η περιγραφή του leg θα είναι σαν του<br />
επόμενου:<br />
<br />
2010-10-16T14:42:18+03:00<br />
2010-10-16T14:55:18+03:00<br />
2986.781358205151<br />
BUS<br />
174
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
653<br />
ETHEL<br />
<br />
AG. DIMITRIOU<br />
ST778533<br />
23.77175<br />
38.009472<br />
<br />
{"type": "Point", "coordinates": [23.77175,38.009472]}<br />
<br />
<br />
<br />
YGEIONOMIKO<br />
ST062237<br />
23.760923<br />
37.986801<br />
<br />
{"type": "Point", "coordinates": [23.760923,37.986801]}<br />
<br />
<br />
<br />
<br />
A'PLATEIA<br />
ST778523<br />
23.773988<br />
38.007745<br />
<br />
{"type": "Point", "coordinates": [23.773988,38.007745]}<br />
<br />
<br />
.<br />
.<br />
.<br />
Ακολοςθούν ηα ςπόλοιπα intermediate stops.<br />
175
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Οι διαφορές σε σχέση με το leg που αφορά διαδρομή πεζή είναι οι εξής:<br />
τα γενικά στοιχεία του leg υπάρχει επιπλέον η πληροφορία για τον φορέα<br />
(agencyID) που εκτελεί το συγκοινωνιακό έργο της συγκεκριμένης Γραμμής.<br />
Τπάρχει επιπλέον (κατ‘ επιλογήν) μία λίστα με τις ενδιάμεσες στάσεις. Για κάθε στάση<br />
υπάρχουν τα στοιχεία της ονομασίας, του κωδικού της, των γεωγραφικών<br />
συντεταγμένων της, αλλά και της θέσης της σε GeoJSON μορφοποίηση.<br />
το τέλος κάθε Πρότασης Διαδρομής υτπάρχουν τα εξής στοιχεία:<br />
false<br />
<br />
Σο είναι στοιχείο που δεν χρησιμοποιείται στην παρούσα υλοποίηση.<br />
το τέλος της XML απάντησης συναντώνται τα εξής:<br />
<br />
<br />
<br />
<br />
optimize<br />
QUICK<br />
<br />
<br />
showIntermediateStops<br />
true<br />
<br />
<br />
time<br />
14:30<br />
176
<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
wheelchair<br />
false<br />
<br />
<br />
maxWalkDistance<br />
840.0<br />
<br />
<br />
fromPlace<br />
38.013967724051,23.769744081396<br />
<br />
<br />
toPlace<br />
38.008692969808,23.810427827732<br />
<br />
<br />
date<br />
10/16/2010<br />
<br />
<br />
mode<br />
<br />
TraverseMode (WALK, TRAM, SUBWAY, RAIL, BUS, FERRY, CABLE_CAR, GONDOLA,<br />
FUNICULAR, TRANSIT, TRAINISH, BUSISH)<br />
<br />
<br />
<br />
numItineraries<br />
3<br />
<br />
<br />
<br />
177
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Αφού κλείνουν τα τμήματα των Προτεινόμενων Διαδρομών και του plan, στην συνέχεια, μέσα στο<br />
τμήμα requestParameters παρέχονται σε μία ArrayList τα στοιχεία του ερωτήματος στο οποίο<br />
δόθηκε η απάντηση. Επίσης παρέχεται σαν τελευταίο στοιχείο το πλήθος των Προτεινόμενων<br />
Διαδρομών που περιέχονται (numItineraries).<br />
Θα πρέπει να σημειωθεί εδώ ότι η μορφή της XML απάντησης έχει τροποποιηθεί ειδικά για την<br />
παρούσα υλοποίηση, κι έτσι πλέον δεν είναι συμβατή με άλλες υλοποιήσεις του OpenTripPlanner.<br />
Η πρώτη τροποποίηση είναι η μη συμπερίληψη των περιγραφικών βημάτων για τα<br />
legs που γίνονται πεζή. Ο λόγος είναι ότι για το συγκεκριμένο αντικείμενο<br />
προτιμήθηκε η λειτουργία του Google Directions API, καθώς τα στοιχεία είναι πιο<br />
πλήρη από αυτά που επιστρέφονται από τα OSM δεδομένα. Ακόμη, τα στοιχεία της<br />
Google μπορούν να επιστρέφονται σε διάφορες γλώσσες, ενώ αυτά των OSM, όπου<br />
υπάρχουν στην Αθήνα, είναι τυχαία είτε στα Ελληνικά, είτε στα Αγγλικά/Λατινικό<br />
αλφάβητο. Σα στοιχεία από το Google Directions συνδυάζονται με τα στοιχεία που<br />
παρέχει ο opentripplanner από την εφαρμογή χρήστη.<br />
Η δεύτερη τροποποίηση αφορά τις ονομασίες πεδίων, οι οποίες έχουν αλλάξει ώστε<br />
να είναι συμβατά με τους κανόνες που ορίζονται για τα properties από το Adobe<br />
Flex και τo ActionScript 3.0. Σο ένα τέτοιο σημείο είναι οι ονομασίες from, to, οι<br />
οποίες έχουν γίνει Pfrom, Pto. Σο άλλο σημείο είναι η αλλαγή των itenenaries<br />
και itenenary σε JourneyProposals και JourneyProposal αντίστοιχα.<br />
Οι αλλαγές αυτές αναγκαστικά έχουν γίνει και στις ονομασίες των classes, αφού η<br />
XML απάντηση είναι στην πραγματικότητα παράθεση των αντίστοιχων ArrayLists.<br />
Η τρίτη τροποποίηση αφορά την ύπαρξη των πεδίων σε όλες τις απαντήσεις, ώστε<br />
να μην εξαρτάται η παρουσία τους από τα γονικά πεδία. Αυτό σημαίνει ότι π.χ.<br />
στοιχεία που αφορούν ενδιάμεσες στάσεις εμφανίζονται ακόμη κι όταν το τμήμα<br />
του ταξιδίου αφορά μετακίνηση πεζή. Οι πληροφορίες που περιέχονται σε αυτές τις<br />
περιπτώσεις είναι είτε 0 για τα αριθμητικά πεδία, είτε μηδενικού μήκους string για<br />
τα πεδία κειμένου, είτε κάποια πληροφορία που επισημαίνει την ειδική περίπτωση<br />
και δεν χρησιμοποιείται κανονικά. Ο λόγος που υπάρχουν παντού όλα τα πεδία<br />
είναι ώστε να υπάρχει συμβατότητα με τους μηχανισμούς Get HTTP του Flex,<br />
καθώς διαφορετικά τα αποτελέσματα στο response δεν γίνονται αποδεκτά.<br />
178
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Επειδή οι αλλαγές αυτές θα χρειαστεί να γίνουν και σε άλλες υλοποιήσεις, προτείνεται στο forum<br />
ανάπτυξης του OpenTripPlanner να υιοθετηθούν όμοιες αλλαγές για το κύριο release, κι όχι να<br />
υπάρχουν κατά διαφορετικό τρόπο σε κάποια branches, όπως είναι αυτό της παρούσας Εφαρμογής.<br />
ε περίπτωση κάποιου προβλήματος στα στοιχεία του HTTP URL ερωτήματος, τότε επιστρέφεται μία<br />
διαφορετική απάντηση, επίσης σε XML. Ψς παράδειγμα παρατίθεται η εξής, η οποία αφορά<br />
ερώτημα με το γεωγραφικό μήκος του προορισμού να είναι εκτός περιοχής:<br />
<br />
<br />
400<br />
to<br />
<br />
Trip is not possible. You might be trying to plan a trip outside the map<br />
data boundary.<br />
<br />
false<br />
<br />
<br />
<br />
optimize<br />
QUICK<br />
<br />
.<br />
.<br />
.<br />
Η συνέχεια όμοια όπως και στην απάντηση σε περίπτωση που όλα είναι σωστά κι έχουν βρεθεί<br />
διαδρομές.<br />
το συγκεκριμένο παράδειγμα επιστρέφεται το πεδίο error, στο οποίο περιέχονται ένα id (400),<br />
το στοιχείο που λείπει (missing), κι ένα σχετικό μήνυμα περιγραφής.<br />
Άλλα πιθανά σφαλματα είναι τα εξής:<br />
179
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
# PLANNER ERROR MESSAGES<br />
1 PLAN_OK Success.<br />
2 SYSTEM_ERROR We're sorry. The trip planner is<br />
temporarily unavailable. Please try again<br />
later.<br />
3 OUTSIDE_BOUNDS Trip is not possible. You might be trying<br />
to plan a trip outside the map data<br />
boundary.<br />
4 REQUEST_TIMEOUT The trip planner is taking way too long to<br />
process your request. Please try again<br />
later.<br />
5 BOGUS_PARAMETER The request has errors that the server is<br />
not willing or able to process.<br />
6 PATH_NOT_FOUND Trip is not possible. Please check that<br />
you plan is within the bound of the map.<br />
7 NO_TRANSIT_TIMES<br />
No transit times available. The date may<br />
be past or too far in the future or there<br />
may not be transit service for your trip<br />
at the time you chose.<br />
8 GEOCODE_FROM_NOT_FOUND Origin is unknown. Can you be a bit more<br />
descriptive?<br />
9 GEOCODE_TO_NOT_FOUND Destination is unknown. Can you be a bit<br />
more descriptive?<br />
10 GEOCODE_FROM_TO_NOT_FOUND Both origin and destination are unknown.<br />
Can you be a bit more descriptive?<br />
11 TOO_CLOSE Origin is within a trivial distance of the<br />
destination.<br />
12 GEOCODE_FROM_AMBIGUOUS The trip planner is unsure of the location<br />
you want to start from. Please select from<br />
the following options, or be more<br />
specific.<br />
13 GEOCODE_TO_AMBIGUOUS The trip planner is unsure of the<br />
destination you want to go to. Please<br />
select from the following options, or be<br />
more specific.<br />
14 GEOCODE_FROM_TO_AMBIGUOUS The trip planner is unsure of the<br />
destination you want to go to. Please<br />
select from the following options, or be<br />
more specific.<br />
Από τα σφάλματα αυτά, τα 8, 9, 10, 12, 13, 14 δεν αφορούν την παρούσα Εφαρμογή, αφού ως<br />
Geocoder χρησιμοποιείται η υπηρεσία της Google από την εφαρμογή χρήστη. Γενικότερα πάντως, η<br />
διαχείριση των σφαλμάτων είναι θέμα της εφαρμογής χρήστη.<br />
180
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4.6 Εύρεση Εναλλακτικών Γραμμών.<br />
Σο routing engine δίνει μία μόνο Γραμμή (σε συγκεκριμένη χρονική στιγμή) η οποία συνδέει τις δύο<br />
στάσεις ενός τμήματος μίας Πρότασης Σαξιδίου. μως στην πράξη, όπως λειτουργεί το σύστημα<br />
ΜΜΜ της Αθήνας, όπου δεν υπάρχουν ιδιαίτερα συγκεκριμένοι χρόνοι για τις διελεύσεις των<br />
οχημάτων από τις στάσεις, είναι σκόπιμο ο Φρήστης να γνωρίζει και τις υπόλοιπες Γραμμές που<br />
συνδέεουν το ζεύγος στάσεων του κλάδου, έτσι ώστε σε περίπτωση που κάποιο όχημα των Γραμμών<br />
αυτών διέλθει από την στάση που αναμένουν, να επιβιβαστεί σε αυτό, και να μην περιμένει μόνο για<br />
όχημα της Γραμμής που δίνει σαν απάντηση ο OTP (και που θεωρητικά θα διέλθει πρώτο). Άλλωστε,<br />
οι χρόνοι διαδρομής μεταξύ δύο στάσεων για όλες τις Γραμμές του ΟΑΑ είναι πρακτικά ίδιοι, με<br />
σπάνιες διαφοροποιήσεις όταν υπάρχουν γραμμές Express που δεν κάνουν όλες τις ενδιάμεσες<br />
στάσεις.<br />
Η εύρεση των εναλλακτικών Γραμμών γίνεται στον Tsoop! Server, με χρήση ενός πίνακα βάσης<br />
δεδομένων σε PostgreSQL. Ο πίνακας αυτός περιέχει για κάθε Γραμμή και κατεύθυνση την<br />
αλληλουχία των στάσεων της διαδρομής. Ένα απόσπασμα του εν λόγω πίνακα έχει ως εξής:<br />
πως φαίνεται, περιέχονται πεδία που αφορούν:<br />
την σύντομη ονομασία της κάθε Γραμμής,<br />
τα headsigns που μπορεί να περιέχονται για κάποια Γραμμή, που πρακτικά<br />
αντιστοιχούν σε παραλλαγές της Γραμμής. Για παράδειγμα, η Γραμμή ‗M3‘ του<br />
metro έχει δύο παραλλαγές στην μία κατεύθυση: προς Δουκ. Πλακεντίας<br />
(‗PLAKENTIAS‘) και προς τον Αερολιμένα (‗AIRPORT‘).<br />
Σην κατεύθυνση της Γραμμής (‗0‘: Αφετηρία προς Σέρμα, ‗1‘: Σο αντίστροφο),<br />
Σην σειρά της κάθε στάσης στην Αλληλουχία,<br />
181
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σον κωδικό της στάσης,<br />
Σο είδος της επιβίβασης/αποβίβασης (επτρεπόμενη ή όχι).<br />
Ο πίνακας αυτός (‗otproutestops‘) έχει 22036 εγγραφές σύμφωνα με το τελευταίο Feed. Κλειδί του<br />
πίνακα είναι ο συνδυασμός των πεδίων (route_short_name, direction_id, trip_headsign,<br />
stop_sequence), ενώ ως index έχουν χρησιμοποιηθεί συνδυασμένα τα πεδία: route_short_name,<br />
stop_id, direction_id, trip_headsign, stop_sequence, pickup_type, drop_off_type, agency_id. Αυτό<br />
έχει πρακτικό νόημα, καθώς δεν υπάρχουν συχνές ενημερώσεις των στοιχείων του πίνακα.<br />
Η πρόσβαση στον εν λόγω πίνακα από τον client γίνεται μέσω PHP αρχείου που εκτελείται από τον<br />
Tsoop! HTTP Server. το αρχείο δίνονται URL-encoded η Γραμμή από τον OTP, το headsign, ο<br />
κωδικός της στάσης προέλευσης, κι ο κωδικός της στάσης προορισμού. Σο PHP αρχείο<br />
πραγματοποιεί ένα SQL ερώτημα στην PostgreSQL, κι επιστρέφει σε μορφή XML την λίστα με τις<br />
εναλλακτικές Γραμμές και τις παραλλαγές τους που συνδέουν το ζεύγος των στάσεων.<br />
Διάγραμμα 10: Οι εναλλακτικές συνδέσεις μεταξύ δύο στάσεων βρίσκονται μέσω PHP αρχείου που<br />
κάνει SQL ερώτημα σε πίνακα της PostgreSQL.<br />
Το SQL Query όπωσ εκφράηεται μζςα ςτθν PHP ζίναι:<br />
"SELECT t1.route_short_name, t1.trip_headsign<br />
FROM otproutestops as t1, otproutestops as t2<br />
WHERE (t1.route_short_name'$route' OR (t1.route_short_name='$route' AND<br />
t1.trip_headsign'$headsign')) AND t1.stop_id='$fromStop' AND<br />
t2.stop_id='$toStop' AND (t2.stop_sequence>t1.stop_sequence AND<br />
t1.route_short_name=t2.route_short_name AND<br />
t1.trip_headsign=t2.trip_headsign AND t1.direction_id=t2.direction_id) AND<br />
t1.pickup_type=0 AND t2.drop_off_type=0<br />
;"<br />
Client Εφαρμογι<br />
PHP<br />
ςτον Tsoop! HTTP Server<br />
'otproutestops' πίνακασ<br />
ςε PostgreSQL<br />
182
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
που με $ είναι οι αντίστοιχες μεταβλητές στις οποίες έχουν δοθεί τιμές από την URL κλήση. Π.χ. μία<br />
απάντηση είναι η εξής:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
837<br />
<br />
839<br />
<br />
η οποία περιέχει δύο Γραμμές, την ‗837‘ και την ‗839‘. Η ψευδοεγγραφή στην αρχή χρησιμοποιείται<br />
για λόγους συμβατότητας με το Flex σε περίπτωση που δεν υπάρχει ούτε μία εναλλακτική Γραμμή.<br />
6.4.7 Φρήση Σης Τπηρεσίας Google Directions.<br />
Σο ερώτημα για την Google Directions είνα ένα HTTP URL στην ακόλουθη μορφή:<br />
http://maps.googleapis.com/maps/api/directions/output?parameters<br />
όπου:<br />
output<br />
Είναι η αιτούμενη μορφοποίηση των αποτελεσμάτων, σε xml ή json μορφή.<br />
Και οι παράμετροι:<br />
183
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
origin (απαιτείται)<br />
Η αφετηρία ως διεύθυνση σε αλφαριθμητική μορφή, ή ως ζεύγος γεωγραφικών<br />
συντεταγμένων.<br />
destination (απαιτείται)<br />
Ο προορισμός ως διεύθυνση σε αλφαριθμητική μορφή, ή ως ζεύγος γεωγραφικών<br />
συντεταγμένων.<br />
mode (προαιρετικά)<br />
Προσδιορίζει τον επιθυμητό τρόπο ταξειδίου. Μπορεί να είναι driving, walking, ή bicycling<br />
(μόνο για τις USA προς το παρόν). την παρούσα χρησιμοποιείται μόνο το ‗driving‘.<br />
waypoints (προαιρετικά)<br />
Καθορίζει μία λίστα από ενδιάμεσα σημεία διαδρομής (waypoints). Σα σημεία μπορούν να<br />
δίνονται όμοια με την αφετηρία ή τον προορισμό, ως διευθύνσεις ή ως ζεύγη γεωγραφικών<br />
συντεταγμένων. την παρούσα δεν υπάρχει ενδιαφέρον για ενδιάμεσα σημεία.<br />
alternatives (προαιρετικά)<br />
Εάν τεθεί true, τότε τα αποτελέσματα περιέχουν παραπάνω από μία προτάσεις διαδρομών,<br />
αυξάνοντας όμως τον χρόνο απόκρισης από τον server. την παρούσα είναι πάντα false.<br />
avoid (προαιρετικά)<br />
Καθορίζει ότι η προτεινόμενη διαδρομή θα πρέπει να αποφεύγει τα στοιχεία που δίνονται.<br />
Προς το παρόν υπολογίζονται τα στοιχεία διόδια (tolls) και αυτοκινητόδρομοι (highways).<br />
Δεν χρησιμοποείται στην παρούσα αφού αφορά μόνο διαδρομές πεζή.<br />
units (προαιρετικά)<br />
Καθορίζει τις μονάδες μέτρησης στα αποτελέσματα. Δυνατές επιλογές είναι σε ‗metric‘ για<br />
το μετρικό, ή ‗imperial‘ για το αγγλοσαξονικό σύστημα (σε feets). Η παραμετροποίηση<br />
επηρεάζει μόνο τις οδηγίες καθοδήγησης σε μορφή κειμένου που περιέχονται στην<br />
απάντηση, καθώς όλα τα υπόλοιπα στοιχεία είναι πάντα σε μέτρα.<br />
184
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Επιπλέον, το ερώτημα δέχεται όπως και το Geocoding API τις παραμέτρους που τροποποιούν την<br />
προτεραιότητα των αποτελεσμάτων στο geocoding για ορθογώνιο πολύγωνο ή χώρα, όπως και για<br />
την γλώσσα και τον αισθητήρα θέσης. Δεν χρησιμοποείται όμως η δυνατότητα αυτή στην παρούσα<br />
Εφαρμογή, καθώς δίνονται πάντα ζεύγη συντεταγμένων.<br />
Σα αποτελέσματα περιέχουν δύο στοιχεία: το ‗status‘ και το ‗routes‘. το ‗status‘<br />
περιγράφεται η απόκριση του server στο ερώτημα, πρόκειται δηλαδή για το πεδίο που περιέχει την<br />
τιμή ‗OK‘ αν έχει βρεθεί απάντηση΄, ή μία άλλη τιμή που αναφέρεται σε λάθος ή πρόβλημα.<br />
Αν το ‗status‘ είναι ‗OK’, τότε στο στοιχείο ‗route‘ περιέχονται τα αποτελέσματα για την διαδρομή (ή<br />
τις διαδρομές εάν έχει επιλεγεί το να παρουσιάζονται εναλλακτικές). Ένα παράδειγμα<br />
αποτελέσματος σε json είναι το εξής:<br />
(με ερώτημα:<br />
http://maps.googleapis.com/maps/api/directions/json?origin=37.95,23.7<br />
5&destination=38,24&mode=walking&language=en&sensor=false<br />
):<br />
"status": "OK",<br />
"routes": [ {<br />
"summary": "Mesogeion/Μεζογείων and Leoforos Marathonos/Λεωθόπορ<br />
Μαπαθώνορ",<br />
"legs": [ {<br />
"steps": [ {<br />
"travel_mode": "WALKING",<br />
"start_location": {<br />
},<br />
"lat": 37.9500600,<br />
"lng": 23.7501500<br />
"end_location": {<br />
},<br />
"lat": 37.9499500,<br />
"lng": 23.7502200<br />
"polyline": {<br />
},<br />
"points": "{bsfFmu}oCTM",<br />
"levels": "BB"<br />
"duration": {<br />
"value": 16,<br />
185
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
},<br />
"text": "1 min"<br />
"html_instructions": "Head \u003cb\u003esoutheast\u003c/b\u003e on<br />
\u003cb\u003eE. Karagiorgou/Ε. Καπαγιώπγος\u003c/b\u003e toward<br />
\u003cb\u003eKerasountos/Κεπαζούνηορ\u003c/b\u003e",<br />
"distance": {<br />
}<br />
}, {<br />
"value": 14,<br />
"text": "14 m"<br />
Όμοια για ηα ςπόλοιπα βήμαηα:<br />
.<br />
.<br />
.<br />
.<br />
} ],<br />
"travel_mode": "WALKING",<br />
"start_location": {<br />
"lat": 37.9499500,<br />
"lng": 23.7502200<br />
"start_address": "E. Karagiorgou 3-5, Ymittos 17236, Greece",<br />
"end_address": "Boumpoulinas, Artemida 19016, Greece",<br />
"via_waypoint": [ ]<br />
"copyrights": "Map data ©2010 Tele Atlas",<br />
"overview_polyline": {<br />
"points":<br />
"{bsfFmu}oCTMyAMJaBkK{@{Cc@YFm@|@_D[}@Ea@FmAjB{FaDsPyHuBkAsAd@sHsGa@n@{IwDoF<br />
xEyCkGe@qA{BkEc@|@g@a@e@QqR{DyH_COlAqByCwC{BsFcDyJcFmD}A}N}HiAcA_@aB_BfAm@gB<br />
oN|IiAaDcAw@kEuByAeCkFaFuEuF_@?k@Pa@[eEgJaCkDkEqFcFcPwA{DcBgDqJcOaCmFyDuGaGe<br />
JwHeKgDwFsDmI_B}F_AiEeB_GaF}IaJgMoAkCkFoS}@yIaAqEcE_OqEkMwCmH{AsE}@sE}Foa@gF<br />
wXYeEw@_e@DwPHuCzDk[d@aDj@aCAc@lGkQViAdCoc@`BwPt@_Ez@{Kp@cGfB_LlCyL~@iFhA{Px<br />
Eea@VsAzAcPl@oI~@yFzBsKzAiJJeC@{\\t@mFBqAGoBe@wD_De_@IcEPoCLaAH@Ly@hCuUzCib@<br />
n@uNNe_@JiFHu@\\aAb@s@hAw@lGqCZ[r@sApB}JbGw_@r@yGj@_IKuIi@oRYiGc@qEgGkXwHcSq<br />
BeIwB_L{EqTqJce@e@sCS{E]sCkDmKw@kHi@yC}DkLUeB@qAh@{JCwA_@yCeAuDuF_MaBoEw@}E@<br />
]~AoFfAqGVc@b@UvDu@LO`EyPfAmBbAkC~BoCdGaKb@_FbAiEfAyCn@yCdAsCzBoKbNah@tC}M`@<br />
gCVmDFcFQ_@LuBEa@gFeD",<br />
"levels":<br />
"B??@?@?????@??????@@??@?????@???????@??@????????A?????@?????@???@??@??????@<br />
??A???@?????@????@??????????@???@???@?????@??@??????@???A???@??@?????????@??<br />
??@???A??@???@@???@??????@???@??@B"<br />
},<br />
186
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
"warnings": [ "Walking directions are in beta. Use caution – This<br />
route may be missing sidewalks or pedestrian paths." ],<br />
}<br />
} ]<br />
"waypoint_order": [ ]<br />
πως φαίνεται και στο παραπάνω τυχαίο παράδειγμα, παρέχονται τόσο συνοπτικά, όσο και<br />
αναλυτικά αποτελέσματα. ε κάθε βήμα παρέχονται τόσο οι γεωγραφικές συντεταγμένες αρχής-<br />
τέλους, ο απαιτούμενος χρόνος και το μήκος διαδρομής, αλλά κι επιπλέον html διαμορφωμένες<br />
οδηγίες κειμένου για την πραγματοποίηση του βήματος.<br />
Επίσης, παρέχονται τα στοιχεία των encoded poylylines για τα βήματα ή το σύνολο της διαδρομής.<br />
Οι encoded polylines περιγράφονται από αλφαριθμητικά data, ένα string χαρακτήρων, τα οποία<br />
δίνουν την πληροφορία θέσης και την πληροφορία για το επίπεδο κλίμακας μέχρι το οποίο θα γίνεται<br />
η απεικόνιση κάθε σημείου-κόμβου. Η διαδικασία κωδικοποίησης μετατρέπει μία δυαδική τιμή σε μία<br />
σειρά κωδικών χαρακτήρων ASCII χρησιμοποιώντας το σχήμα base64. Για την εξοικονόμηση χώρου,<br />
σε κάθε σημείο (εκτός του πρώτου) δίνεται η πληροφορία της μετακίνησης από το προηγούμενο, και<br />
όχι η απόλυτη θέση.<br />
Η ύπαρξη διαφορετικών τιμών για την απεικόνιση ανάλογα με την κλίμακα, επιτρέπει την γενίκευση<br />
της καμπύλης, είτε αυτό αφορά τη μορφή της, δηλαδή περιορισμό των εμφανιζόμενων θλάσεων, είτε<br />
το συνολό της, δηλαδή την εμφάνισή της ή όχι.<br />
187
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4.8 υνοπτικό Διάγραμμα Σης Δομής Σου υστήματος Και Σων<br />
υνδέσεων.<br />
το Διάγραμμα που ακολουθεί παρουσιάζεται συνοπτικά και σχηματικά η δομή του συστήματος της<br />
Εφαρμογής και οι συσχετίσεις μεταξύ των διαφόρων τμημάτων, όπως προκύπτει με βάσει τα όσα<br />
έχουν αναφερθεί.<br />
MAPS DIRECTIONS GEOCODING<br />
PostgreSQL Server<br />
Εφρεςθ Εναλλακτικών Γραμμών<br />
PHP<br />
APACHE<br />
HTTP SERVER<br />
TOMCAT SERVER<br />
Routing Engine<br />
Διάγραμμα 11: χηματική παράσταση των διαφόρων τμημάτων του συστήματος της<br />
Εφαρμογής και οι συνδέσεις μεταξύ τους.<br />
188
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4.9 Προγραμματιστική Δομή Σης Εφαρμογής Φρήστη & υνδέσεις.<br />
6.4.9.1 Σα States το Flex.<br />
Κάτι ιδιαίτερα χρήσιμο στο FLEX είναι η ύπαρξη States. Κάθε State είναι μία συγκεκριμένη<br />
κατάσταση της εφαρμογής, όπου όλα τα αντικείμενα έχουν συγκεκριμένες ιδιότητες, όπως π.χ.<br />
εμφάνιση, χρώμα, μέγεθος, είναι ενεργά ή μη, κτλ.. ε κάθε State δεν υπάρχουν διαφορετικά<br />
instances των αντικειμένων, αλλά τα ίδια αντικείμενα με διαφορετικές ιδιότητες. Αυτό επιτρέπει με<br />
τον ίδιο κώδικα να γίνεται διαχείριση διαφορετικών οπτικών απεικονίσεων, οι οποίες να ταιριάζουν<br />
σε διάφορες συσκευές λειτουργίας, όπως π.χ. desktop υπολογιστές με μεγάλες οθόνες, ή κινητά<br />
τηλέφωνα με πολύ μικρές οθόνες και αναλύσεις. Η εναλλαγή από το ένα State στο άλλο γίνεται με<br />
μία απλή εντολή στον κώδικα, οπότε είναι ιδιαίτερα εύκολη η διαχείριση διαφορετικών καταστάσεων<br />
λειτουργίας της εφαρμογής.<br />
Για την παρούσα εφαρμογή ορίστηκαν τα εξής States που αντιστοιχούν στην λειτουργική ροή που<br />
αναφέρθηκε, και στα επιμέρους:<br />
«Welcome»: Αφορά το στάδιο της Αρχικοποίησης, κατά το οποίο εμφανίζεται μία<br />
splash εικόνα, μαζί με κάποια μηνύματα σημαντικού κι άμεσου ενδιαφέροντος για<br />
τον Φρήστη, όπως π.χ. παρατηρούμενες ή αναμενόμενες δυσλειτουργίες των<br />
ΜΜΜ.<br />
«Options»: Αφορά το στάδιο της παραμετροποίησης ερωτήματος. ε αυτό ανήκουν<br />
και τα δύο επόμενα states:<br />
o «Geocoding»: Είναι η λειτουργία της παραμετροποίησης που επιτρέπει την<br />
επιλογή από λίστα των αποτελεσμάτων του Geocoding μίας διεύθυνσης ή<br />
ενός ζεύγους συντεταγμένων για τον ορισμό της προέλευσης ή του<br />
προορισμού.<br />
o «SelectPOI»: μοια με το Geocoding, επιτρέπει την επιλογή της<br />
προέλευσης ή του προορισμού από μία κατηγοριοποιημένη λίστα σημείων<br />
ενδιαφέροντος.<br />
189
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
«Please Wait»: Σο State αυτό αντιστοιχεί στις λειτουργίες θέσης ερωτήματος και<br />
λήψης απάντησης από την την Εφαρμογή προς και από τους Servers. Κατά τα<br />
στάδια αυτά ο Φρήστης δεν μπορεί να παρέμβει, κι έτσι το state αφενός<br />
απενεργοποιεί τις διάφορες άλλες λειτουργίες, αφετέρου ενημερώνει τον Φρήστη<br />
για την απαιτούμενη αναμονή και την εξέλιξη της διαδικασίας.<br />
«Suggestions»: To State αυτό αντιστοιχεί στην διαχείριση των απαντήσεων. Έτσι,<br />
παρέχονται οι προτάσεις ταξιδίου για ενναλάξ θέαση, και δίνονται οι επιλογές για<br />
τροποποίηση του ερωτήματος, δημιουργίας ενός τελείως καινούριου, ή τέλος,<br />
εκτύπωσης κάθε μίας εκ των προτάσεων ταξιδίου.<br />
«Print»: Πρόκειται για το State κατά το οποίο γίνεται η εκτύπωση σε αρχείο PDF της<br />
κάθε πρότασης ταξιδίου.<br />
«About»: το State αυτό γίνεται εμφάνιση ενός pop-up παραθύρου, το οποίο<br />
περιέχει κάποιες βασικές πληροφορίες σχετικά με την Εφαρμογή. Η έξοδος από το<br />
state αυτό οδηγεί κάθε φορά στο state από το οποίο έγινε η κλήση.<br />
«Contact»: το State αυτό εμφανίζεται όπως και στο ‗About‘ ένα pop-up παράθυρο,<br />
μέσω του οποίου μπορεί ο Φρήστης να επικοινωνήσει με τους λειτουργούς της<br />
Τπηρεσίας. Η έξοδος από το state γίνεται όμοια προς το state που έκανε την<br />
κλήση.<br />
την παρούσα Εφαρμογή έχουν αναπτυχθεί αντίστοιχα States τόσο για μεγάλες οθόνες κι<br />
αναλύσεις, όσο και για μικρότερες, όπως π.χ. για netbooks. Η χρήση του κάθε προγραμματιστικού<br />
state που αντιστοιχεί στα παραπάνω λογικά states επιλέγεται από τον ίδιο τον κώδικα, ανάλογα με<br />
το αναγνωρισμένο μέγεθος του περιβάλλοντος που παρέχει ο browser. Η διαφοροποίηση έγκειται<br />
κυρίως στον απαιτούμενο χώρο των παραθύρων της Εφαρμογής στην οθόνη, όπου στα states<br />
μικρής οθόνης έχει γίνει προσπάθεια εξοικονόμησης χώρου, με όσο το δυνατόν μικρότερη απώλεια<br />
λειτουργικότητας και αισθητικής. Σα states αυτά θεωρητικά είναι συμβατά και με κινητά τηλέφωνα<br />
με οθόνη μεγάλης σχετικά ανάλυσης.<br />
Μέχρι την στιγμή της ολοκλήρωσης της Εφαρμογής υπήρχε σύγχυση σχετικά με την δυνατότητα να<br />
εκτελείται αυτή, όπως και όλες οι υπόλοιπες εφαρμογές Flex, σε κινητό τηλέφωνο. υσκευές που<br />
διαφημίζονται ως Flash Capable έχουν περιορισμένη συμβατότητα, κι ελάχιστες είναι αυτές που<br />
πραγματικά κάνουν αυτό που ισχυρίζονται. μως η τάση στην αγορά είναι για άμεση κυκλοφορία<br />
πλήρως Flash Capable συσκευών, είτε μέσω Browser είτε Air, και η ίδια η Adobe προτίθεται σύντομα<br />
να κυκλοφορήσει το νέο Flex με πρόσθετα νέα στοιχεία που θα αφορούν κινητά τηλέφωνα, μεταξύ<br />
άλλων π.χ. την αξιοποίηση του ενσωματωμένου GPS.<br />
190
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Λόγω λοιπόν των αναμενόμενων σύντομα εξελίξεων, δεν έγινε παραπέρα προσπάθεια προσαρμογής<br />
σε κινητά τηλέφωνα, δόθηκε όμως προσοχή ώστε να είναι εύκολη η μελλοντική επέκταση της<br />
Εφαρμογής. Επαναλαμβάνεται εξάλλου ότι πιθανόν η Εφαρμογή να εκτελείται χωρίς προβλήματα<br />
και σε κάποια από τα ήδη κυκλοφορούντα κινητά, χωρίς αυτό όμως να έχει εξεταστεί.<br />
6.4.9.2 Αντικείμενα (Objects) που χρησιμοποιούνται.<br />
Με την έννοια αντικείμενα αναφέρονται οι διάφορες δομές οι οποίες μπορούν να συγκρατούν<br />
δεδομένα ή/και να δημιουργούν ιδιότητητες και μεθόδους., όπως είναι τα Classes, τα Arrays, τα<br />
ArrayLists, ArrayCollections, κ.α.. λα αυτά τα αντικείμενα μπορούν να είναι προσβάσιμα είτε μόνο<br />
από την function που τα δημιούργησε ως instance, είτε από το σύνολο του κώδικα, όντας δηλωμένα<br />
ως public.<br />
Δύο κύρια αντικείμενα που υπάρχουν στην Εφαρμογή Φρήστη είναι αυτά που αφορούν τα σημεία<br />
Προέλευσης και Προορισμού. Σα αντικείμενα αυτά είναι instances ενός class το οποίο έχει ως<br />
ιδιότητες την ονομασία και τις συντεταγμένες, πλάτος και μήκος. Για κάθε ένα από τα αντικείμενα<br />
αυτά υπάρχει κι ένας Marker (πράσινου και κόκκινου χρώματος αντίστοιχα) ο οποίος επισημαίνει την<br />
τοποθεσία στον Φαρτη. Ένα άλλο αντικείμενο που χρησιμοποιείται στο σύνολο της Εφαρμογής είναι η<br />
χρονική στιγμή, η οποία μπορεί να αφορά είτε την αναχώρηση από την αφετηρία, είτε την άφιξη<br />
στον προορισμό. Πρόκειται για μία μεταβλητή τύπου Date.<br />
Αντικείμενα αποτελούν και οι απαντήσεις που λαμβάνονται για τα διάφορα HTTP ερωτήματα. Σο ίδιο<br />
το Flex, κατά την διαδικασία ορισμού των data συνδέσεων δημιουργεί κλάσεις και υποκλάσεις που<br />
αντιστοιχούν στους τύπους δεδομένων των διαφόρων πεδίων. Οι συνδέσεις που έχουν οριστεί είναι 3:<br />
Η πρώτη αφορά την σύνδεση με το routing engine, η δεύτερη την σύνδεση με την υπηρεσία<br />
Geocoding της Google, και η τρίτη, την σύνδεση με την PostgreSQL για την εύρεση των<br />
εναλλακτικών Γραμμών.<br />
Ακόμη ένα αντικείμενο, το οποίο περιέχει τις απαντήσεις που αφορούν την πλοήγηση, είναι η<br />
συλλογή των Προτάσεων Σαξιδίου. Κάθε Πρόταση Σαξιδίου (JourneyProposal ονομάζεται εδώ, αφού<br />
θα μπορούσε και να απορριφθεί σε μετεπεξεργασία) είναι κι αυτή ένα αντικείμενο, το οποίο ανήκει<br />
στην συλλογή κι έχει ως αντικείμενα-μέλη τους κλάδους που αποτελούν κάθε τμήμα της Πρότασης.<br />
Σα τελευταία δομικά αντικείμενα περιέχουν τις πληροφοριές για την οπτικοποίηση του τμήματος,<br />
όπως επίσης το κείμενο των εναλλακτικών Γραμμών που μπορούν να χρησιμοποιηθούν. Οι λεκτικές<br />
οδηγίες περιέχονται μόνο στον container που τις οπτικοποιεί, δηλαδή σε Vbox με RichText για κάθε<br />
λεκτική οδηγία/πληροφορία.<br />
191
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Τπάρχουν κι άλλα αντικείμενα που χρησιμοποιούνται, χωρίς όμως σημαντική εννοιολογική σημασία,<br />
και για αυτό δεν γίνεται ιδιαίτερη αναφορά σε αυτά. Πρόκειται για αντικείμενα που εξυπηρετούν<br />
καθαρά προγραμματιστικούς σκοπούς.<br />
6.4.9.3 Αρχικοποίηση Σης Εφαρμογής Φρήστη.<br />
Η Εφαρμογή Φρήστη κατεβαίνει σε αυτόν από τον HTTP Server. Αυτό που πρώτα βλέπει ο browser<br />
είναι ένα HTML αρχείο, το οποίο κάνει έλεγχο της ύπαρξης του κατάλληλου Flash Player. Αν δεν<br />
υπάρχει η κατάλληλη έκδοση, τότε γίνεται προτροπή στον Φρήστη για το κατέβασμα και την<br />
εγκατάσταση. την αντίθετη περίπτωση, εκκινάται η Flash εφαρμογή. Σο html αυτό αρχείο δίνει την<br />
δυνατότητα συγκέντρωσης κάποιων στατιστικών στοιχείων, όπως π.χ. για τημ προέλευση του χρήστη,<br />
τον browser και το λειτουργικό που χρησιμοποιεί, κτλ, αξιοποιώντας κάποια από τις υπάρχουσες<br />
υπηρεσίες που προσφέρονται ακόμη και δωρεάν (π.χ. Google <strong>An</strong>alytics ή StatCounter).<br />
Σο κατέβασμα του κυρίως κομματιού της Εφαρμογής διαρκεί μερικά δευτερόλεπτα, ανάλογα με την<br />
ταχύτητα σύνδεσης. Έχει γίνει προσπάθεια ώστε ακριβώς να μειωθεί ο χρόνος, τόσο για το<br />
κατέβασμα (το κυρίο αρχείο να μην περιέχει τα πάντα), όσο και για την πρώτη δημιουργία τού<br />
περιβάλλοντος χρήστη. Κατά αυτόν τον τρόπο η αναμονή φαίνεται αρκετά μικρότερη στον χρήστη,<br />
καθώς αυτός παρακολουθεί μία εξέλιξη στην οθόνη του. Σο κατέβασμα του κύριου αρχείου<br />
ενδεικνύεται από μία progress bar, η οποία θα μπορούσε να αντικατασταθεί από κάποιον preloader,<br />
ο οποίος να περιέχει γραφικά στοιχεία σχετικά με το αντικείμενο. Επειδή όμως ο χρόνος που<br />
απαιτείται είναι σχετικά μικρός σε συνήθεις ταχύτητες σύνδεσης, κρίθηκε πως κάτι τέτοιο δεν έχει<br />
ιδιαίτερο νόημα.<br />
Μέσα στην URL διεύθυνση με την οποία καλείται το Tsoop! είναι δυνατόν να περιέχονται<br />
παράμετροι οι οποίες χρησιμοποιούνται για τον προκαθορισμό των επιλογών. Περισσότερα για αυτές<br />
αναφέρονται στην σχετική παράγραφο.<br />
Μόλις ολοκληρώνεται το κατέβασμα, το Flex δημιουργεί τα αντικείμενα που διαμορφώνουν το<br />
αρχικό περιβάλλον της Εφαρμογής. Με την ολοκλήρωση και του Φάρτη, τότε αυτός κεντράρεται<br />
στην κατάλληλη περιοχή, αποκτώντας τα εργαλεία για το zoom και την επιλογή τύπου.<br />
Σο πρώτο state στο οποίο τίθεται η Εφαρμογή είναι το ‗Welcome‘, κατά το οποίο και παρουσιάζεται<br />
η αρχική splash εικόνα μαζί με τις ανακοινώσεις. Οι ανακοινώσεις προς το παρόν γίνονται compiled<br />
στο ίδιο το Flash αρχείο. ε περίπτωση διαχωρισμού τού ποιός κάνει το compiling και ποιός<br />
διαχειρίζεται το σύστημα, τότε οι ανακοινώσεις θα μπορούσαν να περιέχονται σε ένα απλό<br />
ανεξάρτητο αρχείο κειμένου ή XML.<br />
192
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4.9.4 Προκαθορισμός Επιλογών.<br />
Η μητρική HTML σελίδα προωθεί προς την Flash εφαρμογή και τις πιθανές σχετικές<br />
προκαθορισμένες τιμές στην παραμετροποίηση ερωτήματος, αν το link προς την Εφαρμογή<br />
προέρχεται από κάποιο site που προωθεί σε αυτήν για την εξυπηρέτηση μίας εγκατάστασης ή ενός<br />
γεγονότος, όπως π.χ. την πρόσβαση με ΜΜΜ σε ένα συνέδριο.<br />
Οι παράμετροι αυτές παρέχονται ως μεταβλητές μέσα στην URL διεύθυνση και είναι της εξής<br />
μορφής:<br />
http://site_address/tsoop/index.html#<br />
OriginDisplayText=origin_display_text;OriginLat=origin_lat;OriginLng=origin_<br />
lng<br />
;DestinationDisplayText=destination_displaytext;DestinationLat=destination_l<br />
at;DestinationLng=destination_lng<br />
;Using=using_means;MaxWalkDist=maximum_walking_distance;Optimise=optimize;Ar<br />
riveOrDepart=arrive_or_depart;Date=date;Time=time<br />
Οι παράμετροι είναι λοιπόν:<br />
OriginDisplayText Σο κείμενο που θα εμφανίζεται ως τόπος προέλευσης.<br />
OriginLat Σο γεωγραφικό πλάτος του τόπου προέλευσης, σε WGS84 και στην<br />
μορφή: DD.ddddd.<br />
OriginLng Σο γεωγραφικό μήκος του τόπου προέλευσης, σε WGS84 και στην<br />
μορφή: DD.ddddd.<br />
DestinationDisplayText Σο κείμενο που θα εμφανίζεται ως τόπος προορισμού.<br />
DestinationLat Σο γεωγραφικό πλάτος του τόπου προορισμού, σε WGS84 και στην<br />
μορφή: DD.ddddd.<br />
DestinationLng Σο γεωγραφικό μήκος του τόπου προοορισμού, σε WGS84 και στην<br />
μορφή: DD.ddddd.<br />
193
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Using Σα μέσα που επιθυμείται να χρησιμοποιηθούν. Οι δυνατές τιμές είναι:<br />
ALL<br />
TRAINS<br />
BUSES<br />
WALKING<br />
MaxWalkDist Η μέγιστη επιθυμητή απόσταση για διαδρομή πεζή, σε μέτρα.<br />
Optimise Ο τρόπος βελτιστοποίησης. Οι δυνατές τιμές είναι:<br />
SOON<br />
TRANSFERS<br />
ArriveOrDepart Αν η χρονική στιγμή αφορά την αναχώρηση ή την άφιξη. Οι δυνατές τιμές<br />
είναι:<br />
DEPART<br />
ARRIVE<br />
Date Η ημερομηνία για την άφιξη ή την αναχώρηση, στην μορφή:<br />
DD.MM.YYYY.<br />
Time Η ώρα για την άφιξη ή την αναχώρηση, στην μορφή: ΗΗ:ΜΜ.<br />
Παράμετροι που δεν δίνονται τίθενται στις default τιμές τους. Οι παράμετροι OriginDisplayText και<br />
DestinationDisplayText θα πρέπει να είναι URL-encoded σε περίπτωση π.χ. που περιέχουν κενά<br />
διαστήματα.<br />
194
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4.9.5 Γενική Διάταξη την Οθόνη Κατά Σις Επιλογές.<br />
Αμέσως μετά την εισαγωγική spash εικόνα, η Εφαρμογή τίθεται στην κατάσταση Options. την<br />
κατάσταση αυτή είναι δυνατή η επιλογή των διαφόρων στοιχείων, όπως είναι η προέλευση, ο<br />
προορισμός, η χρονική στιγμή, η βελτιστοποίηση, κτλ. Η οθόνη που εμφανίζεται στον Φρήστη έχει την<br />
εξής μορφή:<br />
Εικόνα 71: Η γενική διάταξη που πρωτοβλέπει ο Φρήστης.<br />
πως φαίνεται, κυρίαρχο στοιχείο είναι ο Φάρτης, αφού πάνω σε αυτόν επιτελούνται οι περισσότερες<br />
από τις λειτουργίες, όντας το κύριο μέσο επικοινωνίας με τον Φρήστη. Η οθόνη αποτελείται από ένα<br />
HBox, το οποίο περιέχει 2 στοιχεία: Σο αριστερό panel της κατακόρυφης στήλης, κι ένα<br />
BorderContainer. την κατακόρυφη στήλη περιέχεται μία εικόνα με τα λογότυπα κτλ, κι ένα VGroup<br />
με τα κουμπιά για τις γενικές λειτουργίες. τον BorderContainer περιέχονται ο Φάρτης, το panel με<br />
τις επιλογές, κι ένα toggle button για την εμφάνιση ή όχι του δικτύου metro.<br />
195
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Διάγραμμα 12: Σα διάφορα αντικείμενα που αποτελούν την βασική οθόνη της Εφαρμογής, σε<br />
σχηματική παράσταση.<br />
6.4.9.6 Λειτουργίες ‗To/From About‘, ‗Transit in Athens‘, ‗About‘, ‗Help‘, και<br />
‗Contact‘.<br />
Οι λειτουργίες αυτές δεν έχουν κάποιο ιδιαίτερο προγραμματιστικό ενδιαφέρον. Για την About και<br />
την Contact ενεργοποιούνται τα ομώνυμα states, κατά τα οποία εμφανίζονται οι αντίστοιχες<br />
εικόνες. Για την επικοινωνία έχει υιοθετηθεί η μέθοδος του email, με άνοιγμα της εφαρμογής που<br />
χρησιμοποεί ο χρήστης για την διαχείριση και σύνταξη των μηνυμάτων του, ώστε να έχει ένα οικείο<br />
περιβάλλον, τουλάχιστον στις περιπτώσεις που χρησιμοποιεί τον δικό του υπολογιστή. Αυτό<br />
επιτυγχάνεται με κλήση ενός URL της μορφής mailto://person@domain.<br />
Για τις υπόλοιπες 3 λειτουργίες ανοίγει ένα καινούριο tab στον browser, το οποίο κατεβάζει το<br />
αρχείο που αντιστοιχεί σε κάθε μία από αυτές και περιέχει τις σχετικές πληροφορίες.<br />
196
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4.9.7 Επιλογή Προέλευσης/Προορισμού με Geocoding.<br />
Πληκτρολογώντας μία διεύθυνση στο textbox που αντιστοιχεί στην προέλευση ή τον προορισμό, τότε<br />
η Εφαρμογή τίθεται στην κατάσταση ‗Geocoding‘, κι εμφανίζεται στον χρήστη μία λίστα με εώς και<br />
10 διευθύνσεις που ταιριάζουν σε αυτό που πληκτρολόγησε. Η λίστα εμφανίζεται από ένα DataGrid<br />
,στο οποίο έχει γίνει binded το αντικείμενο της απάντησης για το HTTP ερώτημα προς την υπηρεσία<br />
geocoding της Google.<br />
Ένα ερώτημα προς τον εξυπηρετητή μέσω HTTP έχει την ακόλουθη μορφή:<br />
http://maps.googleapis.com/maps/api/geocode/output?parameters<br />
όπου:<br />
output<br />
έιναι η αιτούμενη μορφοποίηση των αποτελεσμάτων, η οποία μπορεί να είναι είτε XML, είτε<br />
JSON (JavaScript Object Notation). Η δεύτερη μορφοποίηση ενδείκνυται περισσότερο,<br />
κυρίως λόγω του μειωμένου μεγέθους των data περιγραφής, και είναι αυτή που<br />
χρησιμοποείται.<br />
address (απαιτείται)<br />
Η διεύθυνση της οποίας ζητείται να βρεθεί η θέση στον χάρτη, ή σε μορφή κειμένου οι<br />
συντεταγμένες για την αντίστροφη λειτουργία.<br />
bounds (προαιρετικά)<br />
To ορθογώνιο παραλληλόγραμο μέσα στο οποίο θα επικεντρώνεται η λειτουργία. Κατά<br />
αυτόν τον τρόπο, μπορεί να δίνεται π.χ. προτεραιότητα στην εμφάνιση αποτελεσμάτων στην<br />
περιοχή της Αθήνας. Σο παραλληλόγραμμο ορίζεται από τις συντεταγμένες της<br />
Νοτιοδυτικής και της Βορειοανατολικής γωνίας. (π.χ. ‗37.70,23.45|38.2,24.05‘ είναι η<br />
τιμή που δίνεται για την περιοχή της Αθήνας).<br />
region (προαιρετικά)<br />
μοια με την παράμετρο bounds, προωθεί τα αποτελέσματα στον χώρο που καθορίζεται<br />
από τον κωδικό 2 χαρακτήρων των διευθύνσεων Internet . Π.χ. με το αλφαριθμητικό ‗gr‘<br />
στην παραμετροποίηση, τα αποτελέσματα θα είναι εστιασμένα στην Ελλάδα.<br />
197
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
language (προαιρετικά)<br />
Επιλέγεται η γλώσσα των αποτελεσμάτων. Π.χ. με την παραμετροποίηση ‗en‘, τα<br />
αποτελέσματα θα είναι στην Αγγλική γλώσσα. Αν δεν δοθεί η παράμετρος, τότε τα<br />
αποτελέσματα επιστρέφονται ανάλογα με την χώρα στην οποία βρίσκεται το domain<br />
κλήσης. την περίπτωσή μας, είναι απαραίτητο να τεθεί η παράμετρος, διαφορετικά σε<br />
έναν επισκέπτη της πόλης θα επιστρέφονταν τα αποτελέσματα μόνο στα ελληνικά εν όσο<br />
αυτός θα ήταν στην Ελλάδα, αφού θα χρησιμοποιούσε το Internet από ελληνικές IP<br />
διευθύνσεις.<br />
sensor (απαιτείται)<br />
Περιέχει την πληροφορία για το αν το ερώτημα προέρχεται από συσκευή με αισθητήρα<br />
θέσης (GPS). Η τιμή μπορεί να είναι true ή false.<br />
Ένα τυπικό παράδειγμα ερωτήματος της Εφαρμογής είναι το ακόλουθο:<br />
http://www.tsoopdomain.gr:8087/tsoop/Geocode.php?address=Aristotelous<br />
,22&bounds=37.70,23.45|38.20,24.05&language=en&sensor=false<br />
Η διαφοροποίηση που παρατηρείται οφείλεται στο ότι το ερώτημα υποβάλλεται με ενδιάμεσο την<br />
PHP στον HTTP Server του Tsoop!. την πραγματικότητα το ερώτημα υποβάλλεται σε URL Encoded<br />
μορφή, έτσι ώστε να μπορούν να υπάρχουν π.χ. κενά διαστήματα.<br />
Σα αποτελέσματα που επιστρέφονται αφορούν 10 το πολύ διευθύνσεις, και σε μορφή JSON έχουν<br />
ενδεικτικά την εξής μορφή:<br />
(με το ερώτημα:<br />
http://maps.googleapis.com/maps/api/geocode/json?address=Aristotelous+22+Att<br />
iki&bounds=37.70,23.45|38.2,24.05&language=en&sensor=false:<br />
)<br />
198
{<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
"status": "OK",<br />
"results": [ {<br />
"types": [ "street_address" ],<br />
"formatted_address": "Aristotelous 22, Acharnes 13673, Greece",<br />
"address_components": [ {<br />
}, {<br />
}, {<br />
}, {<br />
}, {<br />
}, {<br />
}, {<br />
} ],<br />
"long_name": "22",<br />
"short_name": "22",<br />
"types": [ "street_number" ]<br />
"long_name": "Aristotelous",<br />
"short_name": "Aristotelous",<br />
"types": [ "route" ]<br />
"long_name": "Acharnes",<br />
"short_name": "Acharnes",<br />
"types": [ "locality", "political" ]<br />
"long_name": "East Attica",<br />
"short_name": "East Attica",<br />
"types": [ "administrative_area_level_2", "political" ]<br />
"long_name": "Attica",<br />
"short_name": "Attica",<br />
"types": [ "administrative_area_level_1", "political" ]<br />
"long_name": "Greece",<br />
"short_name": "GR",<br />
"types": [ "country", "political" ]<br />
"long_name": "13673",<br />
"short_name": "13673",<br />
"types": [ "postal_code" ]<br />
"geometry": {<br />
"location": {<br />
},<br />
"lat": 38.0835003,<br />
"lng": 23.7302642<br />
"location_type": "RANGE_INTERPOLATED",<br />
"viewport": {<br />
"southwest": {<br />
"lat": 38.0803528,<br />
199
}<br />
}, {<br />
},<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
},<br />
"lng": 23.7271068<br />
"northeast": {<br />
}<br />
"lat": 38.0866480,<br />
"lng": 23.7334021<br />
"bounds": {<br />
}<br />
"southwest": {<br />
},<br />
"lat": 38.0835003,<br />
"lng": 23.7302447<br />
"northeast": {<br />
}<br />
"lat": 38.0835005,<br />
"lng": 23.7302642<br />
Σςνέσεια με άλλερ 9 διεςθύνζειρ καηά όμοιο ηπόπο:<br />
.<br />
.<br />
.<br />
.<br />
}<br />
"types": [ "street_address" ],<br />
"formatted_address": "Aristotelous 22, Athens 10433, Greece",<br />
}<br />
} ]<br />
}<br />
}<br />
πως γίνεται φανερό από το παραπάνω δείγμα, τα επιστρεφόμενα αποτελέσματα, περιέχουν τα<br />
στοιχεία της διεύθυνσης, τόσο συνοπτικά, όσο και αναλυτικά (οδό, αριθμό, ταχυδρομικό κώδικα),<br />
όπως επίσης τις συντεταγμένες, το είδος της θέσης ( οδός, περιοχή, σημείο ενδιαφέροντος, κ.α.), και<br />
την ακρίβεια της θέσης (π.χ. ‗RANGE_INTERPOLATED‘ που σημαίνει ότι το αποτέλεσμα είναι<br />
παρεμβολή στην αρίθμηση της οδού από διασταύρωση σε διασταύρωση).<br />
200
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εκτός από αυτήν την μορφή ερωτήματος και αποτελέσματος, το Google Geocoding παρέχει και<br />
λειτουργία μέσω SOAP (Simple Object Access Protocol). την λειτουργία αυτή τα αποτελέσματα<br />
διαφοροποιούνται, αφού παρέχονται (σε μορφή KML), στοιχεία για την τοποθέτηση Placemarks<br />
πάνω στον χάρτη. Σο Adobe Flex κανονικά μπορεί να κάνει χρήση μόνο της SOAP λειτουργίας,<br />
καθώς διαφορετικα απαιτείται η ύπαρξη ενός αρχείου παροχής άδειας πρόσβασης στον server για<br />
την IP διεύθυνση του client, κάτι που παρακάμπτεται με χρήση της PHP ως ενδιάμεσου.<br />
Μόλις ο χρήστης επιλέξει κάποιο αντικείμενο της λίστας του DataGrid, τότε τοποθετείται ο<br />
προσωρινός Marker στην αντίστοιχη τοποθεσία, ενώ και ο Φάρτης κεντράρεται στην τοποθεσία<br />
αυτή. Αν ο χρήστης επιλέξει άλλο αντικείμενο, τότε γίνεται νέα τοποθέτηση του Μarker και νέο<br />
κεντράρισμα του χάρτη. Αν τελικά ο χρήστης βρει την τοποθεσία που θέλει, τότε πατώντας στο<br />
κουμπί ‗ΟΚ‘, to state της εφαρμογής γίνεται ‗Options‘ και τα στοιχεία του geocoding τίθονται ως<br />
στοιχεία προέλευσης ή προορισμού. Επίσης, ενημερώνονται το textbox και ο Marker επί του Φάρτη<br />
με το πράσινο ή κόκκινο χρώμα για την προέλευση και τον προορισμό αντίστοιχα.<br />
Ας σημειωθεί πως τα textboxes για την προέλευση και τον προορισμό είναι διπλά, άσχετα αν ο<br />
χρήστης βλέπει μόνο ένα ανά περίπτωση. Σο ένα textbox έχει binded την διεύθυνση η οποία είναι<br />
πράγματι έγκυρη, ενώ το άλλο textbox είναι αυτό στο οποίο ο χρήστης εισάγει την διεύθυνση προς<br />
geocoding. Με αυτόν τον τρόπο εξασφαλίζεται ότι στον χρήστη εμφανίζεται πάντα μία έγκυρη<br />
διεύθυνση, κι όχι οι διευθύνσεις π.χ. που δεν αντιστοιχούν πουθενά, έχουν μισο-συμπληρωθεί, κτλ..<br />
6.4.9.8 Επιλογή Προέλευσης/Προορισμού Με Επιλογή Από ημεία<br />
Ενδιαφέροντος.<br />
Ο Φρήστης μπορεί να επιλέξει μία τοποθεσία ως προέλευση ή προορισμό από μία κατηγοριοποιημένη<br />
λίστα σημείων ενδιαφέροντος (Points Of Interest: POIs). Για να το κάνει αυτό χρειάζεται να πατήσει<br />
σε ένα από τα δύο κουμπιά ‗POIs‘, δίπλα στα textboxes προέλευσης και προορισμού. Σότε η<br />
κατάσταση της Εφαρμογής τίθεται στο state ‗POIsSelection‘ κι εμφανίζεται ένα παράθυρο με ένα<br />
Tree και δύο κουμπιά: ‗ΟΚ‘ και ‗None of Them‘.<br />
Μέσα στο tree εμφανίζονται κατηγοριοποιημένα τα διάφορα σημεία ενδιαφέροντος. Η λίστα των<br />
σημείων περιέχεται αυτή την στιγμή εντός του βασικού Flash αρχείου, σε δομή XMLList. Αυτό έγινε<br />
λόγω του περιορισμένου μεγέθους που έχουν τα ενδεικτικά δεδομένα. ε περίπτωση μεγάλης<br />
αύξησης του αριθμού των σημείων (δυστυχώς δεν υπήρχε κάποιο σχετικό dataset διαθέσιμο κατά<br />
την υλοποίηση), τότε τα δεδομένα αυτά θα πρέπει να τηρηθούν σε εξωτερικό XML αρχείο στον<br />
Server, έτσι ώστε να μην καθυστερεί πιθανόν άσκοπα το download και η πρώτη εμφάνιση της<br />
201
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εφαρμογής στον Φρήστη. Αυτό είναι απαραίτητο βέβαια και στην περίπτωση που υπάρχει διαφορά<br />
ανάμεσα στο ποιός κάνει το compiling και ποιός διαχειρίζεται το σύστημα.<br />
Ένα δείγμα της XMLList είναι το εξής:<br />
<br />
<br />
<br />
<br />
<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Κάθε ένα από τα ενεργά αντικείμενα έχει εναν event listener, μέσω του οποίου μπορούν να<br />
παρακολουθούνται διάφορα συμβάντα. την συγκεκριμένη περίπτωση παρακολουθείται το click,<br />
οπότε όταν αυτό συμβαίνει, εκετελείται η σχετική function. Από αυτήν ανοίγει ένα InfoWindow μέσω<br />
του οποίου ο Φρήστης μπορεί να επιλέξει την επιλογή τού σημείου ως προέλευση ή προορισμό.<br />
Μετά την επιλογή αυτή, ενημερώνονται κατάλληλα τα αντικείμενα της προέλευσης και του<br />
προορισμού, οι σχετικοί Markers, τα textboxes, και η Εφαρμογή τίθεται εκ νέου στην κατάσταση<br />
‗Options‘.<br />
6.4.9.10 Επιλογή Προέλευσης/Προορισμού Με Λειτουργίες Φάρτη.<br />
Ένας εύκολος κι άμεσος τρόπος επιλογής μιας τοποθεσίας ως προέλευσης ή προορισμού είναι το να<br />
την δείξει κάποιος στον Φάρτη. Έτσι και κατά την συγκεκριμένη λειτουργία, ο Φάρτης επισημαίνει με<br />
double click το σημείο που επιθυμεί, τοποθετείται εκεί ο προσωρινός κίτρινος marker, κι έπειτα, από<br />
ένα InfoWindow που εμφανίζεται, επιλέγει αν θέλει το σημείο αυτό για προέλευση ή προορισμό. Σο<br />
double click πάνω στον Φάρτη γίνεται αντιληπτό μέσω ενός event listener που έχει τεθεί σε αυτόν.<br />
Έπειτα από την επιλογή του Φρήστη για τον αν επιθυμεί το σημείο αυτό ως προέλευση ή προορισμό,<br />
ενημερώνονται κατάλληλα τα αντίστοιχα αντικείμενα, οι Markers, τα textboxes, και η Εφαρμογή<br />
τίθεται εκ νέου στην κατάσταση ‗Options‘. Σα textboxes ενημερώνονται όχι με κάποια διεύθυνση ή<br />
άλλο κείμενο, αλλά με το ζεύγος συντεταγμένων του επιλεγμένου σημείου (πλάτος, μήκος). Πατώντας<br />
όμως ο Φρήστης μέσα σε αυτό, και χωρίς να πειράξει κάτι, τότε πραγματοποιείται αντίστροφο<br />
geocoding, κι έτσι πλέον εμφανίζεται η διεύθυνση που αντιστοιχεί σε αυτές τις συντεταγμένες.<br />
Ένα μειονέκτημα της λειτουργίας αυτής ώστε να γίνει δημοφιλής είναι πως απευθύνεται κατά<br />
κανόνα σε χρήστες που έχουν σχετική εξοικίωση με την περιοχή, κάτι που κατά κανόνα δεν ισχύει<br />
για τους επισκέπτες της πόλης.<br />
Ένα άλλο μειονέκτημα είναι αυτό που αναφέρεται και στην 6.4.9.9, δηλαδή πως σε μία τοποθεσία<br />
αναφοράς που εκτείνεται σε μεγάλη έκταση μπορεί να επιλέγεται οποιοδήποτε σημείο, χωρίς αυτό<br />
να είναι το απαραίτητα χρήσιμο, οδηγώντας σε όχι τόσο σωστές λύσεις, αφού π.χ. αυξάνει πολύ και<br />
χωρίς πραγματικό λόγο το μήκος διαδρομής πεζή.<br />
Ένα τέτοιο παράδειγμα παρουσιάζεται στην ακόλουθη εικόνα:<br />
203
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 72: Ο χρήστης έχει επιλέξει ένα σημείο εντός του Αερολιμένα ως προέλευση, το οποίο όμως<br />
δεν αντιστοιχεί στο σημείο αφίξεων, αλλά στο Parking.<br />
το παράδειγμα αυτό, ο Φρήστης, χωρίς να γνωρίζει με λεπτομέρεια τους χώρους του Αερολιμένα,<br />
ή/και χωρίς να θέλει να δώσει ιδιαίτερη προσοχή, επέλεξε ένα τυχαίο σημείο του Αερολιμένα ως<br />
προορισμό. Σο σημείο αυτό αντιστοιχεί όμως στο Parking, ενώ στην πραγματικότητα ο Φρήστης<br />
ενδιαφερόταν για το σημείο εξόδου από τον Αεροσταθμό. Σο αποτέλεσμα είναι να εμφανίζεται μία<br />
μεγάλη διαδρομή πεζή, η οποία κατεπέκταση επηρεάζει συνολικά τις προσφερόμενες Προτάσεις<br />
Σαξιδίου.<br />
204
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4.9.11 Επιλογή Προέλευσης Προορισμού Με Dragging Σων Markers.<br />
Ένας άλλος τρόπος άμεσης επιλογής της προέλευσης ή του προορισμού είναι με σύρσιμο (dragging)<br />
του πράσινου ή κόκκινου Marker που αντιστοιχεί σε αυτές τις τοποθεσίες. Σο dragging γίνεται<br />
αντιληπτό χάρη στην τοποθέτηση κατάλληλων event listeners στους Markers, μέσω των οποίων<br />
καλείται η σχετική function έπειτα από ένα DRAG_END.<br />
Μόλις ο Φρήστης αφήσει λοιπόν τον Marker σε κάποια τοποθεσία, τότε καλείται η προαναφέρομενη<br />
fuction, η οποία ενημερώνει κατάλληλα τo αντικείμενo προέλευσης προορισμού, το textbox, και η<br />
Εφαρμογή τίθεται εκ νέου σε κατάσταση ‗Options‘. To textbox δεν ενημερώνεται με κάποια<br />
διεύθυνση ή άλλο κείμενο, αλλά με το ζεύγος συντεταγμένων του επιλεγμένου σημείου (πλάτος,<br />
μήκος). Πατώντας όμως ο Φρήστης μέσα σε αυτό, και χωρίς να πειράξει κάτι, τότε πραγματοποιείται<br />
αντίστροφο geocoding, κι έτσι πλέον εμφανίζεται η διεύθυνση που αντιστοιχεί σε αυτές τις<br />
συντεταγμένες.<br />
πως και στην περίπτωση της επιλογής με double click (6.4.9.10), τα μειονεκτήματα της<br />
λειτουργίας είναι η απαιτούμενη εξοικίωση του Φρήστη με την περιοχή, και το ότι μπορεί να<br />
επιλέγεται σημείο μίας μεγάλης περιοχής, χωρίς να είναι αυτό το λειτουργικά χρήσιμο.<br />
6.4.9.12 Αντιστροφή Προέλευσης—Προορισμού.<br />
Με το πάτημα του κουμπιού ‗SWAP‘ από τον Φρήστη, μια μικρή function ανταλλάσει μεταξύ τους τα<br />
αντικείμενα προέλευσης-προορισμού. Με χρήση ενός ενδιάμεσου προσωρινού αντικειμένου της ίδιας<br />
κλάσης. τη συνέχεια ενημερώνονται κατάλληλα και οι Markers πάνω στον Φαρτη.<br />
6.4.9.13 Επιλογές Για Σην Βελτιστοποίηση, Σα Επιθυμητά Μέσα, Σο Μέγιστο Μήκος<br />
Πεζή.<br />
Εκτός από την προέλευση και τον προορισμό, ο Φρήστης μπορεί να επιλέξει τον τρόπο με τον οποίο<br />
θα γίνει η βελτιστοποιήση των Προτάσεων Σαξιδίου (Δηλαδή για την γρηγορότερη άφιξη/αργότερη<br />
αναχώρηση), τα μέσα που επιθυμεί να χρησιμοποιήσει (λα, Μόνο Σρένα, Μόνο Λεωφορεία, ή μόνο<br />
Πεζή), καθώς και το μέγιστο μήκος της απόστασης που θέλει να διανύσει πεζή.<br />
205
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Οι επιλογές αυτές γίνονται από DropDown Lists στις οποίες έχουν γίνει binded ArrayCollections με<br />
τις σχετικές τιμές ως αντικείμενα. Σα αντικείμενα αυτά περιέχουν δύο properties: Σο ένα είναι η<br />
ονομασία που εμφανίζεται στον Φρήστη, και η άλλη είναι η τιμή που χρησιμοποιείται<br />
προγραμματιστικά για την δημιουργία του HTTP ερωτήματος.<br />
Ψς παράδειγμα παρουσιάζεται η περίπτωση των δυνατών επιθυμητών μέσων:<br />
[Bindable]<br />
public var bdtddlGoBy:ArrayCollection = new ArrayCollection(<br />
[ {display:"Using <strong>An</strong>y Mean", value:"TRANSIT,WALK"},<br />
{display:"Using Trains", value:"TRAINISH,WALK"},<br />
{display:"Using Buses", value:"BUSISH,WALK"},<br />
{display:"Walking Only", value:"WALK"},<br />
]);<br />
6.4.9.14 Επιλογή Φρονικής τιγμής Για Αναχώρηση ή Άφιξη.<br />
Η τελευταία επιλογή του Φρήστη είναι για την χρονική στιγμή, και το αν αυτή αφορά την επιθυμητή<br />
αναχώρηση από την προέλευση, ή την επιθυμητή αύξηση στον προορισμό. Πρακτικά αυτό σημαίνει<br />
ότι οι Προτάσεις Σαξιδίου δεν θα εκκινούν πριν, ή δεν θα τερματίζουν αργότερα από την χρονική<br />
στιγμή αντίστοιχα. την δεύτερη περίπτωση προτιμώνται οι Προτάσεις που τερματίζουν πιο κοντά<br />
στην χρονική στιγμή άφιξης, έτσι ώστε να μην υπάρχει πιθανόν νεκρός χρόνος μετά το πέρας του<br />
ταξιδίου.<br />
Η επιλογή για το αν η χρονική στιγμή αφορά την αναχώρηση ή την άφιξη γίνεται από ένα ζεύγος<br />
radio buttons, με προεπιλεγμένο το ‗Depart‘, όπως προεπιλεγμένη είναι και η τρέχουσα κάθε φορά<br />
χρονική στιγμή, εκτός κι αν έχουν προκαθοριστεί αλλιώς από την σχετική λειτουργία.<br />
Η επιλογή της ημερομηνίας για την χρονική στιγμή γίνεται μέσω ενός calendar που ανοίγει με click<br />
του χρήστη. Οι ημερομηνίες που μπορούν να επιλεγούν είναι αυτές για τις οποίες υπάρχουν στοιχεία<br />
στο GT Feed. Η επιλογή της ώρας γίνεται μέσω ενός οριζόντιου slider με τιμές ανά 5‘. Σο συνολικό<br />
μήκος του slider αντιστοιχεί στο 24ωρο.<br />
Σέλος, με το πάτημα ενός κουμπιού ‗NOW‘, ο χρήστης μπορεί να (επανα)θέσει ως επιλογή την<br />
τρέχουσα χρονική στιγμή. Αυτό έχει πρακτικά νόημα για την αναχώρηση κι όχι για την άφιξη βέβαια.<br />
Θα μπορούσαν να υπάρχουν αντίστοιχα κουμπιά ‗in 10 minutes‘, ‗1 hour later‘, κτλ, όμως κρίθηκε<br />
ότι θα αύξαναν χωρίς σημαντικό κέρδος τα αντικείμενα στην οθόνη, κάνοντας δυσκολότερο να βρει<br />
κάποιος αυτό που θέλει.<br />
206
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Ας σημειωθεί ότι η χρονική στιγμή είναι public μεταβλητή τύπου Date, πάνω στην οποία έχουν γίνει<br />
binded όλα τα σχετικά controls.<br />
6.4.9.15 Εμφάνιση Δικτύου Metro.<br />
Η εμφάνιση του δικτύου metro πάνω στον Φάρτη είναι μία παράλληλη λειτουργία, η οποία είναι<br />
διαθέσιμη τόσο κατά την κατάσταση ‗Options‘ και τις υποκαταστάσεις ‗Geocoding‘ και<br />
‗POIsSelection‘ αυτής, όσο και κατά την κατάσταση ‗Suggestions‘.<br />
Η επιλογή για την εμφάνιση ή όχι του δικτύου γίνεται από ένα toggle button που υπάρχει στην κάτω<br />
δεξιά γωνία του χάρτη. Πατώντας πάνω σε αυτό καλείται η σχετική function, η οποία αλλάζει την<br />
κατάσταση μίας public μεταβλητής boolean.<br />
Σα δεδομένα για την απεικόνιση του δικτύου περιέχονται μέσα στο κύριο Flash αρχείο, ως<br />
αντικείμενα ενός ArrayCollection όσον αφορά τους σταθμούς. Σα πεδία είναι 3: Ονομασία,<br />
γεωγραφικό πλάτος, γεωγραφικό μήκος. Οι polylines που συνδέουν τους σταθμούς μεταξύ τους<br />
δημιουργούνται από encoded polylines οι οποίες ορίζονται μέσα στην ίδια την function για την<br />
απεικόνιση του δικτύου.<br />
Ένα δείγμα των στοιχείων αυτών είναι το εξής:<br />
public var SystemMapStations:ArrayCollection = new ArrayCollection(<br />
[<br />
{Name: 'PIRAEUS METRO STATION', Lat: 37.94797239, Lng: 23.64297478},<br />
{Name: 'NEO FALIRO METRO STATION', Lat: 37.94446494, Lng:<br />
23.66391036},<br />
{Name: 'MOSCHATO METRO STATION', Lat: 37.95531673, Lng: 23.68017257},<br />
...<br />
Η εικόνα που χρησιμοποείται ως εικονίδιο είναι embedded, και σε κάθε τέτοιο εικονίδιο (Marker)<br />
αποδίδεται ένας event listener. Κατά αυτόν τον τρόπο, αν ο Φρήστης πατήσει με τον κέρσορα πάνω<br />
στο εικονίδιο ενός σταθμού, εμφανίζεται ένα InfoWindow για την επιλογή του ως προέλευση ή<br />
προορισμό, όπως περιγράφεται και στην 6.4.9.9.<br />
207
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4.9.16 Δημιουργία Προτάσεων Σαξιδίου.<br />
Αφού ο Φρήστης έχει επιλέξει και ορίσει τις διάφορες παραμέτρους που αφορούν το ερώτημά του,<br />
τότε μπορεί πλέον να πατήσει πάνω στο κουμπί ‗Plan My Journey!‘. Με αυτόν τον τρόπο καλείται η<br />
Function η οποία είναι πρωταρχικά υπέυθυνη για την δημιουργία των Προτάσεων Σαξιδίου.<br />
Σο state της Εφαρμογής γίνεται ‗PleaseWait‘, κατά το οποίο έχουν απενεργοποιηθεί όλες οι<br />
λειτουργίες, ενώ στην οθόνη εμφανίζεται ένα παράθυρο όμοιο με του ‗About‘ δίνοντας κάποιες<br />
βασικές πληροφορίες για την Εφαρμογή. το κάτω μέρος του παραθύρου υπάρχει μία progress bar,<br />
η οποία είναι ενδεικτική της εξέλιξης που πραγματοποιείται. Η ποσοστιαία εξέλιξη που φαίνεται στην<br />
progress bar είναι κατ‘εκτίμηση, όπου το ποσοστό αυξάνεται κατά ένα ποσό που έχει καθοριστεί για<br />
κάθε επιμέρους βήμα.<br />
το state ‗PleaseWait‘, όπως και στο ‗Suggestions‘ που ακολουθεί για την εμφάνιση των Προτάσεων<br />
Σαξιδίων, δεν εμφανίζεται πλέον το panel ‗Options‘, αλλά έχει προστεθεί ως μεσαίο αντικείμενο τού<br />
HBox ένα καινούριο Panel, αυτό των Προτάσεων. Η εμφάνισή του στο state ‗PleaseWait‘ γίνεται<br />
κυρίως για τεχνικούς λόγους (ώστε να έχουν δημιουργηθεί τα αντικείμενα και να μπορούν να<br />
συμπληρώνονται), αλλά και για να υπάρχει μια οπτικοποίηση της εξέλιξης προς τον Φρήστη, πέρα<br />
από την μέσω της progress bar.<br />
Διάγραμμα 13: Σα διάφορα αντικείμενα που αποτελούν την οθόνη της Εφαρμογής μετά την θέση<br />
του ερωτήματος, σε σχηματική παράσταση. Σο γαλάζιο παραλληλόγραμμο αντιστοιχεί στο panel<br />
εμφάνισης των Προτάσεων.<br />
208
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σο panel των Προτάσεων έχει στο πάνω σημείο του κάποια labels και textboxes για την εμφάνιση<br />
των σχετικών επιλογών που έχει κάνει ο Φρήστης. Πιο κάτω περιέχει ένα accordion με 3 panes,<br />
καθένα από τα οποία αντίστοιχει σε μία από τις εώς και 3 Προτάσεις Σαξιδίου.<br />
Μέσα στο κάθε pane, αρχικά περιέχονται labels για την εμφάνιση των ολικών στοιχείων της κάθε<br />
Πρότασης, δηλαδή της χρονικής στιγμής αναχώρησης, της άφιξης, της τιμής του απαιτούμενου<br />
κανονικού εισιτηρίου, και του μήκους διαδρομής πεζή. τη συνέχεια του pane περιέχεται ένας<br />
scroller, ώστε να μπορούν να εμφανίζονται περιεχόμενα μεγάλου συνολικού μήκους, μέσω της<br />
κίνησης ενός κατακόρυφου scrollbar. Μέσα στον scroller υπάρχει ένα VBox container, στο οποίο<br />
τοποθετούνται τα RichText αντικείμενα για τα τμήματα κάθε Πρότασης.<br />
το τέλος του κατακόρυφου panel υπάρχουν 3 κουμπιά: για την επανεκκίνηση της Εφαρμογής και<br />
την δημιουργία ενός νέου ερωτήματος, για την τροποποίηση του παρόντος ερωτήματος, και για την<br />
εκτύπωση των αποτελεσμάτων.<br />
Από την Εφαρμογή Φρήστη, αρχικά γίνεται κλήση του Routing Engine. Η κλήση αυτή γίνεται<br />
σύμφωνα με τα όσα έχουν αναφερθεί στην 6.4.5. Μόλις το routing engine επιστρέψει πλήρως μία<br />
απάντηση, τότε καλείται η Function που αντιστοιχεί στο event (ResultEvent Handler).<br />
την Function αυτή γίνεται έλεγχος για το αν υπάρχουν όντως Προτάσεις στην απάντηση, κι έπειτα<br />
ακολοθεί η μετεπεξεργασία των Προτάσεων. Η μετεπεξεργασία κρίθηκε καλύτερο να συμβαίνει στην<br />
client εφαρμογή, αφενός ώστε να μην υπάρχει περαιτέρω τροποποιήση του routing engine, οπότε<br />
και θα καθίστατο μη αξιοποίησιμο πιθανόν σε άλλες παρόμοιες εφαρμογές, κι αφετέρου ώστε να<br />
αποφευχθεί η αύξηση του υπολογιστικού φόρτου στον server.<br />
Η κύρια δράση της μετεπεξεργασίας στην παρούσα στιγμή είναι η αποκοπή των τμημάτων<br />
Προτάσεων Σαξιδίου που αφορούν χρήση ΜΜΜ για μικρό μήκος. Σέτοια τμήματα δημιουργούνται<br />
λόγω του τρόπου λειτουργίας του routing engine, καθώς θεωρώντας ακριβείς χρόνους διέλευσης<br />
από τις στάσεις, έπεται ότι η αναμονή μπορεί να είναι σχεδόν μηδενική, κι άρα η χρήση ΜΜΜ μέχρι<br />
την επόμενη στάση είναι έντονα ανταγωνιστική της διαδρομής πεζή. Αυτό όμως δεν ισχύει στην<br />
πράξη για την περίπτωση της Αθήνας, κι έτσι αυτά τα τμήματα καταργούνται, με επέκταση του<br />
προηγούμενου τμήματος πεζή. Διάφορες προσπάθειες που έγιναν ώστε να αποφευχθεί αυτό από το<br />
ίδιο το routing engine, με επιβολή μεγαλύτερης ποινής στις μετεπιβιβάσεις, και με αύξηση της<br />
προτίμησης πραγματοποίησης μίας διαδρομής πεζή αντί της αναμονής στη στάση, δεν είχαν κάποια<br />
ικανοποιητική επιτυχία, δημιουργώντας μάλιστα έτσι προβλήματα σε άλλες περιπτώσεις.<br />
Η σποκοπή πραγματοποιείται με διαγραφή του τμήματος από το αντικείμενο της απάντησης που<br />
έχει δώσει το routing engine, κι αντικατάσταση του Pto αντικειμένου του προηγούμενου τμήματος<br />
με το αντίστοιχο από αυτό που διαγράφεται. Επίσης, τροποποιούνται κατάλληλα κάποια δεδομένα,<br />
όπως είναι ο αριθμός των μετεπιβιβάσεων, που μειώνονται κατά μία.<br />
209
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
την συνέχεια ενημερώνονται τα διάφορα γενικά στοιχεία του Panel των Προτάσεων, ενώ<br />
ενημερώνονται αμέσως μετά τα γενικά στοιχεία κάθε Πρότασης, με υπολογισμό και του<br />
απαραίτητου για κάθε μία κανονικού εισιτηρίου (6.4.9.19).<br />
(Η διαδικασία που περιγράφεται αναπαρίσταται σχηματικά στο διάγραμμα που ακολουθεί.)<br />
Έπειτα, συμπληρώνονται για κάθε Πρόταση τα τμήματα Σαξιδίου. Αυτό γίνεται με την δημιουργία<br />
RichTexts αντικειμένων που τοποθετούνται το ένα κάτω από το άλλο στο αντίστοιχο VBox. ε αυτή<br />
την φάση δεν περιλαμβάνται οι εναλλακτικές Γραμμές που μπορούν να χρησιμοποιηθούν, όμως η<br />
απόδοση ενός χαρακτηριστικού ID στα RichTexts αντικείμενα στα οποία αναφέρεται το μέσο και η<br />
Γραμμή, κάνει εφικτή την μετέπειτα συμπληρωσή τους. Σο περιεχόμενο κάθε RichText<br />
διαμορφώνεται ανάλογα, ώστε να υπάρχει μία πιο «ανθρώπινη» περιγραφή. Αυτό επιτυγχάνεται μέσα<br />
από μία σειρά IF..THEN..ELSE.. διαδικασιών.<br />
210
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Ερϊτθμα ςτο Route Engine.<br />
Βρζκθκαν Λφςεισ<br />
ΝΑΙ<br />
ΟΧΙ<br />
Συμπλιρωςθ Στοιχείων που αφοροφν όλεσ τισ Ρροτάςεισ.<br />
Μετεπεξεργαςία Κάκε Ρρόταςθσ.<br />
Μετεπεξεργαςία Κάκε Ρρόταςθσ 2.<br />
Εφρεςθ Απαραίτθτου Ειςιτθρίου.<br />
Συμπλιρωςθ Γενικϊν Στοιχείων Κάκε Ρρόταςθσ.<br />
Συμπλιρωςθ Λεκτικϊν Στοιχείων Κάκε Κλάδου.<br />
Ρεριοδικι<br />
Εκτζλεςθ ουτινϊν.<br />
Επόμενθ Σελίδα<br />
ΝΑΙ<br />
ΝΑΙ<br />
Απάντηση<br />
Ασύγτρονοσ<br />
Ερωτήματος<br />
Ολοκληρώθηκε.<br />
Απάντηση<br />
Ασύγτρονοσ<br />
Ερωτήματος<br />
Ολοκληρώθηκε.<br />
Μινυμα Λάκουσ<br />
Επιςτροφι ςτθν<br />
Ραραμετροποίθςθ<br />
Για Κάκε Κλάδο Σθσ Πρόταςθσ.<br />
Για Κάκε Πρόταςθ.<br />
211
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σο επόμενο στάδιο αφορά την δημιουργία των οπτικών απεικονίσεων, τόσο για τα τμήματα με ΜΜΜ,<br />
όσο και για αυτά που γίνονται πεζή, με χρήση της υπηρεσίας Google Directions σε αυτή την<br />
περίπτωση. Επίσης αφορά την συμπλήρωση των Γραμμών με τις εναλλακτικές που συνδέουν κάθε<br />
ζεύγος στάσεων.<br />
Συνζχεια από τθν Ρροθγοφμενθ Σελίδα<br />
Ολoκλθρϊκθκαν<br />
Τα ερωτιματα.<br />
ΝΑΙ<br />
ΟΧΙ<br />
Συμπλιρωςθ Λεκτικϊν Στοιχείων Κλάδου Με τα Στοιχεία των<br />
Εναλλακτικϊν Γραμμϊνν.<br />
Διαμόρφωςθ Και Αποκικευςθ Στοιχείων Απεικόνιςθσ Στον Χάρτθ.<br />
Εμφάνιςθ Ρρϊτθσ Ρρόταςθσ.<br />
Οι κλήσεις προς την Google Directions και προς τον Tsoop! Server γίνονται ασύγχρονα. Επειδή όμως<br />
στην συγκεκριμένη εφαρμογή γίνεται με σειριακό χαρακτήρα κι επαναληπτικό τρόπο θέση πολλών<br />
ερωτημάτων προς τους δύο HTTP servers (από ένα ερώτημα για κάθε κλάδο πρότασης ταξιδίου που<br />
αφορά διαδρομές πεζή ή με ΜΜΜ, στη σειρά για κάθε κλάδο), ήταν απαραίτητο να μην τίθεται ένα<br />
νέο ερώτημα πριν ολοκληρωθεί το προηγούμενο.<br />
Εκτζλεςθ Νζου<br />
Κφκλου.<br />
Διάγραμμα 14: χηματική Απεικόνιση της Διαδικασίας Θέσης Ερωτημάτων, Λήψης Απαντήσεων, και<br />
διαχείρισής τους, από την Client Εφαρμογή.<br />
την γλώσσα Αctionscript που χρησιμοποιείται από το Flex, δεν υπάρχει η δυνατότητα παύσης<br />
εκτέλεσης του κώδικα για κάποιο χρονικό διάστημα, π.χ. με μία εντολή Pause(time) ή Wait(time).<br />
Έτσι υιοθετήθηκε η λύση τού να γίνεται περιοδική επανάκληση των σχετικών ρουτινών για την<br />
εύρεση των διαδρομών πεζή και των εναλλακτικών Γραμμών ΜΜΜ, όπου με χρήση μεταβλητών flag<br />
ως δεικτών για την ολοκλήρωση κάθε βήματος γίνεται ανάλογα εκτέλεση τού επόμενου, ή<br />
Για Κάκε Κλάδο Σθσ Πρόταςθσ.<br />
Για Κάκε Πρόταςθ.<br />
212
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
επανέλεγχος τής ολοκλήρωσης στην επόμενη κλήση των ρουτινών. Η διαδικασία εμφανίζεται<br />
σχηματικά στο προηγούμενο Διάγραμμα.<br />
Ο επανέλεγχος για την ολοκλήρωση των απαντήσεων γίνεται με χρήση ενός timer, το οποίο κάνει<br />
επανακλήσεις ανά κάποιο χρονικό διάστημα. Σο διάστημα αυτό είναι της τάξης των ms και τέθηκε<br />
ανάλογα με τον μέσο χρόνο ολοκλήρωσης των απαντήσεων. Πολύ μεγάλη τιμή δημιουργεί μεγάλους<br />
κύκλους, και συνεπώς μεγάλους νεκρούς χρόνους στο τέλος κάθε κύκλου. Πολύ μικρή τιμή από την<br />
άλλη δημιουργεί πολλές άσκοπες επανακλήσεις, με αποτέλεσμα να δαπανάται υπολογιστική ισχύ<br />
κατά τους ελέγχους ολοκλήρωσης. την πράξη, οι όποιες καθυστερήσεις με λογικές τιμές του<br />
χρονικού διαστήματος, δεν είναι ορατές από τον Φρήστη.<br />
Κατά την διαδιακασία αυτή, για τα τμήματα των τμημάτων ταξιδίου που γίνονται με ΜΜΜ τα<br />
στοιχεία της οπτικοποίησης προκύπτουν από τα στοιχεία που περιέχονται στην απάντηση από το<br />
routing engine. Για τα τμήματα των τμημάτων ταξιδίου που γίνονται πεζή, τα στοιχεία της<br />
οτπικοποίησης προκύπτουν κάθε φορά από την απάντηση του ερωτήματος προς την υπηρεσία<br />
Google Directions.<br />
Κάθε φορά που ένα τμήμα ταξιδίου ολοκληρώνεται, τότε το αντικείμενο της κλάσης αυτής εισάγεται<br />
στο αντικείμενο της υπερκλάσης για ολόκληρη την Πρόταση Σαξιδίου, δηλαδή για όλα τα τμήματα<br />
αυτής. μοια, κάθε αντικείμενο της υπερκλάσης ολοκληρώνεται, αυτό εισάγεται στο ένα και<br />
μοναδικό αντικείμενο της ακόμη υψηλότερης κλάσης, αυτής που είναι η συλλογή όλων των<br />
Προτάσεων Σαξιδίου.<br />
την περίπτωση των εναλλακτικών Γραμμών, αυτές επιστρέφονται για κάθε τμήμα με ΜΜΜ της<br />
Πρότασης Σαξιδίου μορφοποιημένες σε XML. ύμφωνα με τα περιεχόμενα της XML απάντησης<br />
τροποποείται ανάλογα το RichText που αντιστοιχεί στο συγκεκριμένο τμήμα. Η αναγνώριση του<br />
κατάλληλου RichText αντικειμένου γίνεται μέσω του κωδικοποιοημένου ID που του έχει αποδοθεί<br />
κατά την δημιουργία του.<br />
πως φαίνεται στα προηγούμενα, τα αποτελέσματα που δημιουργούνται καθόλη την διαδικασία<br />
αποθηκεύονται είτε στους Visual Containers, είτε σε κατάλληλες μεταβλητές με κλάσεις που έχουν<br />
δημιουργηθεί. Κατά αυτόν τον τρόπο επιτυγχάνεται η όσο το δυνατόν μεγαλύτερη<br />
ανεξαρτητοποίηση της Client Εφαρμογής από τους Servers για την συνέχεια. Έτσι, αφενός<br />
μειώνονται οι κλήσεις προς τους servers, ο επεξεργαστικός φόρτος σε αυτούς και η κίνηση μέσω<br />
δικτύου, κι αφετέρου, περιορίζεται η ανάγκη συνεχούς επανεισόδου στο Internet για τον Φρήστη.<br />
ο χαρακτηριστικό αυτό είναι ιδιαίτερα σημαντικό για μια Εφαρμογή με έντονα φορητό χαρακτήρα,<br />
καθώς το δίκτυο μπορεί να μην είναι συνεχώς διαθέσιμο κατά την πραγματοποίηση τού ταξιδίου, ή<br />
213
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
να κοστίζει ιδίαιτερα ακριβά. Βέβαια, δεν γίνεται πλήρη ανεξαρτητοποίηση της Client Εφαρμογής σε<br />
λειτουργία απεικόνισης των λύσεων, καθώς ο Google Φάρτης μπορεί να απεικονίζεται offline, αλλά<br />
με προϋπόθεση την ύπαρξη αρκετών cached δεδομένων για την περιοχή. ε κάθε περίπτωση<br />
βέβαια, η offline διατήρηση των Προτάσεων Σαξιδίου μπορεί να γίνει και με την εκτύπωση τους.<br />
6.4.9.17 Παρουσίαση Και Διαχείριση Προτάσεων Σαξιδίου.<br />
Μετά το τέλος της διαδικασίας για κάθε Κλάδο, όλων των Προτάσεων Σαξιδίου που έχουν δοθεί ως<br />
απάντηση από το Routing Engine, η εφαρμογή τίθεται στην κατάσταση παρουσίασης και διαχείρισης<br />
των Προτάσεων (state ‗Suggestions‘).<br />
Σα στοιχεία που αφορούν την λεκτική περιγραφή των προτάσεων έχουν ήδη δημιουργηθεί κατά την<br />
ανάκτηση και μετεπεξεργασία των Προτάσεων Σαξίδιου. Κατά το ίδιο στάδιο έχουν δημιουργηθεί τα<br />
αντικείμενα που αφορούν την οπτικοποίηση των τμημάτων κάθε Πρότασης Σαξιδίου.<br />
Ο Φρήστης μπορεί να επιλέξει ποιά Πρόταση θα εμφανίζεται μπροστά του, πατώντας απλός στο<br />
pane της πρότασης που επιθυμεί, μέσα στο accordion. Σα στοιχεία δεν ξαναδημιουργούνται, απλώς<br />
κρύβονται ή εμφανίζονται μαζί με το pane στο οποίο συμπεριλαμβάνονται.<br />
Η οπτικοποίηση γίνεται από μία function η οποία καλείται με ένα ID που αντιστοιχεί στην Πρόταση<br />
προς οπτικοποίηση. Αρχικά αυτό γίνεται για την πρώτη Πρόταση, όμως η διαδικασία<br />
επαναλαμβάνεται κάθε φορά που ο Φρήστης επιλέγει άλλη Πρόταση για να βλέπει. Εν αντιθέσει με<br />
την λεκτική περιγραφή, τα οπτικά στοιχεία πάνω στον χάρτη δημιουργούνται εκ νέου κάθε φορά.<br />
Αυτό δεν σήμαινει ότι γίνεται επανασύνδεση με τους servers, καθώς όπως περιγράφηκε, τα<br />
απαραίτητα στοιχεία αποθηκεύονται σε τοπικά αντικείμενα κατάλληλα δημιουργημένων κλάσεων.<br />
λα τα αντικείμενα οπτικοποίησης τοποθετούνται σαν overlays πάνω στον Φάρτη. Μαζί με την<br />
Πρόταση Σαξδίου οπτικοποείται στο τρέχον state και το ζεύγος προέλευσης – προορισμού, χωρίς<br />
όμως να είναι draggable.<br />
Γενικότερα, είναι απενεργοποιημένες οι λειτουργίες Φάρτη που αφορούν τις επιλογές προέλευσης και<br />
προορισμού, κι αν επιθυμεί ο Φρήστης να κάνει νέες επιλογές θα πρέπει να πατήσει στο σχετικό<br />
κουμπί. μοια, μπορεί να επιλέξει να τροποποιήσει το ερώτημα, το οποίο γίνεται πατώντας στο<br />
σχετικό κουμπί που ―καθαρίζει‖ τον Φάρτη και τα αντικείμενα λεκτικής περιγραφής, κι επαναφέρει<br />
την Εφαρμογή στο state ‗Options‘.<br />
214
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
6.4.9.18 Εκτύπωση.<br />
την πραγματικότητα δεν γίνεται άμεσα εκτύπωση σε χαρτί, αλλά δημιουργείται ένα αρχέιο PDF, το<br />
οποίο μπορεί να αποθηκευθεί, μεταφερθεί, ή εκτυπωθεί. Η λειτουργία της «εκτύπωσης» γίνεται με<br />
την χρήση της open source βιλβιοθήκης AlivePDF. Με αυτήν προστίθενται στοιχεία για χρήση στο<br />
Flex όπως είναι π.χ. το PDF document, το page κτλ. Έτσι, αφού δημιουργηθεί ένα PDF document ως<br />
αντικείμενο, προστίθεται σε αυτό μία σελίδα μεγέθους Α4 portrait. Έπειτα δημιουργείται κείμενο<br />
πάνω στην σελίδα, μεταφέροντας τα στοιχεία από το pane της Πρότασης Σαξιδίου που είναι ενεργή.<br />
Παρέχονται πάρα πολλές ιδιότητες από την βιβλιοθήκα για την κατάλληλη μορφοποιήση του<br />
κειμένου. Δυστυχώς όμως, παρουσιάζονται πάρα πολλά προβλήματα, επειδή η βιβλιοθήκη είναι<br />
ακόμη σε πρώίμο στάδιο ανάπτυξης. Έτσι π.χ. αποτυγχάνει η προσπάθει εκτύπωσης εικόνων, κατά<br />
συνέπεια και των χαρτών για τις διαδρομές πεζή, καθώς αυτές εκτυπώνονται μερικώς.<br />
Λόγω των συνεχών τροποποιήσεων και δοκιμών που γίνονται για να παρακαμφτούν τα προβλήματα,<br />
δεν γίνεται μεγαλύτερη αναφορά στην λειτουργία αυτή. Να αναφερθεί όμως ότι στις πρόσφατες<br />
εκδόσεις είναι δυνατή η εκτύπωση προς το PDF αρχείο αποκλειστικά από την Εφαρμογή Φρήστη,<br />
χωρίς να απαιτείται η διαμεσολάβηση κάποιου PHP server. Κατά αυτόν τον τρόπο μειώνεται<br />
σημαντικά ο φόρτος στο δίκτυο από και προς τον Server.<br />
Παρόλη την προβληματική λειτουργία, ο Φρήστης δεν στερείται της δυνατότητας εκτύπωσης, αφού<br />
αυτήν μπορεί να την κάνει από τον Browser, ή τον ίδιο τον Flash Player, χωρίς βέβαια έτσι να<br />
επωφελείται της κατάλληλης μορφοποίησης που γίνεται από την Εφαρμογή.<br />
6.4.9.19 Τπολογισμός Απαραίτητου Εισιτηρίου.<br />
Αν κι ο υπολογισμός του κανονικού εισιτηρίου που απαιτείται για την πραγματοποίηση κάθε<br />
Πρότασης Σαξιδίου γίνεται από το routing engine λαμβάνοντας υπόψη τα στοιχεία που<br />
περιλαμβάνονται στο GT Feed, εν τούτοις αυτό δεν γίνεται απολύτως σωστά. Ακόμη, μεταβολές που<br />
έγιναν στην τιμολογιακή πολιτική του ΟΑΑ (ύπαρξη εκτός του ενιαίου εισιτηρίου 1:30‘ και<br />
μειωμένου εισιτηρίου για μία επιβίβαση σε λεωφορεία, trolleys, ή τραμ) δημιούργησαν μία<br />
κατάσταση που ήταν δύσκολο να μοντελοποιηθεί με ικανοποιητικό τρόπο στο GT Feed.<br />
Έτσι, κρίθηκε καλύτερο ο υπολογισμός του απαραίτητου κανονικού εισιτηρίου να γίνεται πλέον στην<br />
Εφαρμογή Φρήστη. Αυτό γίνεται από μία Function που καλείται με το ID της Πρότασης Σαξιδίου προς<br />
κοστολόγηση κι επιστρέφει την τιμή του εισιτηρίου. Η Function αυτή έχει ούτως ή άλλως πρόσβαση<br />
και στο public αντικείμενο με τις Προτάσεις Σαξιδιίου.<br />
215
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Η λογική που ακολουθείται για τον υπολογισμό είναι μία διαδικασία με συνεχή IF..THEN..ELSE, κατά<br />
τα οποία η τιμή του εισιτηρίου είναι κάθε φορά η μέγιστη από την διαδικασία που μέχρι τότε έχει<br />
ολοκληρωθεί κι από αυτήν που προκύπτει από την τρέχουσα εξεταζόμενη συνθήκη.<br />
216
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
7Παράδειγμα Φρήσης.<br />
O John είχε γνωρίσει τον Μπάμπη όταν και οι δύο σπούδαζαν στο London. Ο John ήταν Άγγλος, όμως<br />
ήταν κι αυτός κατά κάποιο τρόπο ξένος στην πόλη, αφού είχε μεγαλώσει και ζούσε μέχρι τότε σε μία<br />
τυπική Αγγλική επαρχιακή πόλη, το Swindon. Μη όντας λοιπόν «ιθαγενής» κάτοικος της πόλης, έκανε<br />
αρκετή παρέα με τους συμφοιτητές του, πολλοί εκ των οποίων είχαν έρθει από διάφορες χώρες. Ο<br />
Μπάμπης ήταν αυτός με τον οποίον ταίριαζαν περισσότερο σαν παρέα.<br />
Σα χρόνια των σπουδών πέρασαν, και οι δύο φίλοι αποχαιρετίστηκαν, αφού και οι δυό τους<br />
αποφάσισαν να επιστρέψουν στις πόλεις τους. Από τότε κρατούσαν συνεχώς επαφή μέσω<br />
τηλεφώνου, email, Skype, κι οτιδήποτε άλλο η τεχνολογία σταδιακά πρόσθεσε στις δυνατότητες<br />
επικοινωνίας. μως, για φέτος τα Φριστούγεννα, ο John αποφάσισε να ακολουθήσει την πρόσκληση<br />
του Μπάμπη, και να επισκεφθεί για πρώτη φορά την Αθήνα, φιλοξενούμενος από τον φίλο του, ο<br />
οποίος θα εκτελούσε και χρέη ξεναγού. Ο Μπάμπης έμενε σε ένα μεγάλο σπίτι, σε μία καλή και<br />
κεντρική περιοχή της Αθήνας όπως του είχε πει, και είχε αρκετό χώρο για να τον φιλοξενήσει.<br />
Κανονίζει λοιπόν εγκαίρως για τα αεροπορικά εισιτήρια, και περιμένει πως και πως για να έρθει η<br />
στιγμή του ταξιδιού.<br />
217
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Λίγες ημέρες πριν το ταξίδι, μέσα σε μία άλλη συζήτηση που είχαν, ο Μπάμπης ενημερώνει τον John<br />
ότι παρόλο που τού το είχε υποσχεθεί, δυστυχώς δεν θα μπορέσει να πάει να τον πάρει από τον<br />
Αερολιμένα. Σού συνιστά να μην πάρει taxi, αλλά να χρησιμοποιήσει ΜΜΜ για την μετάβασή του<br />
από τον Αερολιμένα στο σπίτι. Ο ίδιος όμως δεν πολυχρησιμοποιεί ΜΜΜ, κι έτσι δεν γνωρίζει πως<br />
ακριβώς μπορεί να μετακινηθεί ο φίλος του. Σού δίνει όμως την διεύθυνση τού σπιτιού, κι επίσης την<br />
διεύθυνση ενός site που έχει ακούσει ότι είναι ιδιαίτερα χρήσιμο για τους επισκέπτες της πόλης που<br />
θέλουν να μετακινηθούν με ΜΜΜ.<br />
Ο John κάποια στιγμή αργότερα μπαίνει στο site που του είχε υποδείξει ο φίλος του, έτσι ώστε να δει<br />
πως μπορεί να μετακινηθεί από τον Αερολιμένα προς την διεύθυνση που του έχει δώσει. «Ελπίζω να<br />
μην είναι μόνο στα Ελληνικά, και να μην είναι ένα χάος από νούμερα, όπως την άλλη φορά»,<br />
σκέπτεται από μέσα του, έχοντας κακή εμπειρία από παλαιότερο ταξίδι του.<br />
την αρχή βλέπει την εισαγωγική οθόνη:<br />
Εικόνα 73: Η εισαγωγική οθόνη του Tsoop! που βλέπει ο φανταστικός Φρήστης του Παραδείγματος.<br />
Παρατηρεί ότι υπάρχει επισήμανση για προγραμματισμένη απεργία στα Μέσα Μαζικής Μεταφοράς<br />
στις 16 Δεκεμβρίου! «Ουφ, παρά μία μέρα», σκέπτεται, ενώ ταυτόχρονα πατά στο πλήκτρο<br />
―Continue‖. «Tsoop!. Σι όνομα κι αυτό...»<br />
218
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σότε εμφανίζεται μπροστά του η οθόνη στην οποία μπορεί να δώσει τα στοιχεία του ταξιδιού που<br />
θέλει να πραγματοποιήσει:<br />
Εικόνα 74: Η οθόνη για την επιλογή διαφόρων παραμέτρων του ταξιδιού.<br />
Ο John, περιεργαζόμενος την οθόνη, παρατηρεί ότι υπάρχει ένα κουμπί με την ονομασία «To/From<br />
Airport». Σο πατάει, και σε ένα άλλο tab του browser εμφανίζονται κάποιες γενικές πληροφορίες για<br />
την εξυπηρέτηση του Αερολιμένα από τα ΜΜΜ. Φρήσιμα όλα αυτά, όμως και πάλι δεν ξέρει πως να<br />
πάει στο σπίτι του φίλου του. Γυρίζει λοιπόν στην οθόνη των επιλογών, και πατάει στο κουμπί POIs για<br />
την προέλευση. την λίστα που εμφανίζεται υπάρχει η κατηγορία ‗AIRPORTS‘. Ανοίγει λοιπόν την<br />
κατηγορία αυτή, και εμφανίζεται η εγγραφή για τον Αερολιμένα ‗EL. Venizelos‘. «Αυτό είνα»,<br />
σκέφτεται! ‗Έτσι κι αλλιώς, δεν υπάρχει άλλο, αποκλείεται να το μπέρδευα‖. Πατώντας πάνω στην<br />
εγγραφή, ο χάρτης μετατοπίζεται, κι ένας Marker του δείχνει την τοποθεσία:<br />
219
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 75: Η επιλογή του Αερολιμένα ως προέλευση από την λίστα των ημείων Ενδιαφέροντος.<br />
τη συνέχεια ο John πληκτρολογεί την διεύθυνση του σπιτιού τού Μπάμπη στο σχετικό πεδίο για τον<br />
προορισμό, κι ανοίγει ένα παράθυρο με μία λίστα με τις διευθύνσεις που ταιριάζουν. την<br />
συγκεκριμένη περίπτωση υπάρχει μόνο μία. Πατώντας πάνω στην διεύθυνση που προτείνεται, ο<br />
Φάρτης μετακινείται, κι ένας Marker επισημαίνει την επιλεγμένη τοποθεσία.:<br />
220
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 76: To Geocoding της διεύθυνσης προορισμού.<br />
τη συνέχεια ο John επιλέγει την ημερομηνία και την ώρα. «Xmm, η πτήση φτάνει γύρω στις 15:15<br />
στην Αθήνα, ένα μισάωρο περίπου να χρειαστώ για να βγω έξω και να πάρω τις βαλίτσες... ας πούμε<br />
ότι στις 16:00 θα είμαι έτοιμος. Ελπίζω να μην υπάρξει καθυστέρηση στην πτήση», σκέφτεται, κι<br />
έπειτα κάνει τις επιλογές του:<br />
221
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 77: Επιλογή της ημερομηνίας και της ώρας.<br />
Έπειτα, ο John παρατηρεί τις υπόλοιπες επιλογές, κι αποφασίζει να επιλέξει να χρησιμοποιήσει μόνο<br />
metro, αφού από ότι είδε υπάρχει σταθμός κοντά στο σπίτι του φίλου του, κι επίσης, να κάνει τις<br />
λιγότερες δυνατές μετεπιβιβάσεις. «Καλύτερα να αλλάξω λιγότερα μέσα κι ας φτάσω λίγο αργότερα,<br />
αφού θα κουβαλάω και τις βαλίτσες», είπε από μέσα του, κι έκανε τις απαραίτητες απλές ενέργειες<br />
στην οθόνη:<br />
222
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 78: Επιλογές για τα επιθυμητά μέσα πραγματοποίησης του ταξιδίου, και του τρόπου<br />
βελτιστοποίησης της αναζήτησης προτάσεων.<br />
Αφού λοιπόν έχουν πραγματοποιηθεί εύκολα οι απαραίτητες επιλογές, o John πατάει στο ‗Plan My<br />
Journey!‘ κι αναμένει, όπως ακριβώς του λέει η οθόνη με μία μπάρα που δείχνει την εξέλιξη της<br />
επεξεργασίας:<br />
223
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 79: Αναμονή για την αναζήτηση προτάσεων ταξιδίου.<br />
Έπειτα από ελάχιστα δευτερόλεπτα, εμφανίζεται η οθόνη με τις Προτάσεις που έχει να κάνει το<br />
Tsoop! για το ταξίδι:<br />
224
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 80: Η οθόνη των Προτάσεων Σαξιδίου όπως πρωτοεμφανίζεται.<br />
Η πρώτη Πρόταση χρησιμοποιεί τις Γραμμές Μ3 και Μ1 του metro, με 1 μετεπιβίβαση στον σταθμό<br />
‗Μονατηράκι‘. Η συνολική διάρκεια της διαδρομής εκτιμάται στα 70 min. Πατώντας πάνω στο pane<br />
της δεύτερης πρότασης, η οθόνη αλλάζει, εμφανίζοντας τα στοιχεία αυτής της Πρότασης:<br />
225
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 81: Η οθόνη των Προτάσεων Σαξιδίου, εμφανίζοντας την δεύτερη Πρόταση.<br />
Η διαφοροποίηση από την Πρώτη Πρόταση είναι στην χρήση της Γραμμής Μ2 αντί της Μ1, με<br />
μετεπιβίβαση στον σταθμό ‗ύνταγμα‘, και σταθμό αποβίβασης τον ‗Μεταξουργείο‘ αντί του<br />
‗Ομόνοια‘. Ίδιος είναι πρακτικά ο συνολικός χρόνος διαδρομής, περίπου 70 min, όπως και το<br />
συνολικό μήκος διαδρομής πεζή, περίπου 1.8 km.<br />
(Παρατήρηση: Σο μήκος διαδρομής πεζή είναι στην πραγματικότητα περίπου 0.8 km, δηλαδή 1 km<br />
λιγότερο. Η λανθασμένη τιμή προέρχεται από την ελλιπή κάλυψη του OpenStreetMap στην περιοχή<br />
του Αερολιμένα, οπότε και το σχετικό routing κάνει έναν μεγάλο κύκλο από την τοποθεσία του<br />
Αερολιμένα μέχρι την τοποθεσία του σταθμού metro. Η διαφοροποίηση αυτή στο μήκος επηρεάζει<br />
και την επιλογή των Προτάσεων, καθώς στο συγκεκριμένο παράδειγμα ευνοούνται έτσι οι<br />
μετακινήσεις με λεωφορεία έναντι αυτών με metro. Σο πρόβλημα αυτό, όπως έχει ήδη αναφερθεί,<br />
συμβαίνει σε ελάχιστες περιπτώσεις, και η περιοχή του Αερολιμένα ανήκει δυστυχώς σε αυτές,<br />
καθώς δεν πρόκειται για μία τυπική αστική περιοχή. Σο πρόβλημα θα περιορίζεται όσο υπάρχει<br />
εμπλουτισμός και αύξηση της ποιότητας των δεδομένων του OSM.)<br />
226
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Κάνοντας ο John zoom στην περιοχή του προορισμού (αλλά εμείς και στην οθόνη στην περιοχή<br />
εμφάνισης των στοιχείων της δεύτερης Πρότασης), προκύπτει η εξής εικόνα:<br />
Εικόνα 82: Zoom στην περιοχή προορισμού και στα στοιχεία της δεύτερης Πρότασης, με<br />
ενεργοποιημένη την εμφάνιση του Δικτύου metro.<br />
Έτσι, ο John βλέπει πλέον αναλυτικά την διαδρομή που πρέπει να διανύσει πεζή από τον σταθμό<br />
αποβίβασης μέχρι το σπίτι του φίλου του. Καθώς δεν υπάρχει Σρίτη Πρόταση και είναι<br />
ικανοποιημένος από την Πρόταση που βλέπει, ο John πατάει στο κουμπί ‗Print‘ και την εκτυπώνει για<br />
να την έχει μαζί του στο ταξίδι. «Μακάρι να υπήρχε κάτι ανάλογο κι εδώ στο Swindon! Θα ήταν πολύ<br />
εξυπηρετικό για κάποιον που χρησιμοποιεί τα ΜΜΜ της πόλης μας!» ήταν οι τελευταίες σκέψεις του<br />
λίγο πριν πάρει από τον εκτυπωτή την έτοιμη σελίδα.<br />
227
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
228
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
8υμπεράσματα – κέψεις -<br />
8.1 Γενικά.<br />
Επόμενα βήματα.<br />
την σημερινή εποχή, τα προβλήματα που παρατηρούνται στις μεγάλες πόλεις από την υπερβολική<br />
κυκλοφορία αυτοκινήτων είναι τεράστια. μως, η δημιουργία νέων δρόμων έχει αποδειχθεί ότι<br />
μεσοπρόθεσμα επιδεινώνει την κατάσταση, ενώ στις περισσότερες περιπτώσεις είναι κι ανέφικτη.<br />
Σην λύση έρχεται να δώσει η βελτιστοποίηση της απόδοσης των υπαρχόντων δικτύων, αλλά και η<br />
βελτιστοποίηση όσο είναι δυνατόν της χωροθέτησης των δραστηριοτήτων, οι οποίες φυσικά<br />
παράγουν τις μετακινήσεις.<br />
την διαφορετική αυτή από το παρελθόν προσέγγιση ιδιαίτερο ρόλο έχει η τεχνολογία, η οποία<br />
εμπλέκεται σε πάρα πολλά θέματα, όπως π.χ. από την λειτουργία εξελιγμένων συστημάτων<br />
σηματοδότησης και την χρήση μοντέλων προσομοίωσης, εώς την παροχή διαφόρων πληροφοριών<br />
προς τους πολίτε, μέσω ενός πλήθους επικοινωνιακών καναλιών.<br />
229
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ημαντικότατο ρόλο στην βελτιστοποίηση της αξιοποίησης των διαθέσιμων δικτύων, και στην<br />
βελτίωση ευρύτερα της ποιότητας ζωής κα‘ επέκταση, έχουν τα Μέσα Μαζικής Μεταφοράς.<br />
Οποιαδήποτε λοιπόν τεχνολογική εφαρμογή διευκολύνει την χρήση τους, προσφέρει στην πόλη και<br />
τους κατοίκους της πολλά περισσότερα από αυτό που αρχικά φαίνεται. Μία τέτοια εφαρμογή είναι<br />
και η εύρεση προτάσεων ταξιδίων με ΜΜΜ.<br />
Οι υπάρχουσες εφαρμογές σε διάφορες πόλεις του κόσμου, αφορούν κατά κανόνα τους μόνιμους<br />
κατοίκους. μως, ένας επισκέπτης (π.χ. τουρίστας) έχει ακόμη περισσότερο ανάγκη μία τέτοια<br />
εφαρμογή, καθώς γνωρίζει ελάχιστα για τα ΜΜΜ της πόλης και συνήθως δεν διαθέτει κατά την<br />
επίσκεψή του ΙΦ αυτοκίνητο.<br />
Η εφαρμογή λοιπόν που υλοποιήθηκε έρχεται να καλύψει την αναγκαιότητα αυτή για τους<br />
επισκέπτες της Αθήνας, χρησιμοποιώντας δωρεάν κι open source επιμέρους λύσεις, αξιολογώντας<br />
επίσης ερευνητικά τα διάφορα εμπλεκόμενα στοιχεία.<br />
Από την ανάπτυξη και την πρώιμη λειτουργία της γίνεται φανερό ότι σήμερα μπορούν να<br />
αναπτυχθούν εφαρμογές με ελάχιστο κόστος, οι οποίες να έχουν όλα ή και περισσότερα<br />
χαρακτηριστικά από αντίστοιχες εμπορικές εφαρμογές υψηλού κόστους.<br />
Θα πρέπει όμως να σημειωθεί ότι η ανάπτυξη της Εφαρμογής συνάντησε αρκετά προβλήματα από<br />
την χρησιμοποίηση κι εμπλοκή σε επιμέρους αντικείμενα όπου τα σχετικά λογισμικά βρίσκονταν σε<br />
πολύ νεαρό στάδιο, κάτι που αναμένεται φυσικά να περιοριστεί πάρα πολύ όσο θα περνάει ο χρόνος<br />
κι αυτά θα ωριμάζουν.<br />
Η λειτουργία των εφαρμογών σε δαδικτυακό περιβάλλον δείχνει να είναι μονόδρομος, για έναν πολύ<br />
μεγάλο αριθμό λόγων. πως φάνηκε μάλιστα και κατά την διάρκεια υλοποίησης, σήμερα παρέχονται<br />
ολοένα και περισσότερα εργαλεία ανάπτυξης εφαρμογών για χρήση μέσω web, κάνοντας την όλη<br />
εργασία ευκολότερη κι αποδοτικότερη.<br />
8.2 Περιβάλλον Εφαρμογής.<br />
Η Εφαρμογή που παρουσιάστηκε δείχνει ότι μπορεί να παρέχει ικανοποιητικές Προτάσεις Σαξιδίου,<br />
ιδιαίτερα μάλιστα προς έναν επισκέπτη, ο οποίος στην πραγματικότητα δεν ενδιαφέρεται τόσο για<br />
την απόλυτα βέλτιστη Πρόταση, όσο για την ευκολία με την οποία μπορεί να έχει μία καλή Πρόταση.<br />
Η χρήση λοιπόν της Εφαρμογής είναι κατά το δυνατόν απλή, παρέχοντας με αποφυγή της<br />
υπερβολής διάφορες λειτουργίες. Έτσι π.χ. μπορεί κάποιος με πολλούς τρόπους να επιλέξει την<br />
προέλευση ή τον προορισμό, αλλά αυτοί οι τρόποι είναι οι προφανείς, κι αυτοί με τους οποίους είναι<br />
230
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ήδη εξοικιωμένοι οι περισσότεροι χρήστες, όπως το απλό dragging ενός κέρσορα, ή το double click<br />
στην περιοχή που επιθυμείται.<br />
μοια και η παρουσίαση των αποτελεσμάτων, χαρακτηρίζεται από απλότητα και ανθρωποκεντρική<br />
προσέγγιση. Περαιτέρω βελτίωση του περιβάλλοντος της εφαρμογής μπορεί να γίνει κι αυτή με βάση<br />
τον άνθρωπο-χρήστη, δηλαδή αξιοποιώντας τις παρατηρήσεις, προτάσεις, κι επιθυμιές των<br />
πραγματικών χρηστών. Μία προφανής πάντως επέκταση του περιβάλλοντος χρήστη μπορεί να είναι<br />
η λειτουργία και σε άλλες γλώσσες, πέρα της Αγγλικής.<br />
Σο Flex framework δείχνει να είναι ιδιαίτερα χρήσιμο στην ανάπτυξη RIAs (Rich Internet<br />
Applications), καθώς παρέχει πολλά εργαλεία για την εύκολη ανάπτυξη εφαρμογών οι οποίες<br />
διαθέτουν περιβάλλοντα χρήστη χαρακτηριζόμενα από την υψηλή οπτική ικανοποίηση του χρήστη,<br />
τόσο καθαρά αισθητικά, όσο και λειτουργικά.<br />
Ένα ιδιαίτερα χρήσιμο στοιχείο είναι η δυνατότητα εύκολης προσαρμογής της εμφάνισης του<br />
περιβάλλοντος χρήστη σε διάφορα μεγέθη οθόνης. Έτσι, είναι δυνατή η χρήση της Εφαρμογής τόσο<br />
σε οθόνες μεγάλου μεγέθους, όσο και σε μικρότερες οθόνες netbook ή κινητών τηλεφώνων, χωρίς<br />
να υπάρχει μεγάλη διαφοροποίηση στην λειτουργικότητα.<br />
Γενικότερα μάλιστα, η ανάπτυξη των client εφαρμογών σε Flex έχει το σημαντικό πλεονέκτημα της<br />
εκτέλεσής τους σε μεγάλη ποικιλία συσκευών και λειτουργικών συστημάτων, με καθόλου ή ελάχιστες<br />
μεταβολές στον κώδικα.<br />
8.3 Προτάσεις Σαξιδίου.<br />
Οι Προτάσεις Σαξιδίου που παρέχονται από την Εφαρμογή είναι πολύ ικανοποιητικές, υπάρχουν<br />
όμως αρκετά περιθώρια για την βελτίωση του routing engine.<br />
Σα κυριότερα προβλήματα που παρατηρούνται και οι αιτίες τους, μαζί με κάποιες προτάσεις, είναι<br />
τα εξής:<br />
8.3.1 Δεδομένα Δικτύου ΜΜΜ.<br />
Οποιαδήποτε εφαρμογή του είδους βασίζεται πάρα πολύ στα δεδομένα που χρησιμοποιούνται.<br />
Ακόμη και η καλύτερη εφαρμογή από πλευράς λειτουργιών, δεν έχει καμία πρακτική αξία αν<br />
231
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
χρησιμοποιεί λάθος δεδομένα, ή δεδομένα χαμηλής ποιότητας, που μπορούν να επηρεάσουν ακόμη<br />
και την ίδια της την λειτουργία. Γενικότερα, μια εφαρμογή οφείλει να είναι προσαρμοσμένη στο είδος<br />
των διαθέσιμων στοιχείων.<br />
Σα πρωτογενή δεδομένα από τον ΟΑΑ χαρακτηρίζονται ότι τόσο από την έλλειψη εγκυρότητας ή<br />
πληρότητας, όσο από την έλλειψη τυποποίησης και σταθερής μορφής. Αυτό κατά συνέπεια<br />
δημιουργεί την ανάγκη πολλαπλών ελέγχων και χειρισμών ώστε να προκύψουν δεδομένα με<br />
ομοιομορφία και συνάφεια. λοι αυτοί οι έλεγχοι και χειρισμοί δεν είναι εφικτό όμως να<br />
αυτοματοποιηθούν, και συνεπώς χρειάζονται συνεχώς ―manual‖ σκέψεις και ενέργειες.<br />
Σο πρόβλημα αυτό με τα δεδομένα δεν είναι στιγμίαιο, καθώς δυσκολεύεται η συνεχής ενημέρωση<br />
των στοιχείων που χρησιμοποιούνται από την εφαρμογή, όπως επίσης κι ο εντοπισμός των<br />
διαφοροποιήσεων που γίνονται σε αυτά. υνεπώς, η διαρκής τροφοδότηση της εφαρμογής με<br />
επικαιροποιημένα στοιχεία είναι ιδιαίτερα δύσκολη, χωρίς να είναι πρακτικά εφικτή η δημιουργία<br />
μίας βοηθητικής εφαρμογής για τον έλεγχο αλλαγών στα στοιχεία δικτύου και την εύκολη κι<br />
αυτοματοποιημένη δημιουργία νέων GT feeds.<br />
Σα προβλήματα εγκυρότητας και πληρότητας δεν είναι τα κύρια, όμως κι αυτά δεν είναι λίγα, καθώς<br />
π.χ. δεν στάθηκε δυνατόν κατά την υλοποίηση της Εφαρμογής να βρεθούν στοιχεία δρομολογίων για<br />
τον Προαστιακό ιδηρόδρομο. Επίσης, σε αρκετές περιπτώσεις οι χρόνοι διαδρομής π.χ. δεν<br />
ανταποκρίνονταν στην πραγματικότητα, και χρειάστηκε να τροποιηθούν με βάση την εμπειρία και<br />
την αξιοποίηση στοιχείων από διάφορες έρευνες.<br />
μοια με ότι ειπώθηκε για τον Προαστικό ιδηρόδρομο, δεν υπάρχουν εύκολα προσβάσιμα κι<br />
αξιοποιήσιμα στοιχεία για τα δρομολόγια των Προαστιακών Λεωφορείων του ΚΣΕΛ Αττικής. Η<br />
χρησιμότητα του ΚΣΕΛ είναι όμως πολύ μικρή σε κάποιον επισκέπτη της πόλης.<br />
χετικά πρόσφατα ο ΟΑΑ έθεσε σε λειτουργία το καινούριο του portal. Είναι πιθανόν να μπορεί να<br />
γίνει προγραμματιστικά αξιοποίησή του για τον έλεγχο και την ενημέρωση κάποιων από τα στοιχεία<br />
της Εφαρμογής, όμως πριν από οποιαδήποτε σχετική προσπάθεια, κρίνεται σκόπιμο να είναι πιο<br />
οριστικοποιημένη η λειτουργία αυτού του νέου portal.<br />
Ένα άλλο πρόβλημα που σχετίζεται με τα δεδομένα είναι η μορφή του de facto προτύπου GTFS που<br />
έχει επικρατήσει. Σο πρότυπο καλείται να καλύψει περιπτώσεις δικτύων ΜΜΜ διαφόρων μορφών,<br />
όπως επίσης και τις συνδέσεις μεταξύ τους, καθώς το σύστημα routing της Google φιλοδοξεί να<br />
καλύψει όσο το δυνατόν περισσότερες περιοχές του πλανήτη. Σο γεγονός αυτό το κάνει όμως<br />
δύσχρηστο στην μοντελοποίηση διάφορων περιπτώσεων, όπως υπάρχουν π.χ. στο σύστημα ΜΜΜ<br />
της Αθήνας. Κρίθηκε καλύτερο όμως για την Εφαρμογή να ακολουθεί όσο το δυνατόν περισσότερο<br />
υπάρχοντα πρότυπα και να μπορεί να γίνεται αξιοποίηση έτσι όσο το δυνατόν περισσότερων<br />
υπαρχόντων εργαλείων. Θα μπορούσε να προταθεί η διερεύνηση δημιουργίας ενός πληρέστερου και<br />
232
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
προσαρμοστικότερου προτύπου, όμως είναι πιθανόν το ίδιο το GTFS να μετεξελλιχθεί σταδιακά σε<br />
κάτι καλύτερο.<br />
8.3.2 Φρησιμοποιούμενοι Φάρτες.<br />
Αν και για την απεικόνιση, αλλά και το τελικό routing των διαδρομών πεζή χρησιμοποιείται ο χάρτης<br />
της Google, εν τούτοις το αρχικό routing βασίζεται στο OpenStreetMaps. Δυστυχώς, τα στοιχεία του<br />
OSM για την περιοχή της Αθήνας δεν είναι επαρκώς συμπληρωμένα, με αποτέλεσμα να<br />
παρουσιάζονται κάποια προβλήματα εξαιτίας αυτού του γεγονότος. Ένα χαρακτηριστικό τέτοιο<br />
παράδειγμα είναι η μη ακριβής και λεπτομερής συμπερίληψη των διαφόρων διαβάσεων, με<br />
αποτέλεσμα να υπάρχει τελικά διαφοροποίηση του μήκους και του χρόνου διαδρομής που δίνεται<br />
από το routing engine του OTP και αυτών που ισχύουν για την διαδρομή που δίνεται από το Google<br />
Directions. Υυσικά, το πρόβλημα δεν είναι τόσο το ποιό μήκος θα παρουσιάζεται στον Φρήστη (είναι<br />
εύκολα εφικτό να παρουσιάζεται οποιοδήποτε από τα δύο), όσο το ότι λόγω των περιορισμένων<br />
στοιχείων του OSM επηρεάζεται η αναζήτηση των Προτάσεων Σαξιδίων, καθώς υπάρχει λανθασμένη<br />
εκτίμηση για τις αποστάσεις που πρέπει να διανυθούν πεζή από, προς, αλλά και μεταξύ των<br />
στάσεων.<br />
Σο πρόβλημα αυτό δεν παρουσιάζεται πάντως σημαντικό σε πολλά σημεία. Η λύση είναι φυσικά ο<br />
εμπλουτισμός του Φάρτη OSM. Διάφορες λύσεις που εξετάστηκαν αρχικά αυτοματοποιημένου<br />
ελέγχου και συμπλήρωσης, κυρίως ώστε να χρησιμοποιούταν αποκλειστικά ο OSM στην Εφαρμογή,<br />
συναντούν κατά κανόνα προβλήματα πνευματικών δικαιωμάτων, καθώς οι εναλλακτικοί χάρτες δεν<br />
διατίθενται ελεύθερα.<br />
8.3.3 Αλγόριθμοι Αναζήτησης Προτάσεων Σαξιδίου.<br />
Ακόμα κι αν υπήρχαν τα απολύτως τέλεια δεδομένα διαθέσιμα, τίποτα δεν εγγυάται την ποιότητα<br />
των Προτάσεων Σαξιδίου, καθώς αυτή εξαρτάται κι από τους αλγόριθμους αναζήτησης.<br />
Οι αλγόριθμοι γενικότερα δεν είναι συνήθως κατασκευασμένοι ώστε να δίνουν την τέλεια λύση, αλλά<br />
μία ικανοποιητική λύση στις περισσότερες των περιπτώσεων, και μέσα σε σύντομο χρόνο, κάνοντας<br />
όσο το δυνατόν εξοικονόμηση των διαθέσιμων πόρων. Λειτουργούν δηλαδή πάνω στον συμβιβασμό<br />
της τελειότητας τού αποτελέσματος και τού περιορισμού των χρησιμοποιούμενων, προσπαθώντας<br />
να εκμεταλλευτούν τις ιδιαιτερότητες που παρουσιάζονται.<br />
την Εφαρμογή που παρουσιάστηκε χρησιμοποιήθηκε για το routing engine (έπειτα από<br />
τροποποιήσεις) ο OpenTripPlanner, o οποίος λειτουργεί με βάση τον αλγόριθμο A*, κάνοντας πρώτα<br />
233
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
χρήση αλγόριθμου της τεχνικής Contraction Ηιerarchies για τον περιορισμό του μεγέθους του<br />
Γράφου.<br />
Ένα πρόβλημα που υπάρχει, αν κι όχι ορατό από τους Φρήστες, είναι η μη καλή απόδοση του A* σε<br />
ένα δίκτυο ΜΜΜ της μορφής που υπάρχει στην Αθήνα. Αυτό έχει ειπωθεί και σε άλλες εργασίες στο<br />
παρελθόν [Αναφορά #35: Αλιφέρη Λουκία (2009), χεδιασμός Πληροφοριακού υστήματος<br />
Ενημέρωσης Επιβατικού Κοινού Αστικών υγκοινωνιών με έμφαση στις Αστικές υγκοινωνίες της<br />
Αττικής, Διπλωματική Εργασία, Πανεπιστήμιο Αιγαίου, Σμήμα Μηχανικών χεδίασης Προϊόντων και<br />
υστημάτων][Αναφορά #36: Κουτσογιάννη Μαριάννα (2006), Αλγόριθμοι Δρομολόγησης Με Μέσα<br />
Μαζικής Μεταφοράς το Δίκτυο Σων Αθηνών, Διπλωματική Εργασία, Εθνικό Μετσόβιο Πολυτεχνείο,<br />
χολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Η/Τ], και οφείλεται κυρίως στο ότι ευρετικά ο<br />
αλγόριθμος πηγαίνει ευκλίδεια από την προέλευση στον προορισμό, ενώ το δίκτυο της Αθήνας είναι<br />
έντονα ακτινικό. Έτσι, στην πραγματικότητα ο αλγόριθμος καθυστερεί στην εύρεση λύσης, αφού δεν<br />
ακουλουθεί την μορφή του δικτύου, αλλά τείνει συνεχώς να απομακρύνεται από την πορεία της<br />
λύσης.<br />
Ένα δεύτερο πρόβλημα, το οποίο επηρεάζει σημαντικά τις παραγόμενες Προτάσεις Σαξιδίου, είναι η<br />
αναζήτησή τους με βάση αυστηρούς χρόνους διέλευσης των ΜΜΜ από τις στάσεις. Δεν είναι μόνο η<br />
αναζήτηση αυτή καθαυτή που γίνεται έτσι, αλλά ακόμη και η δημιουργία του Γράφου.<br />
ε πολλές πόλεις ανά τον κόσμο, τα ΜΜΜ έχουν ακριβείς χρόνους διέλευσης από τις στάσεις. Έτσι<br />
π.χ., έχει νόημα η αναζήτηση συγκεκριμένων δρομολογίων, με χρήση των οποίων ελαχιστοποιείται ο<br />
χρόνος ταξιδίου, λαμβάνοντας υπόψη συγκεκριμένους χρόνους διαδρομής, αλλά και αναμονής στις<br />
στάσεις.<br />
την Αθήνα όμως, το δίκτυο των ΜΜΜ δεν βασίζεται σε συγκεκριμένα δρομολόγια και Γραμμές,<br />
αλλά σε άξονες ΜΜΜ και συχνότητες δρομολογίων. Δηλαδή, υπάρχουν πάρα πολλές Γραμμές που<br />
κινούνται κατά μήκος μιας διαδρομής, και κάποιος μπορεί να χρησιμοποιήσει οποιαδήποτε από<br />
αυτές για την μετακίνησή του στο κοινό τμήμα. Ο χρόνος διαδρομής είναι πρακτικά ίδιος για όλες<br />
αυτές τις Γραμμές. ε σχέση με τις Γραμμές ενός άλλου εναλλακτικού άξονα, ο επιβάτης θα επιλέξει<br />
με βάση τον καθαρό χρόνο αναμονής αλλά και τον χρόνο αναμονής στη στάση, ο οποίος εξαρτάται<br />
απο τις συχνότητες διέλευσης. Ο επιβάτης δεν γνωρίζει και δεν δεν ενδιαφέρεται δηλαδή για τους<br />
ακριβείς χρόνους διέλευσης, οι οποίοι σχεδόν σε όλες τις περιπτώσεις δεν είναι ούτως ή άλλως<br />
προκαθορισμένοι.<br />
Ο Open Trip Planner, ακόμη και στις περιπτώσεις που δεν δίνονται συγκεκριμένα δρομολόγια ως<br />
δεδομένα, αλλά περίοδοι δρομολογίων, δημιουργεί στην πραγματικότητα βοηθητικά δρομολόγια<br />
ξεκινώντας από την χρονική στιγμή της αφετηρίας του πρώτου δρομολογίου, κι επαναλαμβάνοντάς<br />
αυτό ανά τον χρόνο περιόδου.<br />
234
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Σο αποτέλεσμα είναι να προκρίνονται σε πολλές περιπτώσεις Προτάσεις απλά και μόνο επειδή<br />
θεωρητικά ο συνδυασμός των χρονικών στιγμών διελεύσεων παρέχουν γρηγορότερη άφιξη στον<br />
προορισμό, εις βάρος Προτάσεων που είναι πιο αξιόπιστες για την γρηγορότερη άφιξη. Επίσης, για<br />
τον ίδιο λόγο, παρατηρείται το φαινόμενο να υπάρχουν μετεπιβιβάσεις στις Προτάσεις εκεί που με<br />
βάση την εμπειρία δεν έχουν μεγάλο νόημα. πως ειπώθηκε, κατά μήκος μίας κοινής διαδρομής τα<br />
οχήματα όλων των Γραμμών κινούνται κατά κανόνα με την ίδια μέση ταχύτητα. ε συνδυασμό όμως<br />
με το ότι οι χρόνοι μεταξύ των στάσεων είναι άγνωστοι και προκύπτουν με παρεμβολή στον συνολικό<br />
χρόνου ταξιδίου του δρομολογίου, το routing engine, εξετάζοντας κάθε Γραμμή ξεχωριστά κι όχι<br />
όλες μαζί σαν ομάδα κατά το κοινό τμήμα, εκτιμά ότι η μετεπιβίβαση σε μία (εικονικά) ταχύτερη<br />
Γραμμή θα βελτιώσει τον συνολικό χρόνο της Πρότασης. Ακόμη και με μεγάλη αύξηση της ποινής<br />
που επιβάλλεται κατά το routing στην μετεπιβίβαση, είναι τελικά δυνατόν αυτή να προτείνεται, αν οι<br />
χρόνοι διέλευσης από μία κοινή στάση δύο Γραμμών είναι πολύ κοντά, οπότε και θεωρείται η<br />
δημιουργούμενη καθυστέρηση ότι είναι πολύ μικρότερη του κέρδους που προκύπτει από την<br />
αυξημένη ταχύτητα.<br />
υχνότερη είναι η εμφάνιση του προβλήματος στους άξονες που χρησιμοποιούνται από Γραμμές<br />
διαφορετικού συνολικά χαρακτήρα. Π.χ. αν σε ένα άξονα υπάρχει μία Γραμμή η οποία κατευθύνεται<br />
προς το Κέντρο, αλλά η αφετηρία της είναι αρκετά εκτός της πόλης (π.χ. Ιερά Οδός κι Ελευσίνα),<br />
τότε αυτή ευνοείται έναντι των υπολοίπων, καθώς μεταξύ ενός κοινού ζεύγους στάσεων παρουσιάζει<br />
τον μικρότερο χρόνο διαδρομής. Αυτό όμως δεν ανταποκρίνεται στην πραγματικότητα, αφού επί της<br />
ουσίας είναι η λανθασμένη μεταφορά στο πυκνό αστικό τμήμα της μεγαλύτερης ταχύτητας που έχει<br />
Γράμμη στο πιο αραιό αστικό τμήμα (π.χ. από την κίνησή της κατά μήκος της Λ. Αθηνών) λόγω της<br />
παρεμβολής με βάση την όλη διαδρομή.<br />
τα πλαίσια της εκπόνησης εξετάστηκαν διάφορες εναλλακτικές λύσεις, όπως π.χ. η δημιουργία<br />
εικονικών δρομολογίων που να αφορούν τα κοινά τμήματα Γραμμών. ε όλες τις περιπτώσεις αυτές<br />
όμως υπήρχε σημαντική πολυπλοκότητα με προφανή μη ικανοποιητικά αποτελέσματα, αφού π.χ.<br />
εμφανίζονταν πολλές μετεπιβιβάσεις, οι οποίες μπορούσαν να περιοριστούν μόνο μέσω πολύπλοκων<br />
διαδικασιών.<br />
Αυτό που προτείνεται είναι η ανάπτυξη ενός καινούριου αλγόριθμου, ο οποίος θα αντιμετωπίζει<br />
αποτελεσματικά περιτπώσεις όπως αυτές της Αθήνας. Κατά την εκπόνηση της Εργασίας έγινε από<br />
περιέργεια επιφανειακή διερεύνηση ενός τέτοιου αλγόριθμου, χρησιμοποιώντας Visual Basic.<br />
Σα κύρια χαρακτηριστικά του προτεινόμενου αλγόριθμου είναι συνοπτικά τα εξής:<br />
Βελτιστοποίηση όχι με βάση μόνο τον χρόνο διαδρομής ή/και τον αριθμό των<br />
μετεπιβιβάσεων, αλλά με βάση μία άλλη τιμή, στην συνάρτηση της οποίας θα<br />
εμπλέκεται ως μία μεταβλητή ο χρόνος, ενώ άλλες μεταβλητές μπορούν να είναι<br />
235
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
π.χ. η ποιότητα και ευκολία της μετακίνησης (σαφώς μεγαλύτερη στο metro από<br />
ότι στα λεωφορεία), η αξιοπιστία, το κόστος, κτλ.<br />
Διαδιακασία εύρεσης με αναζήτηση 2 κατευθύνσεων, με βάση τις συνδέσεις. Η<br />
αναζήτηση μπορεί να γίνεται σε στάδια, με το πρώτο στάδιο να έχει έναν<br />
απλοποιημένο Γράφο π.χ., στον οποίο να υπάρχουν μόνο οι στάσεις που αποτελούν<br />
συνδέσεις, δηλαδή που είναι εφικτές οι μετεπιβιβάσεις.<br />
Ανάμεσα σε 2 κόμβους/στάσεις να αποδίδεται η τιμή βελτιστοποίησης που<br />
αναφέρθηκε προηγουμένως, και η οποία δεν αφορά μόνο τον χρόνο διαδρομής. Η<br />
τιμή αυτή για τις ίδιες δύο στάσεις δεν πρέπει να είναι μία ανά Γραμμή, αλλά μία<br />
ανά ομάδα Γραμμών που εμφανίζουν κοινά χαρακτηριστικά.<br />
την τιμή αυτή για την συγκεκριμένη δυάδα στάσεων θα πρέπει να περιέχεται και ο<br />
εκτιμώμενος χρόνος αναμονής με βάση την περίοδο διέλευσης των ΜΜΜ.<br />
Η αναζήτηση θα πρέπει να κατευθύνεται ευρετικά προς τις ακμές που<br />
παρουσιάζουν τις καλύτερες τιμές. Με αυτόν τον τρόπο μπορεί να επιτευχθεί<br />
σημαντική μείωση του χρόνου αναζήτησης, αλλά και να επιτευχθεί η επιλογή<br />
πραγματικά πολύ καλών λύσεων. Οι ακμές με τις καλύτερες τιμές θα είναι<br />
προφανώς αυτές που παρουσιάζουν την μεγαλύτερη κίνηση συχνών κι αξιόπιστων<br />
Γραμμών.<br />
Για την μείωση του συνολικού χρόνου αναζήτησης, θα μπορούσαν να<br />
προδημιουργούνται τα στοιχεία που αφορούν συγκεκριμένες χρονικές περιόδους,<br />
και για συγκεκριμένο χρονικό ορίζοντα. Π.χ. θα μπορούσαν να παράγονται<br />
αυτόματα στο background του server τα στοιχεία που αφορού δίωρες περιόδους<br />
για τις επόμενες 2 ημέρες. Κι αυτό γιατί, σπάνια ένα αστικό ταξίδι ξεπερνά τις 2<br />
ώρες σε διάρκεια, κι επίσης σπάνια κάποιος κάνει αναζήτηση για το πως θα<br />
πραγματοποιήσςι μία αστική μετακίνηση πολλές ημέρες πριν.<br />
Θα μπορούσαν να αξιοποιούνται προηγούμενες αναζητήσεις, ώστε να μειωθεί ο<br />
χρόνος και το υπολογιστικό κόστος. Θα μπορούσε δηλαδή να γίνεται χρήση των<br />
αποτελεσμάτων από αναζητήσεις που έχουν γίνει στο παρελθόν κι αφορούν<br />
παραπλήσιους χρόνους και προελεύσεις-προορισμούς.<br />
Σα αποτελέσματα από την επιφανειακή ερευνητική διερεύνηση ήταν αρκετά ενθαρρυντικά, όμως<br />
πρέπει να αντιμετωπιστούν διεξοδικά πάρα πολλά θέματα, κυρίως σε ότι έχει να κάνει με τον<br />
236
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
περιορισμό του απαιτούμενου χρόνου αναζήτησης. Κάτι τέτοιο ήταν αρκετά πέρα από το<br />
αντικείμενο της παρούσας Εργασίας, αφού στην ουσία το θέμα θα μπορούσε κάλλιστα να<br />
αποτελέσει αντικείμενο έρευνας αφιερωμένης αποκλειστικά σε αυτό. Η παρούσα απλά μπορεί να το<br />
αναδείξει.<br />
Άλλωστε, ακόμη κι αν ήταν εφικτό να χρησιμοποιηθεί ένας τέτοιος αλγόριθμος στην Εφαρμογή της<br />
παρούσας Εργασίας, αυτό θα παρουσίαζε το αρνητικό τού να μην μπορεί να χρησιμοποιηθεί η<br />
Εφαρμογή πρακτικά σε άλλες πόλεις, κάτι το οποίο τώρα είναι εφικτό. Έτσι, μπορεί η Εφαρμογή να<br />
τροποποιηθεί εύκολα και να γίνει χρήσιμη σε μία πόλη που να δέχεται αρκετούς επισκέπτες, και στην<br />
οποία τα ΜΜΜ λειτουργούν με βάση αυστηρούς χρόνους διέλευσης, που είναι ο κανόνας. Επίσης, με<br />
μικρές τροποποιήσεις η Εφαρμογή θα μπορούσε να χρησιμοποιηθεί κατά τον υπάρχοντα τρόπο<br />
λειτουργίας και σε αρκετά διαφορετικές περιπτώσεις intermodal routing, όπως π.χ. για υπεραστικές<br />
λεωφορειακές και σιδηροδρομικές μεταφορές, ακτοπλοϊκές μετακινήσεις, κτλ.., καθώς φυσικά και<br />
συνδυασμών τους.<br />
8.4 Βελτιώσεις – Μελλοντικές Επεκτάσεις.<br />
Οι βελτιώσεις που μπορούν να γίνουν, πέρα από τους αλγόριθμους και τα χρησιμοποιούμενα<br />
δεδομένα, μπορούν να διακριθούν στις εξής κατηγορίες:<br />
ε αυτές που δεν είναι αντιληπτές από τον χρήστη, ούτε έχουν άμεση επίδραση<br />
στην λειτουργία της Εφαρμογής. Μία τέτοια βελτίωση είναι π.χ. η καλύτερη<br />
οργάνωση του κώδικα, η συμπερίληψη σε αυτόν πληρέστερων και καλύτερων<br />
σημειώσεων, η καλύτερη εννοιολογική προσέγγιση, κτλ..<br />
ε αυτές που δεν είναι άμεσα αντιληπτές από τον χρήστη, όμως επηρεάζουν την<br />
λειτουργία της Εφαρμογής. Για παράδειγμα, μπορεί σε κάποια σημεία να<br />
βελτιστοποιηθεί ο κώδικας ώστε να είναι περισσότερο αξιόπιστη η λειτουργία (όπως<br />
πληρέστερο error handling και validation), κάποια λειτουργία να προσεγγιστεί<br />
συνολικά αποδοτικότερα, ή να αυξηθεί η ασφάλεια. Σα περισσότερα τέτοια θέματα<br />
αφορούν το routing engine, το οποίο βέβαια συνεχώς εξελλίσεται. Θα μπορούσαν<br />
πάντως να πάψουν τελείως κάποιες λειτουργίες που δεν γίνονται σε αυτό αλλά με<br />
μετεπεξεργασία στην Client εφαρμογή, όπως επίσης να μειωθεί το μέγεθος του<br />
response, αφαιρώντας στοιχεία που δεν χρησιμοποιούνται. Επίσης, ένα άλλο<br />
παράδειγμα είναι το garbage collection, όπως είναι το να περιορίζονται οι event<br />
listeners που απομένουν χωρίς αντικείμενο. λα αυτά τα θέματα όμως, συνήθως<br />
δεν έχουν μεγάλη πρακτική σημασία σε μία τέτοια εφαρμογή, καθώς αυτή<br />
εκτελείται μία ή λίγες μόνο συνεχόμενες φορές,<br />
237
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ε αυτές που γίνονται άμεσα αντιληπτές από τον χρήστη, όπως είναι π.χ. η<br />
λειτουργική κι αισθητική βελτίωση του περιβάλλοντος χρήσης. Οι βελτιώσεις αυτές<br />
έχουν νόημα όμως να γίνουν ανθρωποκεντρικά, με βάση τις παρατηρήσεις και<br />
προτάσεις δηλαδή των ίδιων των χρηστών, ή με τη βοήθεια άλλων, πιο κατάλληλων<br />
σχετικά, όπως π.χ. με τη βοήθεια γραφιστών. Ακόμη, στην κατηγορία αυτή, όπως<br />
και στην προηγούμενη ανάλογα, μπορεί να ενταχθεί το θέμα της προσεχτικότερης<br />
τήρησης των Copyrights.<br />
τις μελλοντικές επεκτάσεις θα μπορούσε προφανώς να υπάρχει η Client Εφαρμογή σε περισσότερες<br />
γλώσσες, ακόμη και στα Ελληνικά, αφού δεν είναι απαραίτητο ο επισκέπτης της Αθήνας να είναι<br />
αλλοδαπός.<br />
Κάτι που μπορεί να γίνει όταν η Εφαρμογή σε πραγματική λειτουργία έχει πολλούς χρήστες, είναι η<br />
συγκέντρωση στατιστικών στοιχείων, όπως π.χ. για το τι επιλέγεται συνήθως ως προέλευση και<br />
προορισμός, τι αναζητάται ως σημείο ενδιαφέροντος, τι γίνεται geocoding και με ποιόν τρόπο<br />
γράφεται, κτλ.. Η συγκέντρωση αυτών των στοιχείων θα διευκόλυνε π.χ. στο να γίνονται geocoding<br />
διευθύνσεις που αναζητούνται συχνά με κάποιον λανθασμένο τρόπο γραφής, ή δεν υπάρχουν με<br />
αυτόν τον τρόπο στην υπηρεσία geocoding της Google.<br />
Ακόμη, θα μπορούσε και πρέπει να γίνει καλύτερη προσαρμογή για λειτουργία σε συσκευές όπως<br />
είναι τα κινητά τηλέφωνα. Η Εφαρμογή αφορά χρήστες που θέλουν να μεταινηθούν ή ήδη<br />
μετακινούνται, και συνεπώς είναι προφανής η σημαντικότητα τού να μπορεί να την χρησιμοποιεί<br />
κανείς εν κινήσει.<br />
Σο Flex δίνει την δυνατότητα η Client Εφαρμογή να μπορεί να χρησιμοποιηθεί σε ένα μεγάλο πλήθος<br />
διαφορετικών συσκευών και λειτουργικών συστημάτων. λες οι Flex εφαρμογές μπορούν να<br />
εκτελεστούν είτε μέσω του Flash plugin των web browsers, είτε μέσω του Adobe Air που δίνεται<br />
δωρεάν. Θεωρητικά η Εφαρμογή μπορεί να τρέξει αυτή τη στιγμή σε όσες συσκευές παρέχουν Flash<br />
υποστήριξη, όμως το κάτα πόσο αυτό ανταποκρίνεται στην πραγματικότητα είναι άγνωστο. Κι αυτό<br />
γιατί οι περισσότερες τέτοιες συσκευές δεν παρέχουν υποστήριξη τελικά για τον Flash Player 10,<br />
αλλά για παλιότερη έκδοση με περιορισμένες δυνατότητες (Lite).<br />
Κατά την υλοποίηση της Εφαρμογής κρίθηκε σκόπιμη η αναμονή μέχρι να υπάρξουν πολύ σύντομα<br />
εξελίξεις. Ήδη η Adobe έχει ανακοινώσει την έλευση μίας νέας έκδοσης του Flash SDK (‗Hero‘), όπως<br />
και του Flash Builder (‗Burrito‘), τα οποία είναι προσανατολισμένα στις φορητές συσκευές, δίνοντας<br />
μάλιστα την δυνατότητα αξιοποίησης λειτουργιών όπως το ενσωματωμένο GPS.<br />
238
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Είναι προφανής η αύξηση της χρηστικότητας της Εφαρμογής με αξιοποίηση του GPS, καθώς αυτός<br />
που κινείται θα μπορεί να κάνει αναζητήσεις Προτάσεων Σαξιδίου με βάση την θέση που βρίσκεται,<br />
ή να λαμβάνει οδηγίες κατά την πραγματοποίηση ενός ταξιδίου όπως του έχει προταθεί.<br />
Αρκετές εταιρείες κινητών τηλεφώνων έχουν ανακοινώσει συσκευές με υποστήριξη του Flash Player<br />
10, οι οποίες αναμένονται σύντομα. Οι περισσότερες από αυτές θα χρησιμοποιούν το <strong>An</strong>droid ως<br />
λειτουργικό σύστημα. Επίσης, σταδιακά γίνεται ολοένα και φτηνότερη η πρόσβαση Internet μέσω<br />
κινητής τηλεφωνίας, γεγονός που συμβάλλει στην ανάπτυξη σχετικών εφαρμογών. Ακόμη το κόστος<br />
είναι ιδιαίτερα υψηλό, οπότε κι αν τεχνολογικά είναι κάτι εφικτό, αυτό μπορεί να μην έχει προς το<br />
παρόν απήχηση, για λόγους καθαρά οικονομικούς. ύντομα όμως αναμένεται αυτό να μην υπάρχει<br />
ως πρόβλημα.<br />
Ιδιαίτερα σημαντική επέκταση της Εφαρμογής, θα την άλλαζε ριζικά, θα ήταν η αξιοποίηση live<br />
δεδομένων για την κίνηση των οχημάτων ΜΜΜ. Με αυτό τον τρόπο θα δινόταν η δυνατότητα<br />
δημιουργίας Προτάσεων Διαδρομής με βάση την πραγματική κατάσταση που θα επικρατούσε στο<br />
δίκτυο σε μία δεδομένη στιγμή. Γνωρίζοντας τις θέσεις και τις ταχύτητες των οχημάτων σε κάθε<br />
Γραμμή, ο χρήστης θα μπορούσε να λαμβάνει προτάσεις στο κινητό τηλέφωνο για το ταξίδι του, οι<br />
οποίες να είναι βελτιστοποιημένες ανάλογα με την επικρατούσα κατάσταση την στιγμή που αυτός<br />
είναι εν κινήσει, όπως επίσης να μπορεί να έχει ακριβή πληροφόρηση για την αναμονή στην στάση<br />
κτλ..<br />
Ακόμη όμως και οι Προτάσεις Σαξιδίων που δεν θα γίνονταν από κάποιον που θα ήθελε να<br />
μετακινηθεί άμεσα, αλλά από κάποιον που από το σπίτι του θα σχεδίαζε ένα ταξίδι για να το<br />
πραγματοποιήσει κάποια από τις προσεχείς ημέρες, αυτές θα ήταν αρκετά πιο καλές με αξιοποίηση<br />
των συλλεγόμενων στοιχείων. Κι αυτό γιατί θα μπορούσε να γίνεται συνεχώς επανεκτίμηση των<br />
χρόνων διαδρομής, για διάφορες χρονικές περιόδους της ημέρας.<br />
Δυστυχώς όμως, ο ΟΑΑ δεν διαθέτει κάποιο ανάλογο πλήρες σύστημα τηλεματικής, παρά το μικρό<br />
σχετικά απαιτούμενο κόστος.<br />
239
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
240
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ΑΝΑΥΟΡΕ<br />
I
[01] Wikipedia.<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Διάφορα Άρθρα, η πρόσβαση στα οποία μπορεί να γίνει με λέξεις αναζήτησης.<br />
http://www.wikipedia.org<br />
[02] Amadeus IT Group SA.<br />
Προϊόντα σχετικά με Journey Planning αεροπορικών ταξιδίων.<br />
http://www.amadeus.net<br />
[03] Sabre Airline Solutions.<br />
Προϊόντα σχετικά με Journey Planning αεροπορικών ταξιδίων.<br />
http://www.sabreairlinesolutions.com/home/products_services/airline_reservations<br />
[04] Travelport Galileo.<br />
Προϊόντα σχετικά με Journey Planning αεροπορικών ταξιδίων.<br />
http://www.travelport.com/lob/gds/galileo.aspx<br />
[05] Transport for London.<br />
Υορέας για τις Αστικές υγκοινωνίες στο London.<br />
http://www.tfl.gov.uk<br />
[06] EU-Spirit.<br />
Βασισμένη στο internet υπηρεσία πληροφόρησης για χρήστες δημόσιας συγκοινωνίας.<br />
http://www.eu-spirit.com<br />
[07] JourneyWeb.<br />
Πρωτόκολο διασύνδεσης για Journey Planners.<br />
http://www.journeyweb.org<br />
[08] Xephos.<br />
<strong>Intermodal</strong> Journey Planner για το Ηνωμένο Βασίλειο, με εφαρμογές σε διάφορα sites.<br />
http://www.internet.xephos.com<br />
[09] EFA (Elektronische Fahrplanauskunft).<br />
ύστημα IJP της εταιρείας Mentz Datenverarbeitung GmbH<br />
http://www.mentzdv.de/englisch/products/efa<br />
[10] Google Transit.<br />
[11] RATP.<br />
IJP της εταιρείας Google.<br />
http://www.google.com/transit<br />
Ο φορέας Αστικών υγκοινωνιών για την Ευρύτερη Περιοχή του Paris.<br />
http://www.ratp.fr<br />
II
[12] ΟΑΑ.<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Οργανισμός Αστικών υγκοινωνιών Αθήνας.<br />
http://www.oasa.gr<br />
[13] Πύλη Δρομολόγησης της Περιφέρειας Αττικής.<br />
Πύλη Δρομολόγησης της Περιφέρειας Αττικής.<br />
http://www.atticaroute.gr<br />
[14] youDrive.<br />
[15] TSP.<br />
IJP για την περιοχή της Αθήνας.<br />
http://www.youdrive.gr<br />
Site σχετικά με το πρόβλημα του Περιπλανώμενου Πωλητή.<br />
http://www.tsp.gatech.edu<br />
[16] Oberlin College / Department of Mathematics / Robert Bosch.<br />
OPT και TSP δημιουργία έργων ζωγραφικής.<br />
http://www.oberlin.edu/math/faculty/bosch.html<br />
[17] Contraction Hierarchies: Faster and Simpler Hierarchical Routing in Road Networks.<br />
Robert Geisberger, Peter Sanders, Domminik Schultes, Daniel Delling (2008).<br />
http://algo2.iti.kit.edu/download/contract.pdf<br />
[18] Java Computer Programming Language.<br />
Η γλώσσα προγραμματισμού Java.<br />
http://www.java.com<br />
[19] Eclipse.<br />
Περιβάλλον ανάπτυξης εφαρμογών Eclipse.<br />
http://www.eclipse.org<br />
[20] Subversion.<br />
ύστημα διαχείρισης εκδόσεων λογισμικού.<br />
http://subversion.apache.org<br />
[21] Apache Maven.<br />
Εργαλείο Διαχείρισης Projects λογισμικού.<br />
http://maven.apache.org<br />
[22] Apache Tomcat.<br />
Λογισμικό ανοικτού κώδικα για τις τεχνολογίες Java Servlet και JavaServer Pages.<br />
http://tomcat.apache.org<br />
III
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
[23] Apache HTTP Server.<br />
Project ανοικτού κώδικα για HTTP Server.<br />
http://httpd.apache.org<br />
[24] Adobe Flex.<br />
Σο πλαίσιο ανοικτού κώδικα της Adobe για την ανάπτυξη web εφαρμογών.<br />
http://www.adobe.com/products/flex<br />
[25] Adobe Flash Builder.<br />
Λογισμικό της Adobe για την ανάπτυξη Cross-Platform internet εφαρμογών με βάση το Flex.<br />
http://www.adobe.com/products/flashbuilder<br />
[26] Opentripplanner.org.<br />
Σο site για developers τού Open Trip Planner.<br />
http://www.opentripplanner.org<br />
[27] Opentripplanner.com.<br />
Σο site για την εμπορική προώθηση τού Open Trip Planner.<br />
http://www.opentripplanner.com<br />
[28] OpenPlans.<br />
Ο Οργανισμός OpenPlans εστιάζει στην ανοικτή διακυβέρνηση και αναπτύσει λογισμικό<br />
ανοικτού κώδικα. Ένας από τους κύριους συμμετέχοντες στον Open Trip Planner.<br />
http://www.openplans.org<br />
[29] OneBusAway.<br />
Project που παρέχει υποστήριξη στην βελτίωση της χρηστικότητας των ΜΜΜ. Ένας από<br />
τους κύριους συμμετέχοντες στον Open Trip Planner.<br />
http://www.onebusaway.org<br />
[30] FivePoints.<br />
Project το οποίο αφορά την ανάπτυξη λογισμικού ανοικτού κώδικα, με εστίαση σε εργαλεία<br />
για μετακίνηση πεζή, με ποδήλατο, και με ΜΜΜ. Ένας από τους κύριους συμμετέχοντες<br />
στον Open Trip Planner.<br />
http://www.fpdev.org<br />
[31] Graphserver.<br />
Project το οποίο αφορά την ανάπτυξη λογισμικού ανοικτού κώδικα για multi modal trip<br />
planning. Ένας από τους κύριους συμμετέχοντες στον Open Trip Planner.<br />
http://bmander.github.com/graphserver<br />
[32] byCycle.<br />
Διαδικτυακή εφαρμογή για τον σχεδιασμό διαδρομών με ποδήλατο στο Portland, στο<br />
Milwaukee και στο Pittsburgh. Ένας από τους κύριους συμμετέχοντες στον Open Trip<br />
Planner.<br />
IV
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
http://bicycle.org<br />
[33] General Transit Feed Specification.<br />
Η προδιαγραφή της Google για τα feeds με τα στοιχεία λειτουργίας των συγκοινωνιακών<br />
δικτύων.<br />
http://code.google.com/transit/spec/transit_feed_specification.html<br />
[34] A Data Model for Trip Planning in Multimodal Transportation Systems.<br />
[35]<br />
Joel Booth, Prasad Sistla, Ouri Wolfson, Isabel F. Cruz<br />
http://www.cs.uic.edu/~ifc/webpapers/edbt2009-submission.pdf<br />
χεδιασμός Πληροφοριακού υστήματος Ενημέρωσης Επιβατικού Κοινού Αστικών<br />
υγκοινωνιών με έμφαση στις Αστικές υγκοινωνίες της Αττικής.<br />
Διπλωματική Εργασία, Αλιφέρη Λουκία, Πανεπιστήμιο Αιγαίου, Σμήμα Μηχανικών χεδίασης<br />
Προϊόντων και υστημάτων (2009).<br />
http://www.syros.aegean.gr/de/dpsd03001.pdf<br />
[36] Αλγόριθμοι Δρομολόγησης Με Μέσα Μαζικής Μεταφοράς το Δίκτυο Σων Αθηνών.<br />
Διπλωματική Εργασία, Κουτσογιάννη Μαριάννα, Εθνικό Μετσόβιο Πολυτεχνείο, χολή<br />
Ηλεκτρολόγων Μηχανικών & Μηχανικών Η/Τ (2006).<br />
www.dblab.ntua.gr/pubs/uploads/DIPL-2006-2.doc<br />
[37] Σεχνολογίες Δημοσιοποίησης Φαρτογραφικού Περιεχομένου τον Παγκόσμιο Ιστό.<br />
τεφανάκης Εμμανουήλ (2009).<br />
Εκδόσεις Νέων Σεχνολογιών, Έκδοση 1η, Αθήνα 2009, ISBN 978-960-6759-30-7.<br />
[38] Solutio problematis ad geometriam situs pertinentis.<br />
Euler Leonard (1741).<br />
Commentarii academiae scientiarum Petropolitanae.<br />
http://www.math.dartmouth.edu/~euler/docs/originals/E053.pdf<br />
[39] A note on two problems in connexion with graphs.<br />
Dijkstra Edsger Wybe (1959).<br />
Numerische Mathematik 1: 269–271.<br />
http://www-m3.ma.tum.de/foswiki/pub/MN0506/WebHome/dijkstra.pdf<br />
[40] Ueber eine Fläche der vierten Ordnung.<br />
Hierholzer Carl (1871).<br />
Mathematische <strong>An</strong>nalen IV.<br />
http://www-m3.ma.tum.de/foswiki/pub/MN0506/WebHome/dijkstra.pdf<br />
[41] A Formal Basis for the Heuristic Determination of Minimum Cost Paths.<br />
Hart, P. E.; Nilsson, N. J.; Raphael, B. (1968).<br />
IEEE Transactions on Systems Science and Cybernetics SSC4 4 (2): 100–107.<br />
doi:10.1109/TSSC.1968.300136<br />
V
[42] AlivePDF.<br />
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Βιβλιοθήκη ανοικτού κώδικα για την εκτύπωση σε PDF αρχεία.<br />
http://www.alivepdf.org<br />
VI
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
ΚΑΣΑΛΟΓΟ ΣΟΙΦΕΙΩΝ<br />
VII
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Πίνακας 1: Εκτιμήσεις απαιτήσεων του OTP σε υπολογιστικό εξοπλισμό. ......................................... 127<br />
Διάγραμμα 1: Λειτουργική Ροή της Εφαρμογής Φρήστη. .................................................................... 63<br />
Διάγραμμα 2: Σα διάφορα τμήματα που αποτελούν την υπηρεσία, και οι αλληλοσυσχετίσεις τους. . 68<br />
Διάγραμμα 3: Σο Διάγραμμα Οντοτήτων-υσχετίσων (E-R) που αντιστοιχεί στο GTFS (Με γαλάζιο<br />
χρώμα ή παχείς χαρακτήρες τα απαραίτητα στοιχεία). .................................................................... 105<br />
Διάγραμμα 4: Απεικόνιση της Αρχιτεκτονικής Client-Server, με έναν ή περισσότερους Servers, οι<br />
οποίοι ενδέχεται να επικοινωνούν άμεσα μεταξύ τους. ..................................................................... 134<br />
Διάγραμμα 5: Λειτουργική Ροή της Εφαρμογής Φρήστη. .................................................................. 137<br />
Διάγραμμα 6: Λειτουργίες κατά την παραμετροποίηση. ................................................................... 161<br />
Διάγραμμα 7: Εύρεση προτάσεων ταξιδίου, μετεπεξεργασία, εμπλουτισμός, κι άλλες ενέργειες. ... 162<br />
Διάγραμμα 8: Παρούσιαση Προτάσεων, διαχείρισή τους, και επιλογή συνέχειας. ............................ 162<br />
Διάγραμμα 9: Απεικόνιση τού ποιές λειτουργίες εκτελούνται σε κάθε τμήμα του υστήματος. ....... 163<br />
Διάγραμμα 10: Οι εναλλακτικές συνδέσεις μεταξύ δύο στάσεων βρίσκονται μέσω PHP αρχείου που<br />
κάνει SQL ερώτημα σε πίνακα της PostgreSQL. ................................................................................ 182<br />
Διάγραμμα 11: χηματική παράσταση των διαφόρων τμημάτων του συστήματος της Εφαρμογής και<br />
οι συνδέσεις μεταξύ τους. ................................................................................................................... 188<br />
Διάγραμμα 12: Σα διάφορα αντικείμενα που αποτελούν την βασική οθόνη της Εφαρμογής, σε<br />
σχηματική παράσταση. ....................................................................................................................... 196<br />
Διάγραμμα 13: Σα διάφορα αντικείμενα που αποτελούν την οθόνη της Εφαρμογής μετά την θέση<br />
του ερωτήματος, σε σχηματική παράσταση. Σο γαλάζιο παραλληλόγραμμο αντιστοιχεί στο panel<br />
εμφάνισης των Προτάσεων. ................................................................................................................ 208<br />
Διάγραμμα 14: χηματική Απεικόνιση της Διαδικασίας Θέσης Ερωτημάτων, Λήψης Απαντήσεων, και<br />
διαχείρισής τους, από την Client Εφαρμογή. ..................................................................................... 212<br />
VIII
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 1: Επίλυση ενός γράφου με τον αλγόριθμο του Dijkstra, με χρήση λογισμικού που οπτικοποιεί<br />
την διαδικασία επίλυσης κατά βήμα. Πηγή: http://www.uweschmidt.org. .......................................... 2<br />
Εικόνα 2: Ο πρώτος Διαγραμματικός Φάρτης του Harry Beck (1933) για το Metro του London. ....... 8<br />
Εικόνα 3: Οι διάφορες επιλογές στον χεδιαστή Σαξιδιών του TfL. ..................................................... 11<br />
Εικόνα 4: υνοπτικά οι διάφορες προτάσεις ταξιδίου από μία αναζήτηση στον Journey Planner του<br />
Tfl. .......................................................................................................................................................... 11<br />
Εικόνα 5: Εμφάνιση λεπτομερειών για μία πρόταση ταξιδίων του Journey Planner του Tfl. .............. 12<br />
Εικόνα 6: Ο χεδιαστής Σαξιδιών για τηλεφωνικά κέντρα του EFA. .................................................... 13<br />
Εικόνα 7: Σο περιβάλλον του Google Transit με αποτελέσματα από αναζήτηση για αστική μετακίνηση<br />
στο Amsterdam. τα αριστερά της εικόνας παρουσιάζονται 4 διαφορετικές προτάσεις, κι από κάτω,<br />
λεπτομέρειες για την επιλεγμένη από αυτές. ....................................................................................... 15<br />
Εικόνα 8: Φαρακτηριστική εικόνα από το Google Transit σε οθόνη κινητού. ..................................... 16<br />
Εικόνα 9: Σο περιβάλλον χρήσης για τον trip planner της RATP με βάση το κείμενο. ........................ 18<br />
Εικόνα 10: Αποτελέσματα του trip planner της RATP. ........................................................................ 19<br />
Εικόνα 11: Ο διαδραστικός χάρτης/trip planner της RATP. ................................................................ 20<br />
Εικόνα 12: Η εφαρμογή RATP Premium σε iPhone. ............................................................................ 21<br />
Εικόνα 13: Εισαγωγή/αναζήτηση Αφετηρίας-Σερματισμού στην εφαρμογή ΑΔΑΜΑ. ....................... 22<br />
Εικόνα 14: Φαρακτηριστική εικόνα προτεινόμενων διαδρομών από την εφαρμογή ΑΔΑΜΑ. .......... 24<br />
Εικόνα 15: Φαρακτηριστικό στιγμιότυπο από την Πύλη Δρομολόγησης της Περιφέρειας Αττικής. .... 26<br />
Εικόνα 16: Παράδειγμα εμφάνισης ημείων Ενδιαφέροντος με ίδια ονομασία, χωρίς δυνατότητα<br />
άμεσης αναγνώρισής τους. ................................................................................................................... 27<br />
Εικόνα 17: Φαρακτηριστικό στιγμιότυπο από την εφαρμογή YouDrive, όπου εμφανίζεται μία πρόταση<br />
ταξιδίου. ................................................................................................................................................ 29<br />
IX
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 18: Διάγραμμα ενός Γράφου. Ο Γράφος μπορεί να περιγραφεί ως V = {1, 2, 3, 4, 5, 6}, E =<br />
{{1, 2}, {1, 5}, {2, 3}, {2, 5}, {3, 4}, {4, 5}, {4, 6}}, δηλαδή από τα σύνολα των Κόμβων και των Ακμών<br />
αντίστοιχα. Σο μέγεθος του Γράφου είναι 7, κι ο Βαθμός π.χ. του Κόμβου 5 είναι 3. Οι Ακμές {4,5},<br />
{2,5}, {5,1} είναι γειτονικές. Επίσης, οι Κόμβοι 1, 2, 4 είναι γειτονικοί του 5. .................................... 36<br />
Εικόνα 19: Φάρτης του Königsberg την εποχή του Euler, με τονισμένες τις γέφυρες και τον ποταμό.<br />
............................................................................................................................................................... 38<br />
Εικόνα 20: Η αφαιρετική διαδικασία στο πρόβλημα του Euler. .......................................................... 38<br />
Εικόνα 21: Δείγμα του Πίνακα ‗Γραμμές‘ των πρωτογενών δεδομένων ΜΜΜ. .................................. 70<br />
Εικόνα 22: Δείγμα του Πίνακα ‗ΚΛΑΔΟΙ‘ των πρωτογενών δεδομένων ΜΜΜ. ................................... 72<br />
Εικόνα 23: Η κυκλική κατά όλες τις απόψεις Γραμμή ‗100‘. .............................................................. 74<br />
Εικόνα 24: Η κυκλική σε λειτουργία αλλά όχι σε γεωμετρία Γραμμή ‗910‘. ........................................ 75<br />
Εικόνα 25: Δείγμα από τον πίνακα ‗ΣΑΕΙ‘ των πρωτογενών δεδομένων ΜΜΜ. ............................ 76<br />
Εικόνα 26: Δείγμα από τον πίνακα ‗ΑΛΛΗΛΟΤΦΙΑ ΣΑΕΨΝ‘ των πρωτογενών δεδομένων ΜΜΜ. .... 77<br />
Εικόνα 27: Σο πλήρες αρχείο ‗agency.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή. ........... 80<br />
Εικόνα 28: Δείγμα από το αρχείο ‗stops.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή. ..... 82<br />
Εικόνα 29: Δείγμα από το αρχείο ‗routes.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή. .... 84<br />
Εικόνα 30: Δείγμα από το αρχείο ‗trips.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή. ....... 87<br />
Εικόνα 31: Δείγμα από το αρχείο ‗stop_times.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή.<br />
............................................................................................................................................................... 92<br />
Εικόνα 32: Σο πλήρες αρχείο ‗calendar.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή. ....... 94<br />
Εικόνα 33: To σύνολο του αρχείου ‗fare_attributes.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη<br />
μορφή. ................................................................................................................................................... 96<br />
Εικόνα 34: Σο πλήρες αρχείο ‗fare_rules.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή. .... 98<br />
Εικόνα 35: Δείγμα από το αρχείο ‗frequencies.txt‘ όπως δημιουργήθηκε, σε πινακοποιημένη μορφή.<br />
............................................................................................................................................................. 101<br />
Εικόνα 36: Απεικόνιση του κέντρου της Αθήνας με OpenStreetMap δεδομένα και Openlayers. .... 108<br />
X
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 37: (Επανάληψη) Ο Γράφος της Εφαρμογής στο Κέντρο της Αθήνας όπως απεικονίζεται στο<br />
module GUI του OTP. Οι κίτρινες γραμμές αντιστοιχούν σε δρομολόγια των ΜΜΜ, ενώ οι γαλάζιες<br />
στο οδικό δίκτυο. ................................................................................................................................. 110<br />
Εικόνα 38: Σο κέντρο της Αθήνας, όπως φαίνεται στον οδικό χάρτη του Google Maps. ................. 119<br />
Εικόνα 39: τιγμιότυπο από το Adobe Flash Builder κατά την ανάπτυξη της εφαρμογής. ............. 122<br />
Εικόνα 40: Φαρακτηριστικό στιγμιότυπο από τις επιλογές του χρήστη στο γραφικό περιβάλλον που<br />
συμπεριλαμβάνει ο OTP. ..................................................................................................................... 125<br />
Εικόνα 41: Φαρακτηριστικό στιγμιότυπο με στοιχεία καθοδήγησης από το web interface που<br />
συμπεριλαμβάνει ο OTP. ..................................................................................................................... 126<br />
Εικόνα 42: To User Interface της εφαρμογής του OpenTripPlanner στην Granada. Η οθόνη επιλογής<br />
των παραμέτρων διαδρομής. ............................................................................................................. 129<br />
Εικόνα 43: Οι επιλογές στο τυπικό UI του OTP, από την εφαρμογή στην Grenada. ......................... 129<br />
Εικόνα 44: Σο tab με την λίστα αποτελεσμάτων για την πρόταση ταξιδίου. ..................................... 130<br />
Εικόνα 45: Η οθόνη αποτελεσμάτων στο τυπικό UI του OTP, από την εφαρμογή στην Grenada. ... 130<br />
Εικόνα 46: Ο Γράφος της Εφαρμογής στο Κέντρο της Αθήνας όπως απεικονίζεται στο module GUI<br />
του OTP. Οι κίτρινες γραμμές αντιστοιχούν σε δρομολόγια των ΜΜΜ, ενώ οι γαλάζιες στο οδικό<br />
δίκτυο. ................................................................................................................................................. 132<br />
Εικόνα 47: Η αρχική εικόνα που εμφανίζεται στον Φρήστη κατά την έναρξη της Εφαρμογής. Εκτός<br />
του τίτλου, περιέχονται μηνύματα σχετικά με σημαντικά θέματα άμεσου ενδιαφέροντος, όπως π.χ.<br />
μία προγραμματισμένη απεργία. ........................................................................................................ 140<br />
Εικόνα 48: Η οθόνη για την παραμετροποίηση του Ερωτήματος, όπως αυτή πρωτοεμφανίζεται στον<br />
Φρήστη. ................................................................................................................................................ 141<br />
Εικόνα 49: Οπτικοποίηση του δικτύου Metro όταν είναι ενεργοποιημένο το σχετικό Toggle Button<br />
κάτω δεξιά στον Φάρτη. ...................................................................................................................... 142<br />
Εικόνα 50: Σα κουμπιά λειτουργιών στην αριστερή κατακόρυφη στήλη της Εφαρμογής. ............... 144<br />
Εικόνα 51: Σο modal παράθυρο About της Εφαρμογής, με βασικές πληροφορίες σχετικά με αυτήν,<br />
κι επίσης με links προς διάφορα σχετικά sites. ................................................................................. 145<br />
XI
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 52: To modal παράθυρο Contact της Εφαρμογής, από το οποίο μπορεί να ενεργοποιηθεί ο<br />
Mail Client του Φρήστη, με προσυμπληρωμένη την διεύθυνση παραλήπτη. ..................................... 146<br />
Εικόνα 53: Σο κύριο παράθυρο από όπου γίνεται η παραμετροποίηση από τον Φρήστη του<br />
ερωτήματος. ........................................................................................................................................ 147<br />
Εικόνα 54: Η λειτουργία Geocoding για την προέλευση. ................................................................... 148<br />
Εικόνα 55: Με διπλό click σε κάποιο σημείο του Φάρτη εμφανίζεται ένας Marker με ένα Info Window<br />
για την δηλωσή του σημείου ως προέλευση ή προορισμό. ................................................................. 148<br />
Εικόνα 56: Επιλογή ενός ημείου Ενδιαφέροντος ως Προέλευση ή Προορισμό, από<br />
κατηγοριοποιημένη λίστα. ................................................................................................................... 149<br />
Εικόνα 57: Επιλογή ενός Ενεργού ημείο (ταθμός Μετρό) ως προέλευση ή προορισμό. ............... 150<br />
Εικόνα 58: Σα επιλεγμένα κάθε φορά σημεία προέλευσης και προορισμού επισημαίνονται με<br />
πράσινο και κόκκινο Marker αντίστοιχα, οι οποίοι είναι draggable. ................................................. 150<br />
Εικόνα 59: Με σύρσιμο (dragging) του Marker της προέλευσης ή του προορισμού, επιλέγεται μία<br />
τοποθεσία από τον Φάρτη. Σα αντίστοιχα πεδία ενημερώνονται με τις συντεταγμένες της τοποθεσίας.<br />
............................................................................................................................................................. 151<br />
Εικόνα 60: Αντικατάσταση της εμφάνισης των συντεταγμένων μιας τοποθεσίας, έπειτα από σύρσιμο<br />
του Marker σε αυτήν, από την διεύθυνση που τους αντιστοιχεί. ...................................................... 151<br />
Εικόνα 61: Σο List Box με τις επιλογές των επιθυμητών Μέσων για την πραγματοποίηση του ταξιδίου.<br />
............................................................................................................................................................. 152<br />
Εικόνα 62: Οι επιλογές βελτιστοποίησης που παρέχονται στον Φρήστη. .......................................... 152<br />
Εικόνα 63: Οι επιλογές για την μέγιστη απόσταση σε μέτρα που επιθυμεί ο Φρήστης να διανύσει πεζή.<br />
............................................................................................................................................................. 153<br />
Εικόνα 64: Οι επιλογές για την ημερομηνία και την ώρα αναχώρησης ή άφιξης. ............................ 153<br />
Εικόνα 65: τιγμιότυπο από την οθόνη αναμονής καθόσο διαρκεί η αναζήτηση και επεξεργασία των<br />
προτάσεων ταξιδίου. ........................................................................................................................... 154<br />
Εικόνα 66: Η Client Εφαρμογή σε κατάσταση παρουσίασης και διαχείρισης των Προτάσεων<br />
Σαξιδίου. .............................................................................................................................................. 155<br />
XII
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
Εικόνα 67: Συπική Μορφή της Κατακόρυφης τήλης με τα λεκτικά αποτελέσματα, μέσα από ένα<br />
τυχαίο παράδειγμα.............................................................................................................................. 156<br />
Εικόνα 68: Παράδειγμα περιγραφής αρχικού κλάδου διαδρομής πεζή. ........................................... 157<br />
Εικόνα 69: Παράδειγμα περιγραφής κλάδου με Μέσα Μαζικής Μεταφοράς. ................................. 157<br />
Εικόνα 70: Η οπτικοποίηση της Πρότασης Σαξιδίου στον Φάρτη. ..................................................... 159<br />
Εικόνα 71: Η γενική διάταξη που πρωτοβλέπει ο Φρήστης. ............................................................... 195<br />
Εικόνα 72: Ο χρήστης έχει επιλέξει ένα σημείο εντός του Αερολιμένα ως προέλευση, το οποίο όμως<br />
δεν αντιστοιχεί στο σημείο αφίξεων, αλλά στο Parking. .................................................................... 204<br />
Εικόνα 97: Η εισαγωγική οθόνη του Tsoop! που βλέπει ο φανταστικός Φρήστης του Παραδείγματος.<br />
............................................................................................................................................................. 218<br />
Εικόνα 98: Η οθόνη για την επιλογή διαφόρων παραμέτρων του ταξιδιού. ..................................... 219<br />
Εικόνα 99: Η επιλογή του Αερολιμένα ως προέλευση από την λίστα των ημείων Ενδιαφέροντος. 220<br />
Εικόνα 100: To Geocoding της διεύθυνσης προορισμού. ................................................................. 221<br />
Εικόνα 101: Επιλογή της ημερομηνίας και της ώρας. ....................................................................... 222<br />
Εικόνα 102: Επιλογές για τα επιθυμητά μέσα πραγματοποίησης του ταξιδίου, και του τρόπου<br />
βελτιστοποίησης της αναζήτησης προτάσεων. .................................................................................. 223<br />
Εικόνα 103: Αναμονή για την αναζήτηση προτάσεων ταξιδίου. ....................................................... 224<br />
Εικόνα 104: Η οθόνη των Προτάσεων Σαξιδίου όπως πρωτοεμφανίζεται. ....................................... 225<br />
Εικόνα 105: Η οθόνη των Προτάσεων Σαξιδίου, εμφανίζοντας την δεύτερη Πρόταση. ................... 226<br />
Εικόνα 106: Zoom στην περιοχή προορισμού και στα στοιχεία της δεύτερης Πρότασης, με<br />
ενεργοποιημένη την εμφάνιση του Δικτύου metro. ........................................................................... 227<br />
XIII
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
XIV
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
XV
Διπλωματικι Εργαςία Δθμιουργία Ενόσ Σχεδιαςτι Ταξιδιϊν Με ΜΜΜ Για Τουσ Επιςκζπτεσ Τθσ Ακινασ.<br />
XVI