03.08.2013 Views

Michail Tziotis - Postgraduate Diploma Thesis - An Intermodal ...

Michail Tziotis - Postgraduate Diploma Thesis - An Intermodal ...

Michail Tziotis - Postgraduate Diploma Thesis - An Intermodal ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!