Επιλογή βέλτιστης διαδρομής χρησιμοποιώντας καταγραφή κυκλοφοριακών δεδομένων μέσω κινητών συσκευών

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Επιλογή βέλτιστης διαδρομής χρησιμοποιώντας καταγραφή κυκλοφοριακών δεδομένων μέσω κινητών συσκευών"

Transcript

1 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Επιλογή βέλτιστης διαδρομής χρησιμοποιώντας καταγραφή κυκλοφοριακών δεδομένων μέσω κινητών συσκευών Νικόλαος - Σ - Λάριος Χρήστος - Γ - Μητατάκης Επιβλέπων: Δημήτριος Γουνόπουλος, Καθηγητής ΑΘΗΝΑ ΙΟΥΛΙΟΣ 2013

2 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Επιλογή βέλτιστης διαδρομής χρησιμοποιώντας καταγραφή κυκλοφοριακών δεδομένων μέσω κινητών συσκευών Νικόλαος Σ. Λάριος Α.Μ.: Χρήστος Γ. Μητατάκης Α.Μ.: ΕΠΙΒΛΕΠΩΝ: Δημήτριος Γουνόπουλος, Καθηγητής

3 ΠΕΡΙΛΗΨΗ Η κυκλοφοριακή συμφόρηση των πόλεων σε συνδυασμό με τους σύγχρονους ρυθμούς ζωής καθιστούν αναγκαία την ύπαρξη ενός εργαλείου που θα συμβάλει στη βελτίωση των μεταφορών, παρέχοντας στους χρήστες του την δυνατότητα εύρεσης της γρηγορότερης διαδρομής για τον εκάστοτε προορισμό τους. Στο παρόν έγγραφο παρουσιάζεται η εφαρμογή Smart Driver (για κινητές συσκευές πχ. smartphones, tablets με λειτουργικό σύστημα Android) μέσω της οποίας ο χρήστης έχει τη δυνατότητα εύρεσης της βέλτιστης χρονικά διαδρομής για κάποιο προορισμό μαζί με τον προβλεπόμενο χρόνο εκτέλεσης της. Βασικός στόχος της εφαρμογής είναι η βελτίωση των αποτελεσμάτων του Google Directions API, στα οποία ο υπολογισμός του χρόνου μιας διαδρομής δεν βασίζεται σε πραγματικά δεδομένα κίνησης. Ο κορμός της εφαρμογής αποτελείται από δύο κομμάτια, την καταγραφή κυκλοφοριακών δεδομένων και την εύρεση της βέλτιστης χρονικά διαδρομής. Η καταγραφή των κυκλοφοριακών δεδομένων γίνεται με χρήση του GPS των κινητών συσκευών. Η εύρεση της βέλτιστης χρονικά διαδρομής πραγματοποιείται με την αξιοποίηση των πραγματικών δεδομένων που συλλέγονται από την εφαρμογή, σε συνδυασμό με τα αποτελέσματα του Google Directions API. Η εφαρμογή εκμεταλλεύεται την ύπαρξη μοντέλων κίνησης που βασίζονται στα χαρακτηριστικά κάθε ημέρας και ώρας. Η εφαρμογή είναι φιλική προς το χρήστη μέσω κατάλληλης γραφικής διεπαφής. ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: Εξόρυξη δεδομένων μέσω έξυπνων κινητών συσκευών ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: Εξόρυξη δεδομένων, εφαρμογή android, βέλτιστη διαδρομή, καταγραφή κυκλοφοριακών δεδομένων, γεωγραφικά σημεία

4 ABSTRACT Traffic congestion combined with the modern pace of life create the necessity of a tool that will help improve transport, giving its users the ability to find the fastest route to each destination. In this paper we present the application of Smart Driver (for mobile devices e.g. smartphones, tablets running Android) through which the user has the ability of finding the optimal path, according to time, to a destination along with the estimated runtime. The objective of the application is to improve the results of Google Directions API, in which the predicted time of a route is not based on real traffic data. The main structure of the application consists of two parts, recording traffic data and finding the optimal time path. The recording of traffic data is achieved by using the GPS of mobile devices. Finding the optimal time path is achieved by using real data collected from the application, combined with the results of the Google Directions API. The implementation exploits the existence of traffic patterns of each day and time period. The application is user-friendly with the use of appropriate graphic user interface. SUBJECT AREA: Data mining through smart mobile devices KEYWORDS: Data mining, android application, shortest path, monitoring traffic data, geopoints

5 Αφιερώνουμε αυτή την εργασία στους γονείς μας.

6 ΕΥΧΑΡΙΣΤΙΕΣ Θα θέλαμε να ευχαριστήσουμε τον επιβλέποντα κ. Δημήτριο Γουνόπουλο για την συνεργασία και την αμέριστη βοήθεια του στην εκπόνηση της πτυχιακής μας εργασίας. Ακόμα θα θέλαμε να ευχαριστήσουμε του γονείς μας για την στήριξη τους όλα αυτά τα χρόνια.

7 ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ ΕΙΣΑΓΩΓΗ ΤΕΧΝΙΚΕΣ ΥΠΟΛΟΓΙΣΜΟΥ ΓΡΗΓΟΡΟΤΕΡΗΣ ΔΙΑΔΡΟΜΗΣ Βασικές Έννοιες Τρόπος Εύρεσης Βέλτιστης Διαδρομής στην εφαρμογή Google Maps Ο αλγόριθμος Dijkstra Τεχνικές Εύρεσης Βέλτιστης Διαδρομής σε χάρτη ΕΡΓΑΛΕΙΑ ΠΛΟΗΓΗΣΗΣ Περιγραφή Google Maps API Xρήση υπηρεσιών του Google Maps API στην παρούσα εφαρμογή Εισαγωγή και εμφάνιση του χάρτη του Google Maps Χρήση της υπηρεσίας δρομολόγησης του Google Maps API ΠΕΡΙΓΡΑΦΗ ΕΦΑΡΜΟΓΗΣ ANDROID ΚΑΙ ΕΞΥΠΗΡΕΤΗΤΗ Σχήμα Αρχιτεκτονικής της Εφαρμογής Παρουσίαση της εφαρμογής Αndroid Γενικές πληροφορίες Κεντρικό μενού εφαρμογής Οθόνη καταγραφής διαδρομής (MonitorActivity) Οθόνη εύρεσης διαδρομής (DirectionsActivity) Οθόνη παρουσίασης βέλτιστης διαδρομής (RouteActivity) Παρουσίαση του Server της εφαρμογής και της βάσης δεδομένων Γενικές Πληροφορίες Εξυπηρέτηση των Αιτημάτων της εφαρμογής Android από τον Server Περιγραφή Βάσης Δεδομένων ΚΑΤΑΓΡΑΦΗ ΚΥΚΛΟΦΟΡΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ...38

8 5.1 GPS και χρήση του στην καταγραφή κυκλοφοριακών δεδομένων Γενικές πληροφορίες για GPS GPS στις συσκευές ANDROID Ορισμός Σημείων Ενδιαφέροντος Γενικές πληροφορίες σημείων ενδιαφέροντος Δημιουργία Βάσης Δεδομένων Οδικών Αξόνων και Σημείων Ενδιαφέροντος Περιγραφή της λειτουργίας της καταγραφή κυκλοφοριακών δεδομένων Καταγραφή κυκλοφοριακών δεδομένων μέσω εφαρμογής Android Λειτουργία του Server στην καταγραφή κυκλοφοριακών δεδομένων ΕΥΡΕΣΗ ΚΑΙ ΔΡΟΜΟΛΟΓΗΣΗ ΓΡΗΓΟΡΟΤΗΡΗΣ ΔΙΑΔΡΟΜΗΣ Γενική περιγραφή λειτουργίας εύρεσης διαδρομής Λειτουργία εύρεσης βέλτιστης διαδρομής εφαρμογής Android Αποστολή αιτήματος εύρεσης διαδρομής μεταξύ δύο σημείων Προβολή Βέλτισητς Διαδρομής Λειτουργίες για την εύρεση της γρηγορότερης διαδρομής στην πλευρά του Server Γενικές Λειτουργίες Server για την εύρεση της γρηγορότερης διαδρομής Αίτημα Εύρεσης Υποψήφιων Διαδρομών μέσω του Google Maps API Επιλογή της γρηγορότερης υποψήφιας διαδρομής ΠΕΙΡΑΜΑΤΙΚΟΣ ΕΛΕΓΧΟΣ ΕΦΑΡΜΟΓΗΣ Παραδείγματα Εύρεσης Βέλτιστης Διαδρομής Παράδειγμα Εύρεσης Βέλτιστης Διαδρομής μεταξύ δύο σημείων χωρίς κυκλοφοριακή συμφόρηση Πειραματικός έλεγχος σωστής λειτουργίας εφαρμογής για μεγάλη ποσότητα δεδομένωνσύγκριση αποτελεσμάτων εφαρμογής με αποτελέσματα του Google Maps Σύγκριση αποτελεσμάτων εφαρμογής με αποτελέσματα του Google Maps Συμπεριφορά εφαρμογής για μεγάλη ποσότητα δεδομένων Περιοδικότητα αποτελεσμάτων εφαρμογής Λειτουργία εύρεσης διαδρομής για μεγάλες αποστάσεις Στατιστικά στοιχεία κώδικα της εφαρμογής και του Server Android Εφαρμογή Server της Εφαρμογής ΣΥΜΠΕΡΑΣΜΑΤΑ...68 ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ...71 ΣΥΝΤΜΗΣΕΙΣ ΑΡΚΤΙΚΟΛΕΞΑ ΑΚΡΩΝΥΜΙΑ...72

9 ΠΑΡΑΡΤΗΜΑ Ι...73 ΑΝΑΦΟΡΕΣ... 85

10 ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ Σχήμα 1. Διάγραμμα χρόνου απόκρισης εφαρμογής σε συνάρτηση με τον αριθμό εγγραφών του πινάκα Day6...σελ.60 Σχήμα 2. Διάγραμμα χρόνου απόκρισης εφαρμογής σε συνάρτηση με τον αριθμό τμημάτων ενδιαφέροντος...σελ.61

11 ΚΑΤΑΛΟΓΟΣ ΕΙΚΟΝΩΝ Εικόνα 1: Αναπαράσταση χάρτη με γράφο...σελ.17 Εικόνα 2: Αναπαράσταση αποστάσεων πόλεων σε σταθμισμένο γράφο...σελ.18 Εικόνα 3: Σχήμα αρχιτεκτονικής της εφαρμογής...σελ.26 Εικόνα 4: Απεικόνιση διαδρομής μεταξύ δύο σημείων του Google Maps.....σελ.28 Εικόνα 5: Κεντρικό μενού εφαρμογής...σελ.30 Εικόνα 6: Οθόνη καταγραφής κυκλοφοριακών δεδομένων εφαρμογής...σελ.31 Εικόνα 7: Οθόνη καταγραφής κυκλοφοριακών δεδομένων κατά την καταγραφή...σελ.32 Εικόνα 8: Οθόνη επιλογής δύο σημείων για εύρεση διαδρομής...σελ.32 Εικόνα 9: Επιλογή σημείου...σελ.33 Εικόνα 10:Αποστολή ερωτήματος εύρεσης διαδρομής...σελ.33 Εικόνα 11:Προβολή βέλτιστης διαδρομής χωρίς κυκλοφοριακή συμφόρηση...σελ.34 Εικόνα 12: Σχήμα βάσης δεδομένων εφαρμογής...σελ.36 Εικόνα 13: Ενδεικτικά σημεία ενδιαφέροντος...σελ.40 Εικόνα 14:Πίνακας Streets της βάσης δεδομένων...σελ.40 Εικόνα 15:Πίνακας Streets Marks της βάσης δεδομένων...σελ.42 Εικόνα 16:Επιλογή Monitor Track από κεντρικό μενού...σελ.42 Εικόνα 17: Εμφάνιση σημείων ενδιαφέροντος κατά την καταγραφή δεδομένων...σελ.45 Εικόνα 18: Παράδειγμα Μηνύματος JSON από Google Maps...σελ.47 Εικόνα 19: Οθόνη επιλογής σημείου αφετηρίας ή προορισμού...σελ.54 Εικόνα 20: Αποστολή ερωτήματος διαδρομής στον εξυπηρετητή...σελ.55 Εικόνα 21: Οθόνη προβολής βέλτιστης διαδρομής...σελ.55 Εικόνα 22: Προτεινόμενες διαδρομές Google Maps...σελ.57 Εικόνα 23: Προβολή Προτεινόμενης Διαδρομής στο χάρτη...σελ.57 Εικόνα 24: Επιλογή Σημείων Διαδρομής...σελ.58 Εικόνα 25: Προτεινόμενη διαδρομή εφαρμογής στις 2:08 μ.μ...σελ.58 Εικόνα 26: Προτεινόμενη διαδρομή στις 5:35 μ.μ...σελ.59

12 Εικόνα 27: Παρουσίαση διαδρομής πειράματος 1...σελ.62 Εικόνα 28: Παρουσίαση διαδρομής πειράματος 2...σελ.63 Εικόνα 29: Παρουσίαση διαδρομής πειράματος 3...σελ.63 Εικόνα 30: Παρουσίαση 1ης μεγάλης διαδρομής...σελ.65 Εικόνα 31: Παρουσίαση 2ης μεγάλης διαδρομής...σελ.65

13 ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ Πίνακας 1: Εργαλεία Android για εύρεση τοποθεσίας...σελ.39 Πίνακας 2: Ανάλυση Πίνακα StreetMarks...σελ.41 Πίνακας 3: Βασικές έννοιες βιβλιοθηκών Android...σελ.43 Πίνακας4: Αρχεία εφαρμογής Αndroid...σελ.66 Πίνακας 5: Αρχεία PHP server...σελ.67

14 ΠΡΟΛΟΓΟΣ Η παρούσα πτυχιακή εργασία εκπονήθηκε την ακαδημαική χρονιά και αποτελεί μια εφαρμογή η οποία έχει στόχο την εύρεση βέλτιστης διαδρομής μεταξύ δύο σημείων (εκκίνησης και προορισμού) πάνω σε οδικά δίκτυα. Η δρομολόγηση μιας διαδρομής επιτυγχάνεται με χρήση του Google Directions Api και η επιλογή της βέλτιστης χρονικά διαδρομής πραγματοποιείται μέσω συλλογής και αξιοποίησης κυκλοφοριακών δεδομένων. Στη συνέχεια παρουσιάζονται ο τρόπος δρομολόγησης της εφαρμογής Google Maps και η υλοποίηση της εφαρμογής για κινητές συσκευές Android μέσω της οποίας επιτυγχάνεται η καταγραφής κυκλοφοριακών δεδομένων μέσω κινητών συσκευών (smartphones, tablets) και παρέχει στο χρήστη τη δυνατότητα εύρεσης της βέλτιστης χρονικά διαδρομής μεταξύ δύο σημείων. Η εργασία ολοκληρώνεται με την εξαγωγή αποτελεσμάτων και συμπερασμάτων μέσω σχετικών πειραμάτων που υλοποιήθηκαν. Ολοκληρώνοντας αυτό το σύντομο πρόλογο, θα θέλαμε να ευχαριστήσουμε τον επιβλέποντα καθηγητή κ. Δημήτριο Γουνόπουλο για την ευκαιρία που μας έδωσε να ασχοληθούμε με ένα σύγχρονο και ενδιαφέρον θέμα καθώς και για την αμέριστη υποστήριξη που μας παρείχε.

15 1. ΕΙΣΑΓΩΓΗ Βασικό πρόβλημα με το οποίο έχει ασχοληθεί η επιστήμη της πληροφορικής είναι η εύρεση της βέλτιστης διαδρομής μεταξύ δύο σημείων. Η σχεδίαση μιας διαδρομής βρίσκει πρακτική εφαρμογή στη πλοήγηση οχημάτων πάνω σε ένα οδικό δίκτυο. Το πρόβλημα αυτό αναφέρεται συχνά ως πρόβλημα εύρεσης συντομότερης διαδρομής (Shortest path problem -SP). Για την επίλυση του,έχουν αναπτυχθεί πολλοί αλγόριθμοι οι οποίοι το αντιμετωπίζουν με τεράστια επιτυχία. Αυτοί οι αλγόριθμοι έχουν ενσωματωθεί σε εφαρμογές όπου εκατομμύρια χρήστες τις χρησιμοποιούν καθημερινά μέσω διαδικτύου, ειδικών κινητών συσκευών (GPS destinators) και πιο πρόσφατα, μέσω σύγχρονων κινητών συσκευών δηλαδή smartphones και tablets. Οι αλγόριθμοι των εφαρμογών αυτών, χρησιμοποιούν παραμέτρους όπως το συνολικό μήκος μιας διαδρομής και τα όρια ταχύτητας των οδών για να μπορέσουν να προσφέρουν στους χρήστες τους την γρηγορότερη διαδρομή. Τα τελευταία χρόνια πολλές εφαρμογές προκειμένου να έχουν αποτελέσματα που ανταποκρίνονται περισσότερο στην πραγματικότητα, αξιοποιούν πραγματικά κυκλοφοριακά δεδομένα, προβλέποντας με ακόμα μεγαλύτερη ακρίβεια τον χρόνο διεξαγωγής μιας διαδρομής. Η δημοφιλέστερη εφαρμογή πλοήγησης λόγο των υπηρεσιών που προσφέρει αλλά και λόγο της δωρεάν διάθεσης της μέσω διαδικτύου και για κινητές συσκευές με λειτουργικό σύστημα Android, είναι η εφαρμογή Google maps της Google. Η εφαρμογή αυτή έχει τη δυνατότητα σε ελάχιστο χρόνο να επιστρέψει στο χρήστη μέχρι και τρεις πιθανές διαδρομές από ένα σημείο Α μέχρι ένα σημείο Β, μαζί με τον πιθανό χρόνο διεξαγωγής της διαδρομής. Αυτός ο χρόνος, στη χώρα μας υπολογίζεται μόνο από τα όρια ταχύτητας των οδών της κάθε διαδρομής, δηλαδή δεν χρησιμοποιούνται πραγματικά κυκλοφοριακά δεδομένα. Επομένως, ο πιθανός χρόνος διεξαγωγής μιας διαδρομής απέχει συχνά πολύ από τη πραγματικότητα, μειώνοντας έτσι την αξιοπιστία της εφαρμογής. Στα πλαίσια αυτής της πτυχιακής εργασίας αναπτύχθηκε εφαρμογή για κινητές συσκευές με λειτουργικό σύστημα Android 2.3 ή νεότερη έκδοση, η οποία έχει ως στόχο τη βελτίωση των αποτελεσμάτων της εφαρμογής Google maps με χρήση πραγματικών κυκλοφοριακών δεδομένων τα οποία αυτή καταγράφει. Η εφαρμογή εκμεταλλεύεται το γεγονός ότι η κίνηση των δρόμων σχετίζεται άμεσα με κάθε ημέρα και ώρα της εβδομάδας. Δηλαδή η εφαρμογή καταγράφει κυκλοφοριακά δεδομένα με χρήση εργαλείων της συσκευής όπως το GPS και το ασύρματο δίκτυο 3G και με βάση αυτά επιστρέφει στον χρήστη της, τη βέλτιστη χρονικά διαδρομή μεταξύ δύο σημείων της επιλογής του. Η βέλτιστη διαδρομή που επιστρέφει στο χρήστη η εφαρμογή, πρόκειται για την γρηγόροτερη διαδρομή από τις επιλογές του Google Maps με βάση τα κυκλοφοριακά δεδομένα που έχουν συλλεχθεί για την συγκεκριμένη μέρα και ώρα. Επιπλέον ο προβλεπόμενος χρόνος ολοκλήρωσης της διαδρομής που επιστρέφεται στο χρήστη είναι πιο κοντά στη πραγματικότητα, καθώς υπολογίζεται με βάση τα κυκλοφοριακά δεδομένα που έχουν συλλεχθεί. Η εφαρμογή αποτελείται από τη διεπαφή της κινητής συσκευής Αndroid και έναν εξυπηρετητή (Server). Η γλώσσα προγραμματισμού που επιλέχθηκε για τον server της εφαρμογής είναι η PHP και ο κώδικας αναπτύχθηκε και δοκιμάστηκε σε virtual machine Ubuntu server του συστήματος του Okeanos. Η ανάπτυξη της διεπαφής της κινητής συσκευής πραγματοποιήθηκε σε γλώσσα Java και περιβάλλον ανάπτυξης Eclipse με Android Software Development Kit και μπορεί να τρέξει σε οποιαδήποτε Android συσκευή που διαθέτει λειτουργικό σύστημα Android 2.3 ή νεότερη έκδοση. 14

16 2. ΤΕΧΝΙΚΕΣ ΥΠΟΛΟΓΙΣΜΟΥ ΓΡΗΓΟΡΟΤΕΡΗΣ ΔΙΑΔΡΟΜΗΣ Το πρόβλημα της εύρεσης της γρηγορότερης διαδρομής μεταξύ δύο σημείων είναι μια σύνθετη διαδικασία και για αυτό έχουν αναπτυχθεί διάφοροι αλγόριθμοι επίλυσής του. Σε αυτό το κεφάλαιο παρουσιάζεται η μέθοδος δρομολόγησης που χρησιμοποιεί η εφαρμογή Google Maps προκειμένου να επιστρέψει τη γρηγορότερη διαδρομή μεταξύ δύο σημείων. 2.1 Βασικές Έννοιες Παρατίθενται κάποιες βασικές έννοιες που είναι απαραίτητες για την κατανόηση του τρόπου δρομολόγησης: Γράφος: Ο γράφος στον απλούστερο ορισμό του είναι η οπτική αναπαράσταση των σχέσεων που αναπτύσσουν ορισμένες ποσότητες, σχεδιασμένες σε σχέση με ένα σύνολο αξόνων. Ένας άλλος ορισμός που κινείται στο ίδιο εννοιολογικό πλαίσιο της οπτικής αναπαράστασης> αναγνωρίζει τον γράφο ως απεικόνιση αποτελούμενη από ένα σύνολο σημείων (κορυφών ή κόμβων) που συνδέονται με γραμμές (ακμές) Στους κατευθυνόμενους ή προσανατολισμένους γράφους οι ακμές απεικονίζονται διανυσματικά. Σε μία άλλη εκδοχή είναι ένα σύνολο από κόμβους (κορυφές) που ενώνονται μεταξύ τους με ακμές και ορίζεται από τον τρόπο με τον οποίο συνδέονται οι κορυφές (κόμβοι). Αν οι ακμές προσανατολίζονται οριζόμενες από διατεταγμένα ζεύγη κόμβων, τότε ο γράφος αποκαλείται κατευθυνόμενος. Αν οι ακμές δεν προσανατολίζονται, οριζόμενες απλώς από διμελή σύνολα και όχι διατεταγμένα ζεύγη, τότε αποκαλείται μη κατευθυνόμενος. Επιπλέον στοιχεία για τον ορισμό ενός γράφου είναι η σύνδεση των ακμών του με κάποια αξία, οπότε αποκαλείται σταθμισμένος. Σταθμισμένος γράφος :Ένας γράφος λέγεται σταθμισμένος γράφος αν ένας αριθμός (βάρος) έχει ανατεθεί σε κάθε ακμή. Οι τιμές των βαρών στην περίπτωση μας αντιπροσωπεύουν το χρονικό κόστος μιας διαδρομής από ένα σημείο Α σε ένα σημείο Β. Μονοπάτι: Μονοπάτι από έναν κόμβο σε έναν άλλο ενός γράφου ονομάζεται μια ακολουθία κόμβων, όπου κάθε κόμβος της ακολουθίας συνδέεται με τον επόμενό του μέσω ακμής. Το μήκος ενός μονοπατιού, είναι το πλήθος των ακμών της ακολουθίας. Ένα μονοπάτι που αποτελείται από έναν μη επαναλαμβανόμενο κόμβο και δεν περιέχει καμία ακμή, είναι ένα τετριμμένο μονοπάτι μηδενικού μήκους. Ένα μονοπάτι είναι κατευθυνόμενο αν μπορούμε να πάμε από το ένα άκρο του στο άλλο και όχι το ανάποδο. Ενώ είναι μη κατευθυνόμενο όταν και οι δύο κατευθυνσεις του είναι δυνατές. Συντομότερο Μονοπάτι : Ένα συντομότερο μονοπάτι από την u στην υ ορίζεται ως οποιοδήποτε μονοπάτι p μεταξύ των δύο κορυφών με βάρος w(p)= δ(u, υ). Δηλαδή, ένα συντομότερο μονοπάτι από την u στην υ είναι οποιοδήποτε μονοπάτι με ελάχιστο βάρος σε σχέση με τα υπόλοιπα μονοπάτια μεταξύ των δύο κορυφών ή άπειρο βάρος στην περίπτωση που δεν υφίσταται μονοπάτι μεταξύ των συγκεκριμένων κορυφών. [1], [2] 15

17 2.2 Τρόπος Εύρεσης Βέλτιστης Διαδρομής στην εφαρμογή Google Maps Ο αλγόριθμος Dijkstra Έστω ένας γράφος G(V,E), όπου V το σύνολο των κόμβων του και Ε το σύνολο των ακμών του. Επίσης, έχουμε μια συνάρτηση βάρους ορισμένη στις ακμές του γράφου. Αυτό σημαίνει ότι για να πάμε από έναν κόμβο του γράφου σε έναν άλλο, θα έχουμε κάποιο κόστος. Είναι σημαντικό, όπως θα φανεί παρακάτω, τα βάρη να μην είναι αρνητικά, επειδή διαφορετικά ο αλγόριθμος δεν δίνει σωστό αποτέλεσμα. Ο αλγόριθμος του Dijkstra βρίσκει τα μονοπάτια που πρέπει να ακολουθήσουμε από έναν κόμβο-αφετηρία προς τους υπόλοιπους, ώστε να έχουμε το λιγότερο δυνατό κόστος. Για τη λειτουργία του αλγόριθμου, σε ένα διάνυσμα d[] μεγέθους αποθηκεύουμε την έως τώρα υπολογισμένη απόσταση των κόμβων από την αφετηρία. Κατά την αρχικοποίηση, οι αποστάσεις σημειώνονται και για κάθε, όπου s είναι ο κόμβος-αφετηρία. Επιπλέον ο αλγόριθμος διατηρεί μια ουρά προτεραιότητας Q, για την επεξεργασία των κόμβων του γραφήματος στη σωστή σειρά, και ένα σύνολο S, το σύνολο των κόμβων για τους οποίους ο αλγόριθμος έχει βρει την ελάχιστη διαδρομή. Στην Q εισάγονται όλοι οι κόμβοι του γραφήματος με κλειδί την τιμή d[*], ενώ το σύνολο S είναι αρχικά κενό. Τέλος, ο αλγόριθμος χρησιμοποιεί ένα ακόμη διάνυσμα, το prev[], μεγάθους n, στο οποίο για κάθε κόμβο u αποθηκεύεται ο αμέσως προηγούμενος κόμβος στο ελάχιστο μονοπάτι προς τον u. Για παράδειγμα, έστω ότι το ελάχιστο μονοπάτι από τον s στον b περνά πρώτα από τον a και αμέσως μετά φτάνει στον b. Τότε, prev[b]=a. Αρχικά, κάθε θέση του διανύσματος prev[] λαμβάνει την τιμή null (κενό). Μετά την αρχικοποίηση των δομών που χρησιμοποιεί, ο αλγόριθμος εξάγει από την Q τον κόμβο x με το ελάχιστο d[*] και τον εισάγει στο σύνολο S. Στο πρώτο βήμα, για παράδειγμα, θα εξάγει τον κόμβο-αφετηρία s, αφού d[s]=0 ενώ όλοι οι υπόλοιποι κόμβοι έχουν άπειρο d[*]. Για κάθε γείτονα y (του x) που δεν ανήκει στο σύνολο S, αν τότε ενημερώνει το d[y] καταχωρώντας του την τιμή d[x] + w(x,y) και θέτει prev[y]=x. Δηλαδή, αν ο αλγόριθμος υπολογίσει ένα ελαφρύτερο (από το ήδη υπολογισμένο) μονοπάτι για τον κόμβο y, τότε σημειώνει το κόστος του (d[y]) και τον αμέσως προηγούμενο κόμβο του νέου υπολογισμένου μονοπατιού (prev[y]). Ας σημειώσουμε εδώ, ότι με την αλλαγή του d[y] αλλάζει και η θέση του κόμβου y στην ουρά προτεραιότητας Q. Για την ακρίβεια, μεγαλώνει η προτεραιότητα του y, αφού κάθε νέα τιμή του d[y] είναι πάντα μικρότερη από την προηγούμενη. Αφού ο αλγόριθμος εξετάσει όλους τους γείτονες του x που δεν ανήκουν στο σύνολο S, εισάγει στο S τον κόμβο με το ελάχιστο d[*] από όλους όσους δεν ανήκουν στο S. Έπειτα, ο αλγόριθμος επιλέγει πάλι τον πρώτο σε προτεραιότητα κόμβο από την ουρά Q και επαναλαμβάνει τα βήματα αυτά μέχρι να αδειάσει η Q. Όταν πλέον η Q θα έχει αδειάσει, ο αλγόριθμος θα έχει βρει τα ελάχιστα μονοπάτια από τον κόμβο s προς τους όλους τους υπόλοιπους και τα κόστη τους. Ο αλγόριθμος είναι άπληστος (greedy): σε κάθε βήμα, εξετάζει μόνο τους γειτονικούς ενός κόμβου (τοπικότητα). Βρίσκει τον κόμβο για τον οποίο έχει υπολογίσει την ελάχιστη διαδρομή και τον εισάγει στο σύνολο S, χρησιμοποιώντας πληροφορίες από προηγούμενα βήματα (σύνθεση). Στο τέλος δίνει ένα αποτέλεσμα για όλους τους κόμβους. [3],[4] 16

18 2.2.2 Τεχνικές εύρεσης Βέλτιστης Διαδρομής σε χάρτη Η εφαρμογή Google Maps είναι μια από τις δημοφιλέστερες εφαρμογές δρομολόγησης, γι' αυτό παρουσιάζει ενδιαφέρον ο τρόπος με τον οποίο αυτή αναπαριστά το οδικό δίκτυο και επιλύει το πρόβλημα της εύρεσης της συντομότερης διαδρομής μεταξύ δύο σημείων. Όπως όλες οι εμπορικές εφαρμογές έτσι και στο Google Μaps οι λεπτομέρειες του κώδικα της εφαρμογής δεν διατίθενται ελεύθερα. Όμως όλες οι εφαρμογές πλοήγησης ακολουθούν κάποιες βασικές αρχές που περιγράφονται παρακάτω με την προσθήκη πιθανώς κάποιων βελτιστοποιήσεων. Ουσιαστικά το Google Maps χρησιμοποιεί ένα γιγαντιαίο γράφο με κόμβους και ακμές ο οποίος αντιστοιχεί στον παγκόσμιο χάρτη. Αυτός είναι ο βασικός πυρήνας του Google Maps, ένας πραγματικά μεγάλος γράφος με έναν τεράστιο αριθμό από κόμβους και ακμές. Ωστόσο, λόγω της τεράστιας ποσότητας δεδομένων που χρειάζεται η ανάλυση ενός τόσο μεγάλου γράφου και η παρακολούθηση όλων των κόμβων και των ακμών του, είναι εντυπωσιακή η ταχύτητα με την οποία η Google πραγματοποιεί τον υπολογισμό της συντομότερης διαδρομής. Ο αλγόριθμος του Dijkstra αποτελεί τη βασική μεθοδολογία που χρησιμοποιούν οι εφαρμογές δρομολόγησης όπως και αυτή της Google, για να κάνουν τον παραπάνω υπολογισμό. Για την ευκολότερη κατανόηση του τρόπου λειτουργίας του τρόπου δρομολόγησης της εφαρμογής Google Maps ακολουθεί το παρακάτω απλοποιημένο παράδειγμα: Εικόνα 1. Αναπαράσταση χάρτη με γράφο Σημείωση: Το παράδειγμα που ακολουθεί είναι απλουστευμένο για την καλύτερη κατανόηση του τρόπου διαχείρισης του προβλήματος από τις εφαρμογές δρομολόγησης. Στο παραπάνω γράφημα περιέχονται πέντε μεγάλες πόλεις των ΗΠΑ. Κάθε κόμβος του γράφου αντιστοιχεί σε μια πόλη και κάθε ακμή του γράφου αντιπροσωπεύει την ευθεία απόσταση μεταξύ δύο κόμβων. Οι αποστάσεις αυτές υπολογίστηκαν χρησιμοποιώντας το εργαλείο: Στην πραγματικότητα, η συγκεκριμένη αναπαράσταση διαδρομής είναι ιδανική, δεδομένου ότι δεν λαμβάνει υπόψη το υπάρχον οδικό δίκτυο και δημιουργεί μια 17

19 θεωρητική διαδρομή η οποία μπορεί να περνάει από θαλάσσια ύδατα ή εκτός οδικών δικτύων. Εφόσον ο γράφος παρουσιάζει μεταθέσεις ακμών μεταξύ κάθε κόμβου, είναι προφανές ποια θα είναι η "ελάχιστη απόσταση" μεταξύ δύο κόμβων (δεδομένου ότι η μικρότερη απόσταση μεταξύ δύο σημείων είναι μια ευθεία γραμμή). Ωστόσο, δεν συνδέονται όλες οι μεγάλες πόλεις άμεσα με μια ακμή, καθώς υπάρχουν πολλές περισσότερες που θα πρέπει να διασχιθούν για να φτάσουμε από τον ένα κόμβο στον άλλο. Στην περίπτωση του Google Maps, οι δρόμοι αντιστοιχίζονται στον γράφο με ακμές και οι κόμβοι που περιλαμβάνονται είναι πολύ περισσότεροι καθώς αντιστοιχούν σε μεγάλες πόλεις, σε μικρότερες πόλεις, στα χωριά ή ακόμα και διασταυρώσεις δρόμων. Καθώς το Google Maps παρέχει τη δυνατότητα εύρεσης διαδρομής από και προς οποιαδήποτε τοποθεσία σε ολόκληρο τον παγκόσμιο χάρτη, τότε είναι εύκολο να φανταστεί κανείς πόσο πολλοί κόμβοι υπάρχουν στον πλήρες γράφο που χρησιμοποιεί. Το εντυπωσιακό στοιχείο της εφαρμογής αυτής είναι ότι σύμφωνα με τα παραπάνω ο υπολογισμός της συντομότερης διαδρομής με απλή εκτέλεση ενός αλγορίθμου όπως αυτόν του Dijkstra σε ολόκληρο τον γράφο θα ήταν πολύ χρονοβόρος άλλα στη πραγματικότητα γίνεται στιγμιαία. Η αποδοτικότητα του Google maps οφείλεται σε μια σειρά βελτιστοποιήσεων που αναλύονται στη συνέχεια. O Αλγόριθμο του Dijkstra, όπως περιγράφεται στο παρόν έγγραφο είναι ένας από τους πολλούς τρόπους για την εξεύρεση μιας τέτοιας διαδρομής, αλλά και οι υπόλοιποι τρόποι είναι εξίσου αποτελεσματικοί, όπως αναφέρεται στη σελίδα wikipedia για την εύρεση πορείας, H Google για να διευκολύνει τη λύση του προβλήματος ενσωματώνει κόμβους στα πλαίσια άλλων κόμβων. Για την εύρεση της συντομότερης διαδρομής μεταξύ Philadelpha και Βοστώνης, δεν πρέπει να περιλαμβάνονται κόμβοι, όπως το Σιάτλ στο γράφο που θα χρησιμοποιηθεί για τον υπολογισμό της βέλτιστης διαδρομής. Για αυτό το λόγο, το Google Maps λαμβάνει μια υπο-ενότητα του γράφου κοντά στους δύο κόμβους που μας ενδιαφέρουν και λειτουργεί μόνο σε αυτό το τμήμα. Για παράδειγμα έστω ότι έχουμε ένα γιγάντιο κόμβο ο οποίος περιείχε τα Βαλκάνια και συνεπώς όλες τις πόλεις της περιοχής αυτής. Σε αυτόν τον κόμβο, ενσωματώνονται άλλοι κόμβοι, όπως για παράδειγμα ένας που ονομάζεται "Αθήνα", ο οποίος εστιάζει μόνο στους κόμβους του γράφου που εμπίπτουν σε αυτή την κατηγορία. Όσο πιο κοντά είναι οι πόλεις - κόμβοι μεταξύ τους, τόσο λιγότεροι υπολογισμοί απαιτούνται για τον υπολογισμό της βέλτιστης διαδρομής. Ας εξετάσουμε το επόμενο γράφημα: Εικόνα 2. Αναπαράσταση αποστάσεων πόλεων σε σταθμισμένο γράφο Μπορούμε να υποθέσουμε ότι κάθε κόμβος αντιστοιχεί σε έναν κόμβο του Google Maps (άρα μπορεί να είναι πόλη, διασταύρωση ή ακόμα και κτίριο) και κάθε ακμή αντιστοιχεί 18

20 στην απόσταση μεταξύ δύο κόμβων. Μια ακμή οπότε μπορεί να αντιστοιχεί σε έναν δρόμο, ένα μονοπάτι, έναν πεζόδρομο κτλπ. Σε αυτή τη περίπτωση με τη χρήση μιας μεθόδου σαν τον αλγόριθμο του Dijkstra όπως αναφέρθηκε παραπάνω δίνεται η δυνατότητα σε μια εφαρμογή όπως το Google Maps να υπολογίσει την συντομότερη διαδρομή. Στη περίπτωση του παραπάνω γράφου μπορούμε να παρατηρήσουμε ότι η συντομότερη διαδρομή από τον κόμβο 3 στον κόμβο 1 είναι η 3 -> 4 -> 5->1 και όχι η 3 - > 2 -> 1 αφού τα κόστη των ακμών αν προστεθούν για κάθε διαδρομή είναι : < Ένα πρόγραμμα το οποίο τρέχει τον αλγόριθμο του Dijkstra θα επιστρέψει το ίδιο αποτέλεσμα ακολουθώντας απλά τα βήματα του αλγορίθμου. [3], Παρόλο που αυτό το πρόβλημα σε μεγαλύτερους γράφους θα είναι πολύ πιο δύσκολο, η Google χρησιμοποιεί πολλαπλούς πανίσχυρους εηυπηρετητές και βάσεις δεδομένων, οι οποίοι κάνουν τους αναγκαίους υπολογισμούς σε μηδενικό σχεδόν χρόνο. Το πλεονέκτημα αυτής της μεθοδολογίας είναι ότι το κόστος κάθε ακμής μπορεί να αλλάξει (για παράδειγμα αντί να αντιστοιχεί σε απόσταση μπορεί να αντιστοιχεί σε χρόνο διεκπεραίωσης της απόστασης με αυτοκίνητο), αλλά ο αλγόριθμος θα παραμείνει ίδιος. Το χαρακτηριστικό το οποίο ένας κόμβος ή μια ακμή αναπαριστά είναι συνήθως αυθαίρετο και όχι μια παράμετρος που ορίζεται για τη διευκόλυνση του χρήστη. [5], [6], [7] 19

21 3.1 Περιγραφή Google Maps API 3. ΕΡΓΑΛΕΙΑ ΠΛΟΗΓΗΣΗΣ Το Google Maps API είναι μια web εφαρμογή υπηρεσιών, η οποία παρέχεται από την Google και προσφέρει οδικούς χάρτες και υπηρεσίες πλοήγησης σε δικτυακούς τόπους ή σε εφαρμογές Android. Οι υπηρεσίες που προσφέρονται είναι οι εξής: οδικοί χάρτες πλοήγηση διαδρομής (με αυτοκίνητο, με δημόσια μέσα μεταφοράς ή με τα πόδια) εντοπισμός επιχειρήσεων σε χώρες σε όλο τον κόσμο. To Google Maps API είναι δωρεάν για εμπορική χρήση, υπό τον όρο ότι το site/εφαρμογή στην οποία χρησιμοποιείται θα είναι προσβάσιμο στο κοινό χωρίς να χρεώνει τον χρήστη του για κάθε πρόσβαση, και δεν παράγουν περισσότερα από προσβάσεις χάρτη ανά ημέρα. Η ερώτηση στο Google Maps API γίνεται με την αποστολή ενός αιτήματος HTTP GET στην Web εφαρμογή, και επιστρέφει την απάντηση σε μορφή XML ή JSON. Η εφαρμογή η οποία περιγράφεται σε αυτό το έγγραφο χρησιμοποιεί μηνύματα JSON όπως περιγράφονται στη συνέχεια. Οι εφαρμογές Android χρησιμοποιούν μια ειδικά σχεδιασμένη για αυτές εκδοση του API, το Google Maps Android API v2. Για να χρησιμοποιηθεί το Google Maps API από μία εφαρμογή Android απαιτέιται η απόκτηση ενός κλειδιού (Google Maps API Key) από τον δημιουργό της εφαρμογής που το χρησιμοποιεί και η εισαγωγή του στον κώδικα της εφαρμογής. Για την απόκτηση είναι απαραίτητη η δημιουργία λογαριασμού Google και η εγγραφή στο Google APIs Console ( Στη συνέχεια για τη χρήση του εργαλείου πρέπει να οριστεί στο xml αρχείο Manifest της εφαρμογής (AndroidManifest.xml) το κλειδί το οποίο έχει δωθεί από την Google με την εισαγωγή του παρακάτω αντικειμένου σαν παιδί στοιχείου <application>: <meta-data android:name="com.google.android.maps.v2.api_key" android:value="your_api_key"/> Στο παραπάνω αντικαθίσταται το "your_api_key" με το κλειδί το οποίο έχει αποκτηθεί από το Google APIs Console. Μια Android εφαρμογή η οποία χρησιμοποιεί το Google Maps Android API v2 χρειάζεται να ορίστούν οι ακόλουθες ρυθμίσεις στο manifest αρχείο της, AndroidManifest.xml: Δικαιώματα τα οποία δίνουν την δυνατότητα πρόσβασης της εφαρμογή στις λειτουργίες του συστήματος του Android και στους Google Maps servers. Ειδοποίηση ότι η εφαρμογή απαιτεί OpenGL ES έκδοση 2. Εξωτερικές υπηρεσίες μπορούν να ανιχνεύσουν αυτήν την ειδοποίηση και να ενεργήσουν αναλόγως. Για παράδειγμα, το κατάστημα Google Play δεν θα εμφανίσει την εφαρμογή σε συσκευές που δεν έχουν OpenGL ES έκδοση 2. Το Maps API key για την εφαρμογή. Το κλειδί επιβεβαιώνει ότι έχει γίνει εγγραφή με την υπηρεσία Google Maps μέσω της κονσόλας Google API. 20

22 Καθορισμός Δικαιωμάτων Για τη χρήση του Google Maps Android API v2 χρειάζεται ο καθορισμός στην εφαρμογή δικαιωμάτων πρόσβασης σε λειτουργείες του συστήματος. Ο καθορισμός ενός δικαιώματος γίνεται με την προσθήκη ενός στοιχείου <uses-permission> σαν παιδί του αντικειμένου <manifest> στο αρχείο AndroidManifest.xml της εφαρμογής με το συντακτικό: <uses-permission android:name="permission_name"/> Για παράδειγμα για το αίτημα δικαιώματος χρήσης του διαδικτύου εισάγεται: <uses-permission android:name="android.permission.internet"/> Τα απαραίτητα δικαιώματα που χρειάζεται να καθοριστούν για τη χρήση του Google Maps API v2 είναι: android.permission.internet Χρησιμοποιεί το API για τη λήψη του χάρτη απο τους Google Maps servers στη συσκευή. android.permission.access_network_state Επιτρέπει στο API να ελέγξει τη κατάσταση των συνδέσεων τις συσκευής, έτσι ώστε καθορίσει αν μπορεί να γίνει λήψη δεδομένων. com.google.android.providers.gsf.permission.read_gservices Επιτρέπει στο API την πρόσβαση web υπηρεσίες της Google. android.permission.write_external_storage Επιτρέπει στο API να καταχρωρίσει τα δεδομένα του χάρτη στον χώρο αποθήκευσης της συσκευής. 3.2 Xρήση υπηρεσιών του Google Maps API στην παρούσα εφαρμογή Εισαγωγή και εμφάνιση του χάρτη του Google Maps Στο κομμάτι της πλοήγησης της εφαρμογής προβάλετε ο χάρτης του Google Maps προκειμένου να παρουσιαστεί στο χρήστη η προτεινόμενη διαδρομή πάνω σε αυτόν. Η προβολή του χάρτη γίνεται μέσω τη δημιουργίας ενός MapFragment. Συγκεκριμένα: MapFragment Το MapFragment, είναι υποκλάση της κλάσης Android Fragment, η οποία επιτρέπει να προσθέσουμε ένα χάρτη στο Android Fragment. Μέσω του αντικειμένου MapFragment αποκτούμε πρόσβαση στους χάρτες του Google Maps. Το Google Maps Android API απαιτεί API επίπεδο 12 ή μεγαλύτερο για να υποστηρίζει αντικείμενα τύπου MapFragment. Για να εμφανίσουμε ένα χάρτη μέσω MapFragment πρέπει να κάνουμε τα εξής: 21

23 Αρχικά, πρέπει να αποκτήσουμε ένα API key με τη διαδικασία που περιγράφεται παραπάνω και να τροποποιήσουμε κατάλληλα το αρχείο Android Manifest. Προσθέτουμε ένα αντικείμενο Fragment στην Activity η οποία θέλουμε να χειρίζεται το χάρτη. Μέσα στο αντικείμενο της Activity στην συνάρτηση oncreate(), δημιουργούμε ένα αντικείμενο GoogleMap μέσα στο MapFragment. Το αντικείμενο GoogleMap είναι η παρουσίαση του χάρτη και έαν θέλουμε να τροποποιήσουμε τον χάρτη αρκεί να τροποποιήσουμε το αντικείμενο GoogleMap. Το τελευταίο βήμα είναι η προσθήκη των κατάλληλων δικαιωμάτων και ρυθμίσεων στο αρχείο AndroidManifest.xml της εφαρμογής μας. Το MapFragment αυτόματα εμφανίζει το χάρτη στην ολοκλήρωση της μεθόδου oncreate(). Προσθήκη ενός Fragment Για να ορίσουμε ένα αντικείμενο Fragment στο layout αρχείο της Activity, προσθέτουμε ένα στοιχείο <fragment>. Σε αυτό το στοιχείο, θέτουμε το χαρακτηριστικό android:name σε "com.google.android.gms.maps.mapfragment". Με αυτόν τον τρόπο, αυτόματα επισυνάπτεται ένα MapFragment στη συγκεκριμένη Activity. Για παράδειγμα, το ακάλουθο αρχείο layout περιέχει ένα στοιχείο <fragment>: <?xml version="1.0" encoding="utf-8"?> <fragment android:name="com.google.android.gms.maps.mapfragment" android:layout_width="match_parent" android:layout_height="match_parent" /> Υπάρχει επίσης η δυνατότητα να προσθέσουμε ένα MapFragment σε μια Activity μέσα στον κώδικα. Για να το κάνουμε αυτό δημιουργούμε ένα νέο στιγμιότυπο και καλούμε την συνάρτηση FragmentTransaction.add() η οποία προσθέτει ένα Fragment στην τρέχουσα Activity. mmapfragment = MapFragment.newInstance(); FragmentTransaction fragmenttransaction = getfragmentmanager().begintransaction(); fragmenttransaction.add(r.id.my_container, mmapfragment); fragmenttransaction.commit(); Εισαγωγή του κώδικα που διαχειρίζεται το χάρτη Αρχικά, θέτεται το αρχείο layout σαν content view για την παρούσα Activity. Για παράδειγμα αν το αρχείο layout έχει ονομασία main.xml, χρησιμοποιείται ο εξής κώδικας: 22

24 public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); Έπειτα, αποκτάται πρόσβαση στο χάρτη με κλήση της συνάρτησης FragmentManager.findFragmentById(), περνώντας το id του στοιχείου <fragment> που δημιουργήσαμε πριν. Το παρακάτω παράδειγμα δίνει πρόσβαση στο χάρτη μέσω της μεταβλητής mmap: private GoogleMap mmap;... mmap = ((MapFragment) getfragmentmanager().findfragmentbyid(r.id.map)).getmap(); Η μεταβλητή R.id.m προστίθεται αυτόματα στο Android project όταν δημιουργείται το αρχείο layout.μέσω του αντικειμένου GoogleMap για το MapFragment, μπορούμε να τροποποιήσουμε διάφορα χαρακτηριστικά του χάρτη. Επαλήθευση Διαθεσιμότητας Χάρτη Πριν δημιουργηθεί ένα αντικείμενο GoogleMap, πρέπει να επιβεβαιωθεί ότι αυτό μπορεί να αρχικοποιηθεί και πως οι υπηρεσίες Google Play έχουν εγκατασταθεί σωστά στο κινητό. Επιβεβαιώνεται ότι η υπηρεσία GoogleMap είναι διαθέσιμη καλώντας την μέθοδο MapFragment.getMap() ελέγχοντας αν το αντικειμενο που επιστρέφεται δεν είναι null. Ένα παράδειγμα ενός test επιβεβαίωσης της διαθεσιμότητας ενός GoogleMap δίνεται παρακάτω. Αυτή η μέθοδος καλείται είτε από την μέθοδο oncreate() είτε από την μέθοδο onresume(). private void setupmapifneeded() { // Do a null check to confirm that we have not already instantiated the map. if (mmap == null) { mmap = ((MapFragment) getfragmentmanager().findfragmentbyid(r.id.map)).getmap(); // Check if we were successful in obtaining the map. if (mmap!= null) { // The Map is verified. It is now safe to manipulate the map. 23

25 3.2.2 Χρήση της υπηρεσίας δρομολόγησης του Google Maps API Από τις υπηρεσίες δρομολόγησης του Google Maps χρησιμοποιούνται στην εφαρμογή οι εξής δύο: Εύρεση διαδρομής μεταξύ δύο σημείων με βάση τις γεωγραφικές συντενταγμένες τους Εύρεση διεύθυνσης στην οποία αντιστοιχεί ένα γεωγραφικό σημείο. Παρακάτω παραθέτονται δύο παραδείγματα των παραπάνω υπηρεσιών. Εύρεση διαδρομής μεταξύ δύο σημείων Α,Β: Έστω το σημείο Α με συντεταγμένες Χ Α = , Y A = και το σημείο Β με συντεταγμένες Χ Β = , Υ Β = όπου Χ γεωραφικό πλατος και Υ γεωγραφικό μήκος. Το ερώτημα του Google Api που χρησιμοποιούμε για να πάρουμε τα δεδομένα πλοήγησης είναι το εξής: estination= , &alternatives=true&sensor=true και η απάντηση σε μορφή json είναι η εξής: { "routes" : [ { "bounds" : { "northeast" : { "lat" : , "lng" : , "southwest" : { "lat" : , "lng" : , "copyrights" : "Map data 2013 Google", "legs" : [ { "distance" : { "text" : "0.8 km", "value" : 792, "duration" : { "text" : "2 mins", "value" : 120, 24

26 "end_address" : "Leoforos Eleftheriou Venizelou 32-38, Athens , Greece", "end_location" : { "lat" : , "lng" : , "start_address" : "Leoforos Vasisilis Amalias 11-15, Athens , Greece", "start_location" : { "lat" : , "lng" : , "steps" : [ { "distance" : { "text" : "0.2 km", "value" : 202, "duration" : { "text" : "1 min", "value" : 69, "end_location" : { "lat" : , "lng" : , "html_instructions" : "Head \u003cb\u003enorth\u003c/b\u003e on \u003cb\u003eleof. Vasisilis Amalias/Λεωφ. Βασιλίσσης Αμαλίας\u003c/b\u003e toward \u003cb\u003eόθωνος\u003c/b\u003e", "polyline" : { "points" : "m{wffsyzoceasudc@ycsa_@e[a", "start_location" : { "lat" : , "lng" : , "travel_mode" : "DRIVING", { "distance" : { "text" : "0.6 km", "value" : 590, "duration" : { "text" : "1 min", "value" : 51, "end_location" : { "lat" : , "lng" : , 25

27 "html_instructions" : "Continue onto \u003cb\u003eleof. Eleftheriou Venizelou/Λεωφ. Ελευθερίου Βενιζέλου\u003c/b\u003e\u003cdiv style=\"fontsize:0.9em\"\u003edestination will be on the left\u003c/div\u003e", "polyline" : { "points" : "sfxffy{zocyaqakg?gb@r@m@h@{bpbyb`b_clbcbpak@b@y@n@yraaz@", "start_location" : { "lat" : , "lng" : , "travel_mode" : "DRIVING" ], "via_waypoint" : [] ], "overview_polyline" : { "points" : "m{wffsyzoceasudc@m@egduobkb A{BpByB`BcF~DeBrA{AnA", "summary" : "Leof. Vasisilis Amalias/Λεωφ. Βασιλίσσης Αμαλίας and Leof. Eleftheriou Venizelou/Λεωφ. Ελευθερίου Βενιζέλου", "warnings" : [], "waypoint_order" : [] ], "status" : "OK" Το μέγεθος του πίνακα routes μα δίνει τις συνολικές εναλακτικές διαδρομές για τα δύο σημεία Α και Β. Στην παρούσα διαδρομή έχουμε μόνο μια προτεινόμενη διαδρομή. Ακόμα χρησιμοποιούμε το στοιχείο text του πίνακα duration ο οποίος ανήκει στον πίνακα legs που με τη σειρά του ανήκει στον πίνακα routes το οποίο μας δίνει σε δευτερόλεπτα τη συνολική διάρκεια χρόνου μεταξύ των δύο σημείων. Τέλος, χρησιμοποιούμε το στοιχείο overview polyline το οποίο έχει σε κωδικοποιημένη μορφή τη διαδρομή από το ένα σημείο στο άλλο. Αν την αποκοδοικοποιήσουμε και την προβάλουμε στο χάρτη του Google Maps έχουμε το παρακάτω αποτέλεσμα: 26

28 Εικόνα 2: Απεικόνιση διαδρομής μεταξύ δύο σημείων του Google Maps Εύρεση διεύθυνσης για ένα γεωγραφικό σημείο Για τη λειτουργία της εφαρμογής είναι απαραίτητη η εύρεση του ονόματος της οδού στην οποία βρίσκεται η συσκευή ανά μια συγκεκριμένη χρονική περίοδο. Για την έυρεση του ονόματος της οδού του σημείο Α με συντεταγμένες Χ Α = , Y A = χρησιμοποιούμε το εξής ερώτημα του Google API: &sensor=true Επειδή το JSON μήνυμα που επιστρέφεται είναι αρκετά μεγάλο παραθέτουμε τις 20 πρώτες γραμμές του: "results" : [ { "address_components" : [ { "long_name" : "11-15", "short_name" : "11-15", "types" : [ "street_number" ], { "long_name" : "Leoforos Vasisilis Amalias", "short_name" : "EO91", "types" : [ "route" ], { "long_name" : "Athens", 27

29 "short_name" : "Athens", "types" : [ "locality", "political" ], { "long_name" : "Athina", "short_name" : "Athina", "types" : [ "political" ], { "long_name" : "Athens", "short_name" : "Athens", "types" : [ "political" ], { "long_name" : "Kentrikos Tomeas Athinon", "short_name" : "Kentrikos Tomeas Athinon", "types" : [ "administrative_area_level_3", "political" ], { "long_name" : "Attica", "short_name" : "Attica", "types" : [ "administrative_area_level_2", "political" ],... Από το μήνυμα παίρνουμε το περιεχόμενο του πίνακα results-> address_components[1]-> long_name το οποίο είναι το όνομα του δρόμου που βρίσκονται οι συντεταγμένες του σημείου Χ.[8] 28

30 4. ΠΕΡΙΓΡΑΦΗ ΕΦΑΡΜΟΓΗΣ ANDROID ΚΑΙ ΕΞΥΠΗΡΕΤΗΤΗ 4.1 Σχήμα Αρχιτεκτονικής της Εφαρμογής Το σχήμα της αρχιτεκτονικής της εφαρμογής είναι το εξής: Εικόνα 4. Σχήμα αρχιτεκτονικής της εφαρμογής Όπως φαίνεται αποτελείται από 3 μέρη, την εφαρμογή του εξυπηρετητή, μία βάση δεδομένων και την εφαρμογή της κινητής συσκευής Android. 4.2 Παρουσίαση της εφαρμογής Αndroid Γενικές πληροφορίες Η εφαρμογή Android αναπτύχθηκε με χρήση του Android SDK το οποίο περιλλαμβάνει το περιβάλλον ανάπτυξης εφαρμογών Eclipse IDE με ενσωματωμένο ADT (Android Development Tools) το οποίο παρέχει όλες τις βιβλιοθήκες API και τα εργαλεία που είναι απαραίτητα για την κατασκευή, τη δοκιμή και εφαρμογές εντοπισμού σφαλμάτων για το Android. Το Android SDK είναι συμβατό με τα λειτουργικά συστήματα Windows και Mac OS. Οι γλώσσες προγραμματισμού που χρησιμοποιήθηκαν για την ανάπτυξη της εφαρμογής ήταν JAVA και xml. Οι δοκιμές κατά την ανάπτυξη και αποσφαλμάτωση της εφαρμογής έγιναν στη συσκευή Samsung Nexus S και σε λειτουργικό σύστημα Android version H εφαρμογή αποτελείται από 2 βασικά κομμάτια. Αυτό της καταγραφής των κυκλοφοριακών δεδομένων από το χρήστη και αυτό της εύρεσης της βέλτιστης 29

31 διαδρομής μεταξύ δύο σημείων που επιλέγει ο χρήστης. Για τη χρήση της εφαρμογής είναι απαραίτητο η εφαρμογή να έχει συνεχή σύνδεση στο διαδίκτυο είτε μέσω κάποιου δικτύου wifi είτε μέσω ασύρματου δικτύου 3G-4G. Στη συνέχεια ακολουθεί αναλυτική παρουσίαση της εφαρμογής και οδηγίες για τη χρήση της Κεντρικό μενού εφαρμογής Το κεντρικό μενού της εφαρμογής έχει την εξής μορφή: Εικόνα 5: Κεντρικό μενού εφαρμογής Όπως φαίνεται το κεντρικό μενού αποτελείται από μια επικεφαλίδα, μία εικόνα φόντου και τρία κουμπιά τα οποία δίνουν στον χρήστη τις εξής επιλογές: Monitor Track (Καταγραφή διαδρομής): Επιλέγεται απο τον χρήστη όταν θέλει να καταγράψει τα κυκλοφοριακά δεδομένα της διαδρομής του. Οδηγείται στην οθόνη καταγραφής διαδρομής που περιγράφεται παρακάτω. Find Route (Εύρεση Διαδρομής): Επιλέγεται απο τον χρήστη όταν θέλει να βρει την βέλτιστη διαδρομή μεταξύ δύο σημείων. Οδηγείται στην οθόνη εύρεσης διαδρομής που περιγράφεται στη συνέχεια. Close App (Κλείσιμο Εφαρμογής): Ο χρήστης εξέρχεται απο την εφαρμογή σταματώντας τη λειτουργία της. 30

32 4.2.3 Οθόνη καταγραφής διαδρομής (MonitorActivity) Εφόσον ο χρήστης επιλέξει στο κεντρικό μενού την επιλογή Monitor Track οδηγείται στην οθόνη καταγραφής διαδρομής: Εικόνα 6: Οθόνη καταγραφής κυκλοφοριακών δεδομένων εφαρμογής Η οθόνη αυτή όπως φαίνεται αποτελείται από έναν χάρτη και δύο κουμπιά (Start, Stop). Ο χάρτης χρησιμοποιείται από την εφαρμογή μέσω του Google Maps Android v2 API που περιγράφεται στο κεφάλαιο 2. Κατα την είσοδο του χρήστη σε αυτή την οθόνη μπορεί να επιλέξει μονάχα την επιλογή Start (ή να επιστρέψει στην προηγούμενη οθόνη με το πλήκτρο πίσω της συσκευής). Με την επιλογή Start ξεκινάει η καταγραφή της διαδρομής του χρήστη. Εφόσον έχει πατηθεί το Start δεν είναι είναι πια επιλέξιμο, ενώ αντίθετα η επιλογή Stop γίνεται επιλέξιμη. Η τοποθεσία του χρήστη εμφανίζεται στο χάρτη με ένα μπλε στίγμα όταν είναι ακίνητος και με ένα μπλε βέλος με τη κατεύθυνση του όταν κινείται. Όταν η συσκευή κινείται στον χάρτη εμφανίζεται με μπλε ίχνος η τροχιά που ακολουθείται. Επιπλέον όταν η συσκευή περνάει κοντά από κάποιο σημείο ενδιαφέροντος (τα οποία περιγράφονται αναλυτικά παρακάτω και σε αυτά γίνεται η καταγραφή κυκλοφοριακών δεδομένων) εμφανίζεται στο σημείο αυτό ένας κόκκινος δείκτης ( Marker ). Ένα στιγμιότυπο της εφαρμογής κατά την καταγραφή κυκλοφοριακών δεδομένων και ενώ η συσκευή βρίσκεται σε κίνηση είναι το εξής: 31

33 Εικόνα 7: Οθόνη καταγραφής κυκλοφοριακών δεδομένων κατά την καταγραφή Εφόσον ο χρήστης επιθυμεί να σταματήσει την καταγραφή δεδομένων τότε πρέπει είτε να πατήσει το κουμπί Stop είτε να πατήσει το πληκτρο πίσω της συσκευής. Εφόσον ο χρήστης σταματήσει την καταγραφή δεδομένων, εμφανίζεται μια ροδέλα φόρτωσης όσο η εφαρμογή στέλνει στον server τα δεδομένα που έχει συλλέξει και δεν έχουν σταλεί ακόμα. Έπειτα η επιλογή Start είναι ξανά διαθέσιμη για επιλογή Οθόνη εύρεσης διαδρομής (DirectionsActivity) Εφόσον ο χρήστης επιλέξει την επιλογή Find Route, οδηγείται στην οθόνη επιλογής των δύο σημείων για τα οποία θέλει να βρει τη βέλτιστη διαδρομή. Η οθόνη αυτή αποτελείται από τον χάρτη του Google Maps όπως αυτός προσφέρεται από το Google Maps API, το στίγμα της συσκευής πάνω στο χάρτη και ένα κουμπί Send το οποίο όμως δεν είναι επιλέξιμο: Εικόνα 8: Οθόνη επιλογής δύο σημείων για εύρεση διαδρομής Στη συνέχεια για να επιλέξει ο χρήστης τα δύο σημεία μεταξύ των οποίων θέλει να βρει τη διαδρομή ακολουθεί τα βήματα: Αρχικά ακουμπάει την οθόνη στο 1ο σημείο που τον ενδιαφέρει ώσπου να εμφανιστεί ενας κόκκινος δείκτης (Marker) στο σημείο και ένα παράθυρο με της επιλογές From Here, To Here και Cancel. Σε περίπτωση που το σημείο αυτό πρόκειται για το σημείο έναρξης της διαδρομής, πρέπει να επιλέξει την επιλογή From Here. 32

34 Στην περιπτωσση όπου το σημείο που επέλεξε πρόκειτε για το σημείο τερματισμού της διαδρομής τότε πρέπει να επιλέξει την επιλογή To Here. Σε περίπτωση λάθους μπορεί να επιλέξει Cancel και ο δείκτης διαγράφεται. Εφόσον ο χρήστης επιλέξει δύο σημεία, ένα έναρξης διαδρομής και ένα τερματισμού, η επιλογή Send στο κάτω μέρος της οθόνης γίνεται επιλέξιμη. Εφόσον ο χρήστης επιλέξει Send, στέλνεται το ερώτημα της διαδρομής στον Server και εφόσον δεχτεί απάντηση οδηγεί τον χρήστη στην επόμενη οθόνη παρουσίασης της βέλτιστης διαδρομής. Εάν ο χρήστης έχει επιλέξει κάποιο λάθος σημείο μπορεί να το διορθώσει ακουμπώντας τον κόκκινο δείκτη του σημείου και επιλέγοντας Delete στο παράθυρο που θα εμφανιστεί. Εικόνα 9: Επιλογή σημείου Εικόνα 10:Αποστολή ερωτήματος εύρεσης διαδρομής Οθόνη παρουσίασης βέλτιστης διαδρομής (RouteActivity) Αφότου ο χρήστης έχει ζητήσει την βέλτιστη διαδρομή μεταξύ δύο σημείων οδηγείται στην οθόνη παρουσίασης βέλτιστης διαδρομής η οποία αποτελείται από τον γνωστό χάρτη, ένα ίχνος της επιλεγμένης βέλτιστης διαδρομής και ένα άσπρο πεδίο στο κάτω μέρος της οθόνης στο οποίο ανγράφεται ο προβλεπόμενος χρόνος ολοκλήρωσης της διαδρομής όπως αυτός έχει υπολογιστεί με βάση τα δεδομένα που έχει διαθέσιμα η εφαρμογή. 33

35 Εικόνα 11:Προβολή βέλτιστης διαδρομής χωρίς κυκλοφοριακή συμφόρηση Το χρώμα του ίχνους της βέλτιστης διαδρομής είναι πράσινο για τα τμήματα της διαδρομής για τα οποία δεν υπάρχει καθόλου κυκλοφοριακή συμφόρηση, με γκρι χρώμα απεικονίζεται η μέτρια συμφόρηση και με κόκκινο χρώμα εμφανίζονται τα τμήματα της διαδρομής με μεγάλη κυκλοφοριακή συμφόρηση σύμφωνα πάντα με τα δεδομένα που έχουν συλλεχθεί από την εφαρμογή. Επιπλέον όταν ο χρήστης βρίσκεται σε αυτή την οθόνη γίνεται καταγραφή δεδομένων όπως και στην οθόνη καταγραφής δεδομένων. Δηλαδή παρουσιάζεται η πορεία που ακολουθεί με μπλε ίχνος και τα σημεία ενδιαφέροντος από τα οποία περνάει εμφανίζονται με κόκκινους δείκτες πάνω στον χάρτη. 4.3 Παρουσίαση του Server της εφαρμογής και της βάσης δεδομένων Γενικές Πληροφορίες Για τις ανάγκες της εφαρμογής, δημιουργήθηκε ένας Ubuntu Server και μια βάση δεδομένων MySQL σε ένα virtual machine στο σύστημα Okeanos του Εθνικού Μετσόβιου Πολυτεχνείου ( το οποίο δίνει τη δυνατότητα δημιουργίας δωρεάν λογαριασμού για φοιτητές. Ο Server αποτελεί web service με χρήση της γλώσσας PHP καθώς και του Apache Server. Ο Server υλοποιεί τις εξής λειτουργίες: Δέχεται ένα αίτημα από την εφαρμογή Android με όρισμα τις συντεταγμένες που βρίσκεται εκείνη τη στιγμή ο χρήστης και μέσω http request στη google maps βρίσκει σε ποιο δρόμο βρίσκεται. Δέχεται ένα αίτημα από την εφαρμογή Android με όρισμα τον δρόμο που βρίσκεται εκείνη τη στιγμή ο χρήστης, ελέγχει αν υπάρχει στη βάση και αν υπάρχει της επιστρέφει τα σημεία ενδιαφέροντος του εν λόγω δρόμου. Δέχεται δύο σημεία ενδιαφέροντος με τις συντεταγμένες τους, τον συνολικό χρόνο ανάμεσα σε αυτά, την ταχύτητα που πέρασε ο χρήστης από αυτά καθώς και το timestamp και τα αποθηκεύει στον πίνακα TrafficData καθώς και στον αντίστοιχο συνολικό πίνακα της ημέρας. Δέχεται ένα αίτημα από την εφαρμογή Android με όρισμα τις συντεταγμένες που βρίσκεται εκείνη τη στιγμή ο χρήστης και τις συντεταγμένες προορισμού και μέσω 34

36 http request στη Google Maps βρίσκει τις προτεινόμενες διαδρομές και επιλέγει τη βέλτιστη χρονικά διαδρομή βάση των κυκλοφοριακών δεδομένων. Ουσιαστικά ο Server είναι υπεύθυνος για όλες τις αιτήσεις στο Google Maps API (η οποία γίνεται με μηνύματα JSON) καθώς και για τη διαχείριση της βάσης δεδομένων Εξυπηρέτηση των Αιτημάτων της εφαρμογής Android από τον Server Ο Server είναι υπεύθυνος για την εξυπηρέτηση διάφορων αιτήσεων της εφαρμογής Android σε αυτόν και την αποστολή των κατάλληλων δεδομένων σε αυτή. Συγκεκριμένα έχουμε: Περίπτωση της καταγραφής δεδομένων: Ο Server δέχεται τα δεδομένα που του στέλνει η εφαρμογή Android και τα αποθηκεύει στον κατάληλο πίνακα της βάσης δεδομένων. Παραπάνω λεπτομέρειες θα αναφερθούν στο επόμενο υποκεφάλαιο του εν λόγω καφαλαίου. Περίπτωση αποστολής γρηγορότερης διαδρομής: Ο Server αποδέχεται από κάποιον χρήστη μια ερώτηση για μια διαδρομή η οποία περιλαμβάνει την τρέχουσα τοποθεσία του (longtitude,latitude) και την τοποθεσία στην οποία θέλει να κατευθυνθεί. Ο Server στο σημείο αυτό με τη χρήση του Google Directions API βρίσκει 3 διαδρομές. Επιπλέον κρατάει σε διαφορετικές μεταβλητές τον εκτιμώμενο χρόνο που επιστρέφει το Google Maps Api για την εκάστοτε διαδρομή. Ο εκτιμώμενος χρόνος της διαδρομής θα χρησιμοποιηθεί σαν παράγοντας συμφόρησης. Θα συγκριθεί με τον χρόνο εκτέλεσης μιας παρόμοιας τροχιας σύμφωνα με τα δεδομένα που έχουμε συλλέξει λαμβάνοντας υπόψιν την ώρα και τη μέρα που έχει συλλεχθεί η αντίστοιχη τροχιά. Ο αλγόριθμος αρχικά,ελέγχει στη βάση δεδομένων αν υπάρχουν παρόμοιες τροχιές την συγκεκριμένη ώρα και μέρα. Αν υπάρχουν και ο παράγοντας συμφόρησης είναι μικρός τότε η συντομότερη από αυτές τις τροχιές προτείνεται στο χρήστη. Αν ο παράγοντας συμφόρησης είναι μεγάλος τότε επιλέγουμε τη διαδρομή με το μικρότερο συνολικό χρόνο. Τέλος, σε περίπτωση που δεν υπάρχει στη βάση μας κάποια παρόμοια διαδρομή επιλέγεται απλά η κοντινότερη διαδρομή που δίνει το Google Maps API. Σε κάθε περίπτωση αποστέλλεται η προτεινόμενη τελική διαδρομή στον χρήστη με τη μορφή μηνύματος JSON. 35

37 4.3.3 Περιγραφή Βάσης Δεδομένων Tο σχήμα της MySQL Βάσης Δεδομένων της εφαρμογής στην πλευρά του Server είναι το εξής: Εικόνα 12. Σχήμα βάσης δεδομένων εφαρμογής Στην παραπάνω βάση περιέχονται οι ακόλουθοι πίνακες: Streets Ο πίνακας Streets περιέχει τα ονόματα των N δρόμων που επιλέχθηκαν. StreetMarks Ο πίνακας Streets συσχετίζεται με τον πίνακα StreetMarks, στον οποίο αποθηκεύονται τα σημεία ενδιαφέροντος που έχουν οριστεί. Κάθε στοιχείο του πίνακα αυτού αποτελείται από τις συντεταγμένες (Latitude,Longitude) δύο σημείων ενδιαφέροντος, το όνομα του δρόμου στον οποίο ανήκουν και τον προβλεπόμενο χρόνο που δίνει το Google Maps για αυτή την απόσταση. Με βάση τα στοιχεία αυτού του πίνακα γίνεται η καταγραφή των κυκλοφοριακών δεδομένων από τις διαδρομές των χρηστών. TrafficData Ο πίνακας TrafficData περιέχει τα κυκλοφοριακά δεδομένα που έχουν καταγραφεί. Σε αυτόν τον πίνακα αποθηκεύονται δυάδες σημείων ενδιαφέροντος τα οποία στέλνονται μέσω της εφαρμογής Android που χρησιμοποιεί ο χρήστης στο κινητό. Ο πίνακας αυτός αποτελείται από ένα μοναδικό id, τις συντεταγμένες(latitude,longitude) των δύο γεωγραφικών σημείων,τις ταχύτητες του οχήματος όταν διήλθε από τα σημεία ενδιαφέροντος, το χρόνο διέλευσης ανάμεσα στα δύο σημεία ενδιαφέροντος, το δρόμο που βρίσκονται τα σημεία και το timestamp. 36

38 Day (1-7) Οι πίνακες Day1 - Day7 περιέχουν τα συνολικά κυκλοφοριακά δεδομένα χωρισμένα ανά ημέρα και ζώνη ώρας. Το όνομα Day1 αντιστοιχεί στη Δευτέρα, το Day2 στην Τρίτη κλπ. Έτσι όταν εισέρχεται στο Server μια νέα διαδρομή από κάποιο χρήστη αντιστοιχίζεται στον πίνακα της αντίστοιχης ημέρας στην αντίστοιχη ζώνη ώρας. Ακόμα υπολογίζεται και αποθηκεύεται με κάθε νέα εισαγωγή ο μέσος όρος του χρόνου της εκάστοτε διαδρομής. Ουσιαστικά για κάθε δυάδα σημείων ενδιαφέροντος που αποστέλλονται από το χρήστη μέσω της διαδρομής που πραγματοποίησε, ανανεώνέται ο μέσος όρος της συγκεκριμένης διαδρομής και αυξάνεται το σύνολο των συνολικών καταγραφών της συγκεκριμένης διαδρομής κατά ένα. Ο πίνακας αποτελείται από τα εξής πεδία: τις συντεταγμένες των δύο σημείων ενδιαφέροντος,τον αριθμό των συνολικών καταγραφών της συγκεκριμένης απόστασης,την ζώνη ώρας και τον μέσο όρο του χρόνου της συγκεκριμένης απόστασης. 37

39 5. ΚΑΤΑΓΡΑΦΗ ΚΥΚΛΟΦΟΡΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ 5.1 GPS και χρήση του στην καταγραφή κυκλοφοριακών δεδομένων Γενικές πληροφορίες για GPS Το GPS (Global Positioning System), Παγκόσμιο Σύστημα Θεσιθεσίας είναι ένα παγκόσμιο σύστημα εντοπισμού θέσης (3-Δ), χρόνου και ταχύτητας για ακίνητο και κινούμενο δέκτη σε πολύ μικρό χρονικό διάστημα (από μερικά δευτερόλεπτα μέχρι λίγες ώρες ανάλογα με το είδος των εφαρμογών). Το GPS βασίζεται σε ένα "πλέγμα" εικοσιτεσσέρων δορυφόρων της Γης, στους οποίους υπάρχουν ειδικές συσκευές, οι οποίες ονομάζονται "δέκτες GPS". Οι δέκτες αυτοί παρέχουν ακριβείς πληροφορίες για τη θέση ενός σημείου, το υψόμετρό του, την ταχύτητα και την κατεύθυνση της κίνησης του. Επίσης, σε συνδυασμό με ειδικό λογισμικο χαρτογράφησης μπορούν να απεικονίσουν γραφικά τις πληροφορίες αυτές. Το GPS αρχικά δημιουργήθηκε αποκλειστικά για στρατιωτική χρήση και ανήκε στη δικαιοδοσία του αμερικανικού Υπουργείου Εθνικής Άμυνας. Απαιτήθηκαν αρκετές δεκαετίες, μέχρι δηλαδή τα μέσα της δεκαετίας του 1990, ώστε το σύστημα GPS να εξελιχθεί, να γίνει ιδιαίτερα ακριβές και να αρχίσει να διατίθεται για ελεύθερη χρήση από το ευρύ κοινό. Τα τελευταία χρόνια παρουσιάζεται μεγάλη εξάπλωση της χρήσης του GPS, η οποία οφείλεται στη διάδοση των οικονομικά προσιτών, φορητών δεκτών GPS για πεζούς ή οχήματα και των γενικών υπολογιστικών συσκευών (όπως τα PDA) με ενσωματωμένο δέκτη GPS. Συγκεκριμένα το GPS χρησιμοποιείται ευρύτερα για την πλοήγηση πάνω σε ένα χάρτη. Για να έχουμε έναν πλοηγό στο αυτοκίνητο, αρκεί να εφοδιαστούμε με μία κατάλληλη συσκευή η οποία να έχει ενσωματωμένο GPS. Από την δεκαετία του 1990, πολλοί κατασκευαστές αυτοκινήτων άρχισαν να τοποθετούν στην κεντρική κονσόλα του αυτοκινήτου μία οθόνη, η οποία εκτός από τις λειτουργίες που αφορούν στο αυτοκίνητο (ραδιόφωνο,κατανάλωση,υπολογιστής ταξιδιού κτλ.), μπορεί να μετατραπεί και σε πλοηγό. Για να γίνει βέβαια αυτό, ο οδηγός πρέπει να έχει εφοδιαστεί με τον απαραίτητο εξοπλισμό (GPS, μονάδα, κεραία κτλ). Επιπλέον ο οδηγός πρέπει να ενσωματώσει στη συσκευή με κάποιον τρόπο τους χάρτες που τον αφορούν. Φυσικά όλα τα παραπάνω πλέον ενσωματώνονται σε μία συσκευή-πλοηγό (φορητό υπολογιστής τσέπης, ένα ρολόι ή ακόμα πιο πρόσφατα ένα έξυπνο κινητό τηλέφωνο smartphone) το οποίο τοποθετήται σε κάποιο βολικό για την παρακολούθησή του σημείο στο εσωτερικό του αυτοκινήτου, ώστε να καθοδηγείται από αυτό. Το πλεονέκτημα της κινητής συσκευής που χρησιμοποιεί το GPS είναι η φορητότητα της, εκτός από το αυτοκίνητο, μπορεί να χρησιμοποιηθεί από τον κάτοχο του και αλλού,δηλαδή για μια διαδρομή με τα πόδια, σε ένα σκάφος κτλ GPS στις συσκευές ANDROID Όπως αναφέρεται και παραπάνω, σημαντική εξέλιξη του GPS ήταν η ενσωμάτωση του σε φορητές συσκευές με κύριο στόχο την πλοήγηση χρήστη τους. Οι φορητές συσκευές GPS γνώρισαν επιτυχία και οι πωλήσεις τους έφτασαν στο απόγειο τους στα μέσα της δεκαετίας του Το δεύτερο τεράστιο βήμα της τεχνολογίας GPS ήρθε λίγο αργότερα, με την εξέλιξη των έξυπνων κινητών (smartphones) και την ενσωμάτωση της σε αυτά. Έτσι οι φορητές συσκευές GPS άρχισαν να παραγκωνίζονται καθώς όλο και περισσότερες εφαρμογές πλοήγησης για smartphones έκαναν την εμφάνιση τους. Επειδή η τοποθεσία της συσκευής μπορεί να φανεί χρήσιμη σε πλήθος εφαρμογών, το GPS είναι ένα βασικό εργαλείο των smartphones και οι κατασκευαστές των λειτουργικών τους συστημάτων έχουν προνοήσει να παρέχουν στους προγραμματιστές 38

40 εφαρμογών τις κατάλληλες βιβλιοθήκες για τη χρήση του. Το λειτουργικό σύστημα Αndroid διαθέτει τα απαραίτητα πακέτα(packages) για χρήση όλων των λειτουργιών του GPS. To Android δίνει στις εφαρμογές πρόσβαση στις υπηρεσίες τοποθεσίας της συσκευής μέσω των κλάσεων του πακέτου android.location. Το βασικό αντικείμενο του framework είναι η υπηρεσία του συστήματος LocationManager, η οποία επιτρέπει στα APIs να προσδιορίσουν τη θέση και την κατεύθυνση της συσκευής (αν αυτά είναι διαθέσιμα). Τα εργαλεία που προσφέρει το Android για την εύρεση της τοποθεσίας της συσκευής μέσω της βιβλιοθήκης android.location, συνοπτικά είναι: LocationListener Location LocationManager LocationProvider Το συγκεκριμένο Interface χρησιμοποιείται για την αποδοχή ειδοποιήσεων από τον LocationManager όταν η τοποθεσία του χρήστη αλλάζει. Αποτελεί μια κλάση δεδομένων η οποία αναπαριστά μια γεωγραφική τοποθεσία. Αυτή η κλάση παρέχει πρόσβαση στις υπηρεσίες τοποθεσίας του συστήματος. Αποτελέι μια υπερκλάση για παρόχους τοποθεσίας. Πίνακας 1: Εργαλεία Android για εύρεση τοποθεσίας Όπως και άλλες υπηρεσίες συστήματος, ο LocationManager απαιτεί αρχικοποίηση. Η εφαρμογή θα ζητήσει ένα στιγμιότυπο από το σύστημα καλώντας την getsystemservice (Context.LOCATION_SERVICE). Η μέθοδος επιστρέφει ένα αντικείμενο που αντιστοιχεί σε ένα στιγμιότυπο του LocationManager. Εφόσον, η εφαρμογή δημιουργήσει ένα αντικείμενο LocationManager, είναι σε θέση να κάνει τρία πράγματα: Ερώτημα για τη λίστα όλων των LocationProviders (παρόχους τοποθεσίας) για την τελευταία γνωστή θέση του χρήστη. Έναρξη / κατάργηση περιοδικών ενημερώσεων για την τρέχουσα τοποθεσία του χρήστη από έναν πάροχο τοποθεσίας (που καθορίζονται είτε από τα κριτήρια ή το όνομα). Επιλογή για συγκεκριμένη λειτουργία της εφαρμογής εάν η συσκευή έρχεται σε μια συγκεκριμένη απόσταση (που ορίζεται από την ακτίνα σε μέτρα) μιας δεδομένης τοποθεσίας (με γεωγραφικές συντεταγμένες latitude / longitude). [9] 5.2 Ορισμός Σημείων Ενδιαφέροντος Γενικές Πληροφορίες Σημείων Ενδιαφέροντος Στο αρχικό στάδιο του σχεδιασμού της εφαρμογής επιλέχθηκαν κάποιες κεντρικές οδικές αρτηρίες με σκοπό την καταγραφή των κυκλοφοριακών τους δεδομένων, τα οποία αποτέλεσαν το δείγμα των μετέπειτα πειραμάτων. Κάποιες από τις κεντρικές οδικές αρτηρίες που επιλέχθηκαν ήταν οι εξής: {Πατησίων, Κηφισίας, Πανεπιστημίου, Ακαδημίας, Λεωφόρος Αλεξάνδρας, κλπ. Για την επιλογή μιας οδικής αρτηρίας με σκοπό την καταγραφή των κυκλοφοριακών δεδομένων της πρέπει να οριστούν σημεία 39

41 ενδιαφέροντος πάνω σε αυτή. Για παράδειγμα κάποια ενδεικτικά σημεία ενδιαφέροντος για την οδό Πανεπιστημίου είναι τα εξής: Εικόνα 13: Ενδεικτικά σημεία ενδιαφέροντος Το βασικό κριτήριο της επιλογής των σημείων ενδιαφέροντος (πχ. Α και Β) είναι πως η τοποθεσία του σημείου πρέπει να βρίσκεται κοντά σε μια οδική διασταύρωση διότι το Google Maps API επιλέγει τα δικά του σημεία σε διασταυρώσεις. Με αυτόν τον τρόπο όταν ένα όχημα περνάει από τα σημεία ενδιαφέροντος καταγράφεται ο χρόνος ανάμεσα στις δυάδες αυτών Δημιουργία Βάσης Δεδομένων Οδικών Αξόνων και Σημείων Ενδιαφέροντος Για την αποθήκευση των οδικών αξόνων και των σημείων ενδιαφέροντος δημιουργήθηκε μια βάση δεδομένων MySQL με όνομα Traffic. Αυτή περιέχει τον πίνακα Streets, ο οποίος αποτελείται από ένα πεδίο (Name) στο οποίο αποθηκεύεται το όνομα του εκάστοτε δρόμου που επιλέγεται για εισαγωγή σημείων ενδιαφέροντος. Ένα ενδεικτικό παράδειγμα του πίνακα είναι το εξής: Εικόνα 14:Πίνακας Streets της βάσης δεδομένων 40

42 Ακόμα, υπάρχει ο πίνακας StreetMarks ο οποίος περιέχει τα σημεία ενδιαφέροντος που έχουν οριστεί ανά δυάδες, συσχετίζοντας τα με το δρόμο που ανήκουν. Τα σημεία εισάγονται σε δυάδες διότι συγκρίνονται οι χρόνοι ανάμεσα στις δυάδες σημείων ενδιαφέροντος προκειμένου να βρεθεί το μέγεθος της κίνησης. Συγκεκριμένα ο πίνακας περιέχει τα εξής πεδία: StreetName latidude1 longitude1 latidude2 longitude2 time Το όνομα του δρόμου που περιέχονται τα σημεία ενδιαφέροντος Η συντεταγμένη πάνω στον άξονα x του 1ου σημείου Η συντεταγμένη πάνω στον άξονα y του 1ου σημείου Η συντεταγμένη πάνω στον άξονα x του 2ου σημείου Η συντεταγμένη πάνω στον άξονα y του 2ου σημείου Ο ενδεικτικός χρόνος που μας δίνει Google Maps Api για την απόσταση των δύο σημείων. Ο χρόνος υπολογίζεται βάση των ορίων ταχύτητας του εκάστοτε δρόμου. Πίνακας 2: Ανάλυση πίνακα StreetMarks Η μορφή με την οποία αποθηκεύονται τα σημεία ενδιαφέροντος είναι η εξής: Ορίζεται ο δρόμος στον οποίο θα περιέχονται τα σημεία ενδιαφέροντος προς εισαγωγή. Έπειτα αποθηκεύεται το όνομα του στο πεδίο StreetName Εισάγονται οι συντεταγμένες του πρώτου σημείου (latitude1,longitude1) Εισάγονται οι συντεταγμένες του δεύτερου σημείου (latitude2,longitude2) Εισάγεται ο προβλεπόμενος χρόνος που επιστρέφει το Google Maps API για την απόσταση των δύο σημείων ενδιαφέροντος 41

43 Ένα ενδεικτικό παράδειγμα του πίνακα StreetMarks είναι το εξής: Εικόνα 15:Πίνακας Street Marks βάσης δεδομένων 5.3 Περιγραφή της λειτουργίας της καταγραφή κυκλοφοριακών δεδομένων Καταγραφή κυκλοφοριακών δεδομένων μέσω εφαρμογής Android Όπως αναφέρθηκε, τo πρώτο σκέλος της εφαρμογής αφορά την καταγραφή κυκλοφοριακών δεδομένων από το χρήστη. Αυτό ο χρήστης μπορεί να το επιτύχει είτε με τη χρήση της ξεχωριστής λειτουργίας Monitor Track την οποία επιλέγει από το κεντρικό μενού και έχει ως αποκλειστική λειτουργία την καταγραφή δεδομένων, είτε κατά τη λειτουργία εύρεσης διαδρομής Find Route στην οποία εφόσον βρεθεί η βέλτιστη διαδρομή καταγράφεται η πορεία του χρήστη. Εικόνα 16:Επιλογή Monitor Track από κεντρικό μενού Tο xml αρχείο που αντιστοιχεί στην εικόνα του κεντρικού μενού ονομάζεται activity_main.xml. Σε αυτό το αρχείο έχουν οριστεί όσα φαίνονται στην εικόνα του κεντρικού μενού της εφαρμογής. Δηλαδή η εικόνα φόντου, η επικεφαλίδα και τα κουμπιά με τα οποία αλληλεπιδρά ο χρήστης. Για παράδειγμα το κουμπί Monitor Track ορίζεται: 42

44 <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginleft="50dip" android:onclick="monitoring" /> Αναλυτική περιγραφή κλάσεων MonitorActivity, MonitorService Αρχικά, για την κατανόηση των όρων που θα αναλυθούν παρακάτω παρατίθεται ο εξής πίνακας: Activity Η activity είναι μια διαδικασία, επικεντρωμένη σε μια συγκεκριμένη ενέργεια που μπορεί να εκτελέσει ο χρήστης. Σχεδόν όλες οι activities αλληλεπιδρούν με το χρήστη, γι αυτό η κλάση Activity αναλαμβάνει τη δημιουργία ενός νέου παραθύρου στο οποίο ο προγραμματιστής δημιουργεί το δικό του γραφικό. Service Μια Service χρησιμοποιείται για την εκτέλεση μια διαδικασίας στο background της εφαρμογής.(ακόμα και αν ο χρήστης δεν αλληλεπιδρά άμμεσα με την εφαρμογή) FragmentActivity Binder Message Handler Βασική κλάση για τις δραστηριότητες που θέλουν να χρησιμοποιήσουν αντικείμενα Fragment όπως ο χάρτης του Google Maps API. Βασική κλάση για τον χειρισμό κάποιου αντικειμένου, ο πυρήνας του μηχανισμού κλήσης μιας απομακρισμένης διαδρικασίας που ορίζεται απο την IBinder. Η κλάση αυτή είναι μια υλοποίηση του IBinder που είναι απαραίτητη για την υλοποιηση ενος τέτοιου αντικειμένου. Μέσω του Message Handler μπορούν Activities και Services της εφαρμογής να επικοινωνούν μεταξύ τους μέσω μηνυμάτων. Τα μηνύματα αποστέλλονται μέσω MessageQueue. Πίνακας 3: Βασικές έννοιες βιβλιοθηκών Android 43

45 Με την επιλογή του Monitor Track από τον χρήστη, δηλαδή με την επιλογή του κουμπιού Monitor Track καλείτε η συνάρτηση Monitoring η οποία ορίζεται(android:onclick="monitoring"). Στη συνάρτηση αυτή δημιουργείται μία νέα activity, η οποία ονομάζεται MonitorActivity, εκκινείται και οδηγεί τον χρήστη στην οθόνη που αντιστοιχεί σε αυτή. Η οθόνη αυτή είναι η οθόνη καταγραφής κυκλοφοριακών δεδομένων η οποία περιγράφεται στο κεφάλαιο O κώδικας της MonitorActivity βρίσκεται στο αρχείο MonitorActivity.java και όπως κάθε activity στο android αποτελεί μια java κλάση (με ονομα MonitorActivity). Συγκεκριμένα η κλάση MonitorActivity επεκτείνει την υπερκλάση FragmentActivity αφού περιέχει ένα Fragment, το οποίο είναι ο χάρτης του GoogleMaps API. Το αρχείο xml που αντιστοιχεί στην οθόνη καταγραφής δεδομένων και στην κλάση MonitorActivity είναι το activity_monitor.xml. Σε αυτό ορίζονται ο χάρτης του GoogleMaps API και τα δύο κουμπια Start και Stop. Κατα τη δημιουργία της activity, εκτελείται η συνάρτηση oncreate() η οποία δημιουργεί όλα τα αντικείμενα που είναι εμφανή στον χρήστη και έχουν οριστεί στο αρχείο activity_monitor.xml. Παράλληλα στη συνάρτηση αυτή υλοποιούνται οι λειτουργίες των κουμπιών Start και Stop. Με την επιλογή του Start από τον χρήστη αρχικά αλλάζουν οι ρυθμίσεις των κουμπιών από το xml, το κουμπί Start γίνεται μη επιλέξιμο, ενώ το κουμπί Stop επιλέξιμο. Η βασική λειτουργία που εκτελείται είναι η δημιουργία ενός Service το οποίο είναι ουσιαστικό υπεύθυνο για την καταγραφή των κυκλοφοριακών δεδομένων. Το Service αυτό ονομάζεται MonitorService, υλοποιείται στο αρχείο MonitorService.java και αποτελεί την κλάση MonitorService η οποία επεκτείνει την υπερκλάση Service (όπως κάθε service στο Android). Επειδή η MonitorActivity είναι η κλάση που είναι υπεύθυνη για ότι εμφανίζεται στην οθόνη του χρήστη και η MonitorService η κλάση που ουσιαστικά κάνει τη καταγραφή των δεδομένων πρέπει να έχουν τη δυνατότητα να ανταλλάσσουν δεδομένα μεταξύ τους. Για το λόγο αυτό χρησιμοποιήθηκε η δυνατότητα που παρέχει το android για τη δημιουργία δεσμού (bind) μεταξύ activity και service. O δεσμός αυτός υλοποιείται με την δημιουργία ένος διαχειριστή μηνυμάτων(handler) δίνει τη δυνατότητα στην activity να δέχεται μηνύματα από την MonitorService. Αναλυτική περιγραφή της λειτουργίας καταγραφής κυκλοφοριακών δεδομένων H MonitorService κατά την εκκίνηση της με την επιλογή του Start από τον χρήστη, δημιουργεί ένα Thread, το οποίο με τη σειρά του δημιουργεί ένα αντικείμενο της κλάσης LocationTrack η οποία θα είναι υπεύθυνη για τις λειτουργίες εύρεσης τοποθεσίας της εφαρμογής. Η δημιουργία του ξεχωριστού thread έχει ως στόχο τη βέλτιστη λειτουργία του LocationManager που αναφέρεται στην αρχή του κεφαλαίου, χωρίς να επηρεάζει την συνολική λειτουργία της εφαρμογής. Εφόσον η LocationTrack είναι υπεύθυνη για την εύρεση της τοποθεσίας του κινητού, υλοποιεί (implements) το interface LocationListener. O LocationListener χρησιμοποιείται για τη λήψη ενημερώσεων από τον LocationManager (βλ ) για την αλλαγή θέσης της συσκευής. Κατά την αλλαγή τοποθεσίας της συσκευής κατά τουλάχιστον 1 μέτρο ή περιοδικά με τον χρόνο εκτελούνται οι εξής ενέργειες: Στέλνεται ένα μήνυμα JSON στον server το οποίο περιέχει τις νέες συντεταγμένες της συσκευής latitude/longitude (γεωγραφικό πλάτος/γεωγραφικό μήκος). Η απάντηση που δέχεται η εφαρμογή από τον server (πάλι μέσω JSON) περιέχει όνομα της οδού στην οποία βρίσκεται η συσκευή. Σε περίπτωση που ο δρόμος στον οποίο βρίσκεται η συσκευή είναι διαφορετικός από τον προηγούμενο που έχει καταγραφεί στην προηγούμενη αλλαγή τοποθεσίας, στέλνεται το όνομα της οδού εκ νέου στον server και αυτός 44

46 επιστρέφει στο κινητό με τη σειρά του τα σημεία ενδιαφέροντος του εν λόγω δρόμου. Έπειτα εκτελούνται οι παρακάτω ενέργειες: Αποστέλλονται στο Server τα σημεία ενδιαφέροντος με που είχαν καταγραφεί στον προηγούμενο δρόμο από τη διαδρομή του χρήστη Ο Server αποστέλλει στην εφαρμογή τα σημεία ενδιαφέροντος του νέου δρόμου. Αντίθετα, όταν ο δρόμος στον οποίο βρίσκεται η συσκευή ταυτίζεται με τον προηγούμενο αυτό το βήμα παραλείπεται. Έπειτα, ελέγχεται αν η τρέχουσα τοποθεσία είναι κοντά σε κάποιο σημείο ενδιαφέροντος. Ο υπολογισμός αυτός γίνεται με τη χρήση της συνάρτησης distanceto του Google Maps API. Στην περίπτωση που κάποιο σημείο βρίσκεται κοντά στην τρέχουσα τοποθεσία, προστίθεται σε ένα Arraylist με όλες τις απαραίτητες πληροφορίες (συντεταγμένες, ταχύτητα, timestamp). Η παραπάνω διαδικασία συνεχίζεται όσο ο δρόμος που βρίσκεται ο χρήστης δεν αλλάζει. Όταν ο χρήστης επιλέξει το κουμπί Stop αποστέλλονται με τον ίδιο τρόπο τα σημεία ενδιαφέροντος του τελευταίου δρόμου που είχαν προλάβει να καταγραφούν Τέλος, με χρήση ενός binder και ενός message handler η Android Service στέλνει σε πραγματικό χρόνο την τοποθεσία του χρήστη και τα σημεία ενδιαφέροντος που έχει διέλθει στην Android Activity. Με τη σειρά της, η Android Activity προβάλλει στο χάρτη με μια μπλε γραμμή την διαδρομή που έχει πραγματοποιήσει μέχρι εκείνη τη στιγμή ο χρήστης και προσθέτει ένα κόκκινο σημείο σε κάθε σημείο ενδιαφέροντος που έχει διέλθει. Ένα ενδεικτικό παράδειγμα δίνεται στην παρακάτω εικόνα: Εικόνα 17: Εμφάνιση σημείων ενδιαφέροντος κατά την καταγραφή δεδομένων Ο χρήστης έχει διέλθει από τρία σημεία ενδιαφέροντος πάνω στη Λεωφόρο Κηφισίας. [10] 45

47 5.3.2 Λειτουργία του Server στην καταγραφή κυκλοφοριακών δεδομένων Η λειτουργία του Server σχετικά με την καταγραφή των κυκλοφοριακών δεδομένων των χρηστών, χωρίζεται σε δύο μέρη: 1. Την παροχή πληροφοριών στην εφαρμογή Android προκειμένου εκείνη να μπορεί να συσχετίσει την διαδρομή που πραγματοποιεί ο χρήστης με τα σημεία ενδιαφέροντος που έχουν οριστεί στη βάση δεδομένων 2. Την αποθήκευση των κυκλοφοριακών δεδομένων στους πίνακες TrafficData και Day(1-7) με την μορφή που έχουμε ορίσει Παροχή Πληροφοριών στην Εφαρμογή Android Κατά την επιλογή της καταγράφης της διαδρομής του χρήστη μέσω της εφαρμογής Android πρέπει να παρέχονται τα σημεία ενδιαφέροντος που έχουν οριστεί στη βάση δεδομένων. Για να πραγματοποιηθεί αυτό, πρέπει να έχει τη δυνατότητα η εφαρμογή ανά πάσα στιγμή να γνωρίζει σε ποιον οδικό άξονα βρίσκεται ο χρήστης καθώς και τα σημεία ενδιαφέροντος που υπάρχουν πάνω σε αυτόν (αν έχουν οριστεί).για τις παραπάνω πληροφορίες δημιουργήθηκαν οι εξής δύο λειτουργίες: Εύρεση οδικού άξονα στον οποίο βρίσκεται ο χρήστης: Η εφαρμογή Android στέλνει περιοδικά τις συντεταγμένες της τοποθεσίας του χρήστη μέσω http αιτήματος στον Server με tag= findstreet. Ο Server μέσω της συνάρτησης findstreet(latitude,longitude), η οποία δέχεται ως όρισμα τις συντεταγμένες του χρήστη και βρίσκει το όνομα του δρόμου στον οποίο βρίσκεται. Συγκεκριμένα, για να βρεθεί το όνομα του δρόμου που βρίσκεται ο χρήστης πραγματοποιούμε την εξής http αίτηση στο Google Maps API με ορίσματα τις συντεταγμένες της τοποθεσιας του χρήστη: or=true Η απάντηση που δίνει αυτό το ερώτημα είναι ένα μήνυμα JSON που με την κατάλληλη αποκωδικοποίηση εξάγεται η διεύθυνση της τοποθεσίας του χρήστη. Το αρχικό μέρος της απάντησης της παραπάνω αίτησης για συντεταγμένες , είναι η εξής: 46

48 Εικόνα 18: Παράδειγμα Μηνύματος JSON από Google Maps Με αυτό τον τρόπο λοιπόν προσδιορίζεται κάθε στιγμή το όνομα του δρόμου στον οποίο βρίσκεται ο χρήστης. Εύρεση σημείων ενδιαφέροντος πάνω σε ένα οδικό άξονα: Αφού πλέον η εφαρμογή γνωρίζει ανά πάσα στιγμή τον δρόμο στον οποίο βρίσκεται ο χρήστης, το μόνο που απομένει είναι να γνωρίζει και τα σημεία ενδιαφέροντος του δρόμου αυτού. Για αυτό το λόγο δημιουργήθηκε μια λειτουργία στον Server μέσω της οποίας αποστέλονται τα σημεία ενδιαφέροντος ενός δρόμου. Ειδικότερα, μέσω http αιτήματος από την εφαρμογή στο Server με όρισμα το όνομα του δρόμου που θα εξετάστει και tag= StreetName καλείται η συνάρτηση db->findstreet με όρισμα το όνομα του δρόμου που βρίσκεται ο χρήστης. Αυτό που πρακτικά κάνει η συνάρτηση αυτή είναι να εκτελεί το παρακάτω ερώτημα SQL στον πίνακα StreetMarks που περιέχει τα σημεία ενδιαφέροντος: mysql_query("select DISTINCT latitude1,longtitude1 FROM `StreetMarks`,Streets WHERE Streets.name='$streetName' and Streets.name=StreetMarks.StreetName"); Με αυτόν τον τρόπο επιτυγχάνεται η εύρεση όλων των διαφορετικών σημείων ενδιαφέροντος από μια φορά ή κενό αν δεν υπάρχει κανένα σημείο ενδιαφέροντος στον συγκεκριμένο δρόμο. 47

49 Αποθήκευση των Κυκλοφοριακών Δεδομένων στη Βάση Δεδομένων Όταν ο χρήστης ολοκληρώσει την διαδρομή του και επιλέξει το κουμί Stop στην εφαρμογή Android τότε αποστέλονται διαδοχικά όλες οι δυάδες των σημείων ενδιαφέροντος από το οποία διήλθε ο χρήστης. Για την αποστολή των κυκλοφοριακών δεδομένων χρησιμοποιούνται διαδοχικά http αιτήματα τα οποία αποστέλλουν όλες τις δυάδες σημείων ενδιαφέροντος στο Server με τις εξής πληροφορίες: latidude1: Η συντεταγμένη x του 1ου σημείου ενδιαφέροντος longitude1: Η συντεταγμένη y του 1ου σημείου ενδιαφέροντος speed1: Η ταχύτητα που διήλθε ο χρήστης από το 1ο σημείο ενδιαφέροντος timestamp1: Η ημερομηνία και η ώρα που διήλθε ο χρήστης από το 1ο σημείο ενδιαφέροντος latitude2: Η συντεταγμένη x του 2ου σημείου ενδιαφέροντος longitude2: Η συντεταγμένη y του 2ου σημείου ενδιαφέροντος speed2: Η ταχύτητα που διήλθε ο χρήστης από το 2ο σημείο ενδιαφέροντος timestamp2: Η ημερομηνία και η ώρα που διήλθε ο χρήστης από το 2ο σημείο ενδιαφέροντος address:το όνομα του δρόμου που βρίσκονται τα δύο σημεία ενδιαφέροντος Αφού ο Server παραλάβει τις παραπάνω πληροφορίες υπολογίζει μέσω των δύο timestamp το χρόνο που χρειάστηκε ο χρήτης για να διανύσει την απόσταση μεταξύ των δύο σημείων. Έπειτα μέσω της συνάρτησης storepath αποθηκέυεται η εγγραφή στον πίνακα TrafficData που περιέχει όλες τις έγγραφες όλων των ημερών και ωρών καθώς και στον αντίστοιχο πίνακα Day(1-7 ανάλογα με την μέρα) στην κατάλληλη ζώνη ώρας. 48

50 6. ΕΥΡΕΣΗ ΚΑΙ ΔΡΟΜΟΛΟΓΗΣΗ ΓΡΗΓΟΡΟΤΗΡΗΣ ΔΙΑΔΡΟΜΗΣ 6.1 Γενική περιγραφή λειτουργίας εύρεσης διαδρομής Βασική στόχος της εφαρμογής είναι η εύρεση της βέλτιστης χρονικά διαδρομής η οποία επιλέγεται με τη χρήση των κυκλοφοριακών δεδομένων που συλλέγει η ίδια με τον τρόπο που περιγράφεται στο προηγούμενο κεφάλαιο. Όπως αναφέρεται παραπάνω, ο χρήστης της εφαρμογής αποστέλλει εύκολα έναν αίτημα εύρεσης διαδρομής πάνω στο χάρτη μεταξύ δύο σημείων. Έπειτα εμφανίζεται σε αυτόν η γρηγορότερη διαδρομή σύμφωνα με στοιχεία που έχουν συλλεχθεί, καθώς και ο προβλεπόμενος χρόνος ολοκλήρωσης της διαδρομής. Επιπλέον σύμφωνα με τον χρωματισμό της διαδρομής παρουσιάζονται στον χρήστη τα σημεία της διαδρομής στα οποία πιθανώς θα συναντήσει συμφόρηση. Στο παρόν κεφάλαιο περιγράφεται αναλυτικά η υλοποίηση των λειτουργιών αυτών. 6.2 Λειτουργία εύρεσης βέλτιστης διαδρομής εφαρμογής Android Αποστολή αιτήματος εύρεσης διαδρομής μεταξύ δύο σημείων Ο χρήστης με την επιλογή Find Route από το κεντρικό μενού οδηγείται στην οθόνη επιλογής σημείων για εύρεση διαδρομής. Αυτή η οθόνη δημιουργείται από την κλάση DirectionsActivity η οποία επεκτείνει την υπερκλάση FragmentActivity καθώς περιέχει και χειρίζεται ως αντικείμενο Fragment το χάρτη του Google maps. Πέρα από το βασικό Fragment του Google maps στο xml αρχείο activity_directions.xml το οποίο αντιστοιχεί στην κλάση DirectionsActivity, ορίζεται και το κουμπί Send το οποίο βρίσκεται στο κάτω μέρος της οθόνης και αποστέλει το αίτημα του χρήστη. Για να χρησιμοποιείσει η κλάση κάποια εργαλεία που έχουν σχεδιαστεί για την χρήση του χάρτη από τον χρήστη της εφαρμογής υλοποιεί τα interfaces OnMapClickListener, OnMapLongClickListener, και OnMarkerClickListener. Η κλάση DirectionsActivity πέρα από την δημιουργία της γραφικής διεπαφής με την οποία αλληλεπιδρά ο χρήστης, είναι υπεύθυνη και για τις παρακάτω λειτουργίες: Με το παρατεταμένο άγγιγμα της οθόνης από τον χρήστη καλείται η συνάρτηση onmaplongclick() η οποία αρχικά ελέγχει αν έχουν επιλεχθεί ήδη δύο σημεία από τον χρήστη. Εάν δεν έχουν επιλεχθεί τα δύο σημεία τότε δημιουργείται ένα μικρό παράθυρο (popup window) το οποίο αποτελείται από τρία κουμπιά που είναι ορισμένα στο xml αρχείο popup.xml. Αυτά τα τρία κουμπιά είναι το From Here, To Here και το Cancel. Με την επιλογή του χρήστη είτε του From Here είτε του To Here δημιουργείται στην οθόνη ένα αντικείμενο Marker και ταυτόχρονα αποθηκεύονται στην αντίστοιχη μεταβλητή οι συντεταγμένες έναρξης διαδρομής ή προορισμού αντίστοιχα. Όταν συμπληρωθούν και οι δύο μεταβλητές με τις συντεταγμένες αφετειρίας και προορισμού. Το κουμπι Send γίνεται επιλέξιμο. Επίπλέον σε αυτό το στάδιο το παρατεταμένο πάτημα στον χάρτη δεν έχει κανένα αποτέλεσμα. Για να διαγράψει κάποιο λανθασμένο σημείο ο χρήστης επιλέγει με απλό άγγιγμα τον Marker που αντιστοιχεί στο σημείο αυτό. Τότε γίνεται κλήση της συνάρτησης onmarkerclick() η οποία αποτελεί κλάση του interface OnMarkerClickListener και εμφανίζεται ξανά μενού στον χρήστη που του δίνει την επιλογή να διαγράψει το 49

51 σημείο. Σε περίπτωση που ο χρήστης επιλέξει διαγραφή του σημείου τότε η αντίστοιχη μεταβλητή που περιείχε τις συντεταγμένες του αδειάζει. Εφόσον ο χρήστης επιλέξει το Send, δημιουργείται και στέλνεται στον server ένα JSON μήνυμα το οποίο περιέχει τις συντεταγμένες των δυο σημείων που επιλέχθηκαν από το χρήστη. Δηλαδή στέλνονται τα γεωγραφικά πλάτη και μήκη (latitude/longitude) των σημείων αφετηρίας και προορισμού. Στη συνέχεια δέχεται απάντηση JSON έναν πίνακα από συμβολοσειρές. Στην πρώτη θέση του πίνακα περιέχεται κωδικοποιημένη η διαδρομή που έχει επιλέξει ο server ως βέλτιστη. Στην δεύτερη θέση του πίνακα εισάγεται ο προβλεπόμενος χρόνος ολοκλήρωσης της διαδρομής. Στην τελευταία θέση του πίνακα εισάγεται ο αριθμός των τμημάτων του δρόμου για τα οποία η εφαρμογή έχει συλλέξει κυκλοφοριακά δεδομένα. Εφόσον υπάρχουν τμήματα δρόμων για τα οποία η εφαρμογή έχει δεδομένα τότε δέχεται από τον Server ένα ακόμα JSON το οποίο περιέχει τους χρωματισμούς των τμημάτων αυτών. Δηλαδή την πίθανη συμφόρηση που μπορεί να έχουν, κόκκινο για μποτιλιάρισμα, κίτρινο για απλή συμφόρηση, πράσινο για καθόλου συμφόρηση. Αυτοί οι χρωματισμοί αποθηκεύονται σε ένα global arraylist. Τέλος, δημιουργείται μια νέα activity, η RouteActivity η οποία είναι υπεύθυνη για την προβολή της διαδρομής στον χρήστη. Όλες οι πληροφορίες που παραλήφθηκαν από τον server αποστέλλονται σε αυτή Προβολή βέλτιστης διαδρομής Εφόσον ο χρήστης στείλει στον server το ερώτημα του, δηλαδή τις συντεταγμένες των δύο σημείων που έχει επιλέξει, και λάβει την απάντηση του, τότε οδηγείται σε μια νέα οθόνη η οποία προβάλει την διαδρομή που έχει επιλεχθεί στον χάρτη μαζί με τον προβλεπόμενο χρόνο ολοκλήρωσης της. Η κλάση RouteActivity είναι υπεύθυνη για τη προβολή των αποτελεσμάτων της αναζήτησης του χρήστη. Αποτελεί και αυτή κλάση που προεκτείνει την υπερκλάση FragmentActivity και χρησιμοποιεί τα εργαλεία που προσφέρει το Google Maps API. Η κλάση αυτή χρησιμοποιεί τα δεδομένα που έχουν ληφθεί από τον εξυπηρετητή στην κλάση DirectionsActivity η οποία τη δημιούργησε. Βασική λειτουργία της κλάσης είναι ο χρωματισμός της προτεινόμενης διαδρομής. Αρχικά αποκωδικοποιείται η κωδικοποιημένη συμβολοσειρά που λήφθηκε από τον server με χρήση συνάρτησης ανοιχτού κώδικα. Η συμβολοσειρά αποκωδικοποιείται σε γεωγραφικά σημεία τα οποία ορίζουν τη συνολική διαδρομή και αποθηκεύονται σε ένα arraylist. Στη συνέχεια για κάθε ζευγάρι γεωγραφικών σημείων χρωματίζεται η διαδρομή στον χάρτη με μία ευδιάκριτη πράσινη γραμμή. Παράλληλα συγκρίνονται τα γεωγραφικά σημεία της διαδρομής με τα γεωγραφικά σημεία τα οποία ορίζουν τα τμήματα της διαδρομής για τα οποία υπάρχουν δεδομένα κίνησης, έτσι ώστε να χρωματιστούν αντίστοιχα τα τμήματα της διαδρομής στα οποία υπάρχει συμφόρηση. Τα τμήματα δρόμων για τα οποία υπάρχουν δεδομένα μαζί με τον αντίστοιχο χρωματισμό τους (πράσινο, γκρι, κόκκινο) έχουν ληφθεί από τον server και βρίσκονται αποθηκευμένα σε ένα arraylist. Στο κάτω μέρος της οθόνης αναγράφεται σε ένα λευκό πλαίσιο κειμένου ( TextView ) ο προβλεπόμενος χρόνος ολοκλήρωσης διαδρομής, ο οποίος έχει αποσταλεί από τον server. Μια επιπλέον λειτουργία της εφαρμογής σε αυτή την οθόνη είναι η καταγραφή κυκλοφοριακών δεδομένων του χρήστη. Αυτό γίνεται με χρήση της κλάσης υπηρεσίας MonitorService η οποία περιγράφεται αναλυτικά στο 5ο κεφάλαιο. Δηλαδή ενώ 50

52 προβάλλεται η προτεινόμενη διαδρομή παράλληλα εκτελούνται όλες οι λειτουργείες καταγραφής διαδρομής που έχουν περιγραφτεί. Παράλληλα εμφανίζεται το στίγμα και η πορεία του χρήστη με ένα μπλε βέλος και ίχνος αντίστοιχα. Επίσης κάθε φορά που ο χρήστης περνάει από απόσταση μικρότερη των 50 μέτρων από σημείο ενδιαφέροντος, αυτό εμφανίζεται στην οθόνη με κόκκινο marker. Η λειτουργία καταγραφής κυκλοφοριακών δεδομένων είναι ακριβώς ίδια με αυτή που περιγράφεται στο προηγούμενο κεφάλαιο οπότε χρησιμοποιούνται και τα ίδια εργαλεία με παραπάνω. Ο χρήστης εξέρχεται από την οθόνη αυτή, με την επιλογή του πλήκτρου πίσω της συσκευής αφότου με την συνάρτηση που καλείται αυτόματα στέλνονται όσα κυκλοφοριακά δεδομένα έχουν συλλεχθεί και δεν μπόρεσαν να σταλούν ήδη στον εξυπηρετητή. 6.3 Λειτουργίες για την εύρεση της γρηγορότερης διαδρομής στην πλευρά του Server Γενικές Λειτουργίες Server για την εύρεση της γρηγορότερης διαδρομής Ο Server είναι υπεύθυνος για την εύρεση της γρηγορότερης διαδρομής από το σημείο εκκίνησης έως το σημείο προοροσμού της διαδρομής του χρήστη. Αρχικά, ο χρήστης επιλέγει το σημείο εκκίνησης και το σημείο προορισμού στην εφαρμογή Android. Με την επιλογή του κουμπιού Send της εφαρμογής αποστέλλονται μέσω http request στον Server οι συντεταγμένες των δύο σημείων με τη μορφή JSON μηνύματος. Για την εύρεση της γρηγορότερης διαδρομής ο Server υλοποιεί τις εξής λειτουργίες: Δέχεται τις συντεταγμένες των δύο σημείων (εκκίνησης και προορισμού) από την εφαρμογή Android Εκτελεί ένα http αίτημα στο Google Maps API προκειμένου να αποκτήσει τις προτεινόμενες διαδρομές Χωρίζει τις προτεινόμενες διαδρομές σε τμήματα δρόμων και ψάχνει στη βάση δεδομένων της αντίστοιχης μέρας και ώρας αν υπάρχουν αντίστοιχα κόμμάτια με τα παραπάνω. Έπειτα υπολογίζει για όλες τις διαδρομές τον προβλεπόμενο χρόνο βάση των κυκλοφοριακών δεδομένων Τέλος, επιλέγεται η γρηγορότερη χρονικά διαδρομή από τους παραπάνω προβλεπόμενους χρόνους και αποστέλλεται πίσω στην εφαρμοφή Android Αίτημα Εύρεσης Υποψήφιων Διαδρομών μέσω του Google Maps API Η http αίτηση που πραγματοποιείται από το Server στο Google Maps API προκειμένου να αποκτήσει τις υποψήφιες διαδρομές από το σημείο εκκίνησης στο σημείο προορισμού είναι η εξής: ation=$latitude2,$longitude2&alternatives=true&sensor=true Όπου latitude, longitude οι συντεταγμένες του σημείου εκκίνησης και latitude2, longitude2 οι συντεταγμένες του σημείου προορισμού. Το Google Maps API επιστρέφει 51

53 σε JSON μήνυμα τις υποψήφιες διαδρομές για αυτά τα 2 σημεία. Δεν παρατίθεται παράδειγμα, διότι το μέγεθος του μηνύματος JSON είναι πολύ μεγάλο. Τα στοιχεία που χρησιμοποιούμε από το μήνυμα είναι τα εξής: [routes]: Αυτός ο πίνακας περιέχει όλες τις υποψήφιες διαδρομές. Μέσω αυτού του πίνακα αποκτάται πρόσβαση σε όλες τις επιμέρους πληροφορίες. [overview_polyline][points]: Αυτό το στοιχείο αποτελεί την προτεινόμενη διαδρομή του χρήστη σε κωδικοποιημένη μορφή. Με την κατάλληλη αποκωδικοποίηση επιτυγχάνεται η αντιστοίχηση της κωδικοποιημένης μορφής σε σημεία πάνω στο χάρτη. Ο αλγόριθμος αποκωδικοποίησης υπάρχει ελεύθερος στο διαδίκτυο. Μέσω αυτών των σημείων θα γίνει ο έλεγχος της διαδρομής με τα κυκλοφοριακά δεδομένα που έχουν καταγραφεί. [duration][value] : Αυτό το στοιχείο αποτελεί το συνολικό προβλεπόμενο χρόνο της διαδρομής Επιλογή της γρηγορότερης υποψήφιας διαδρομής Εκτελώντας την παραπάνω διαδικασία ο Server αποκτά τις προτεινόμενες διαδρομές από το σημείο εκκίνησης στο σημείο προορισμού και τον προβλεπόμενο όρο αυτών που επιστρέφει το Gogle Maps API. Το επόμενο βήμα είναι η αντιστοίχηση κάθε μιας εκ των παραπάνω διαδρομών με παρόμοιες διαδρομές που έχουν ήδη καταγραφεί. Εύρεση κοινών σημείων μεταξύ των προτεινόμενων διαδρομών και των κυκλοφοριακών δεδομένων που έχουν καταγραφεί Τα βήματα που απαιτούνται είναι τα εξής: 1. Αρχικά, επιλέγεται η πρώτη προτεινόμενη διαδρομή. Μέσω κατάλληλης αποκωδικοποίησης του πεδίου overview_polyline, αποθηκεύονται τα σημεία της προτεινόμενης διαδρομής σε ένα ArrayList με όνομα points. 2. Έπειτα, ελέγχεται η απόσταση των σημείων της προτεινόμενης διαδρομής με το σύνολο το σημείων ενδιαφέροντος. Στην περίπτωση που ένα σημείο της προτεινόμενης διαδρομής βρίσκεται κοντά σε ένα σημείο ενδιαφέροντος προσθέτουμε το σημείο ενδιαφέροντος σε ένα πίνακα με όνομα pointscheck. Η παραπάνω διαδικασία επαναλαμβάνεται για όλα τα σημεία της προτεινόμενης διαδρομής. Με αυτόν τον τρόπο βρίσκουμε τα κοινά τμήματα δρόμου της υποψήφιας διαδρομής με αυτά των κυκλοφοριακών δεδομένων που έχουμε καταγράψει. 3. Αφού πλέον έχει πραγματοποιηθεί η αντιστοίχηση της διαδρομής με τα κοινά σημεία ενδιαφέροντος, επιλέγονται σε δυάδες τα σημεία ενδιαφέροντος που περιέχει ο πίνακας pointscheck. Αμέσως μετά, καλείται η συνάρτηση timeaverage εκτελείται ένα ερώτημα SQL με όρισμα τα δύο σημεία ενδιαφέροντος στον πίνακα της δεδομένης μέρας που έγινε το ερώτημα στην κατάλληλη ζώνη ώρας. Σε περίπτωση που υπάρχει καταγεγραμμένο το συγκεκριμένο κομμάτι δρόμου στη βάση δεδομένων αποθηκεύεται σε μια μεταβλητή ο μέσος όρος της προβλεπόμενης ώρας για τη συγκεκριμένη απόσταση από τα κυκλοφοριακά δεδομένα που έχουν συλλεχθεί. Έπειτα, αυτός ο χρόνος συγκρίνεται με τον προβλεπόμενο χρόνο του Google Maps API για την συγκεκριμένη απόσταση και αποθηκεύονται σε δύο νέες μεταβλητές η διαφορά του προβλεπόμενου χρόνου με τον χρόνο του Google Maps API και ο λόγος του 52

54 προβλεπόμενου χρόνου με αυτόν του Google Maps API. Οι δύο τελευταίες μεταβλητές επιστρέφονται στο main thread του Server. 4. Ανάλογα με τον λόγο των δύο χρόνων διακρίνουμε τις εξής περιπτώσεις: o o o Αν ο λόγος είναι ανάμεσα στο έχουμε μέτρια κυκλοφοριακή συμφόρηση. (δηλαδή ο προβλεπόμενος χρόνος είναι το πολύ διπλάσιος από αυτον που δίνει το Google Maps API) Τότε στον παράλληλο πίνακα Colours που έχει δημιουργηθεί αποθηκεύουμε τα δύο σημεία ενδιαφέροντος και στο τελευταίο του πεδίο αποθηκεύουμε το string ORANGE. Αυτό γίνεται για την απεικόνιση της κίνησης στην εφαρμογή Android.Δηλαδή όταν η κυκλοφοριακή συμφόρηση είναι μέτρια απεικονίζεται στη εφαρμογή μια κίτρινη γραμμή στο συγκεκριμένο κομμάτι δρόμου Αν ο λόγος είναι μεγαλύτερος του 2 έχουμε μεγάλη κυκλοφοριακή συμφόρηση. (δηλαδή ο προβλεπόμενος χρόνος είναι μεγαλύτερος από διπλάσιος από αυτον που δίνει το Google Maps API) Τότε στον παράλληλο πίνακα Colours που έχει δημιουργηθεί αποθηκεύουμε τα δύο σημεία ενδιαφέροντος και στο τελευταίο του πεδίο αποθηκεύουμε το string RED. Αυτό γίνεται για την απεικόνιση της κίνησης στην εφαρμογή Android. Δηλαδή όταν η κυκλοφοριακή συμφόρηση είναι μεγάλη απεικονίζεται στην εφαρμογή μια κόκκινη γραμμή στο συγκεκριμένο κομμάτι δρόμου Ακόμα προστίθεται η διαφορά του προβλεπόμενου χρόνου με τον χρόνο του Google Maps API στον συνολικό προβλεπόμενο χρόνο της διαδρομής. Με αυτόν τον τρόπο υπολογίζεται ο προβλεπόμενος χρόνος της διαδρομής βάση κυκλοφοριακών δεδομένων 5. Τέλος, επιλέγεται η διαδρομή με τον συντομότερο χρόνο βάση κυκλοφοριακών δεδομένων. Έπειτα στέλνεται πίσω στην εφαρμογή η κωδικοποιημένη μορφή της προτεινόμενης διαδρομής (overview_polyline), ο προβλεπόμενος συνολικός χρόνος και ο πίνακας colours ( για τον κατάλληλο χρωματισμό των τμημάτων δρόμου της διαδρομής που υπάρχει κίνηση) 53

55 7. ΠΕΙΡΑΜΑΤΙΚΟΣ ΈΛΕΓΧΟΣ ΕΦΑΡΜΟΓΗΣ Κατά την ανάπτυξη της εφαρμογής αλλά και μετά την ολοκλήρωση της εκτελέστηκε πλήθος πειραμάτων για την αποσφαλμάτωση της αλλά και για την επιβεβαίωση της ορθής λειτουργίας της. Πολλά από τα πειράματα, εκτελέστηκαν σε πραγματικές συνθήκες, δηλαδή από κινητή συσκευή σε αυτοκίνητο κινούμενο στους δρόμους τις Αθήνας που έχουν οριστεί σημεία ενδιαφέροντος. 7.1 Παραδείγματα Εύρεσης Βέλτιστης Διαδρομής Παράδειγμα Εύρεσης Βέλτιστης Διαδρομής μεταξύ δύο σημείων χωρίς κυκλοφοριακή συμφόρηση Για την καλύτερη κατανόηση του τρόπου λειτουργίας της εφαρμογής κατά την εύρεση της βέλτιστης διαδρομής ακολουθεί το παρακάτω παράδειγμα. Αρχικά ο χρήστης επιλέγει με παρατεταμένο άγγιγμα της οθόνης τα σημεία αφετηρίας και προορισμού τα οποία και αποθηκεύονται στις αντίστοιχες μεταβλητές. Εικόνα 19: Οθόνη επιλογής σημείου αφετηρίας ή προορισμού Στη συνέχεια, ο χρήστης επιλέγει το Send για την εύρεση της βέλτιστης διαδρομής μεταξύ των δύο σημείων που επέλεξε. Η εφαρμογή με αυτόν τον τρόπο αποστέλλει στον server τις συντεταγμένες των δύο σημείων με ένα μήνυμα JSON και αναμένει την απάντηση του. 54

56 Εικόνα 20: Αποστολή ερωτήματος διαδρομής στον εξυπηρετητή Εφόσον αποσταλεί το αίτημα του χρήστη στον server, εκείνος με τη σειρά του βρίσκει τις υποψήφιες διαδρομές μέσω του Google Maps API. Έπειτα, βρίσκει του προβλεπόμενους χρόνους βάση των κυκλοφοριακών δεδομένων και επιλέγει τη γρηγορότερη χρονικά διαδρομή. Τέλος, την στέλνει πίσω στο Server και αυτός την απεικονίζει πάνω στο χάρτη με τα κατάλληλα χρώματα ανάλογα με την κίνηση του εκάστοτε τμήματος δρόμου. Στο συγκεκριμένο παράδειγμα επιλέγεται ο πίνακας Day7 επειδή η μέρα που εκτελέστηκε το ερώτημα ήταν Κυριακή και η ζώνη ώρας 17:00-19:59 αφού το ερώτημα εκτελέστηκε στις 18:32. Όπως φαίνεται στην παρακάτω εικόνα η διαδρομή που επιλέχθηκε δεν περιέχει κάποιο τμήμα δρόμου με κυκλοφοριακή συμφόρηση γιαυτό και απεικονίζεται στο σύνολο της με πράσινο χρώμα. Επίσης επιλέχθηκε η πρώτη προτεινόμενη διαδρομή του Google Maps καθώς δεν περιείχε κυκλοφοριακή συμφόρηση και είναι αυτή με την κοντινότερη απόσταση. Εικόνα 21: Οθόνη προβολής βέλτιστης διαδρομής 55

57 7.2 Πειραματικός έλεγχος σωστής λειτουργίας εφαρμογής για μεγάλη ποσότητα δεδομένων Η εφαρμογή ελέγχθηκε διεξοδικά σε πραγματικές συνθήκες για την επιβεβαίωση της σωστής λειτουργίας της. Επειδή πρόκειται για εφαρμογή πολλαπλών χρηστών η οποία για την ορθή λειτουργία της χρειάζεται να διαχειρίζεται μεγάλη ποσότητα δεδομένων, έγινε εισαγωγή ψεύτικων δεδομένων για να βρεθούν τα όρια της εφαρμογής. Δηλαδή παρουσιάζει ενδιαφέρον και μελετάται σε αυτό το κεφάλαιο η λειτουργία της εφαρμογής για μεγάλο όγκο δεδομένων. Τα βασικά στοιχεία τα οποία παρουσιάζουν μεγάλο ενδιαφέρον μελέτης είναι η μεταβολή του χρόνου απόκρισης της εφαρμογής αναλογικά με την ποσότητα των δεδομένων και μέχρι ποιο μέγεθος δεδομένων η εφαρμογή είναι αξιόπιστη. Εφόσον η βασική λειτουργία της εφαρμογής, είναι η δρομολόγηση με ακριβέστερα αποτελέσματα από αυτά του Google Maps, σημαντικό ενδιαφέρον παρουσίασε οι διαφορές που παρουσιάστηκαν Δηλαδή το κατά πόσο τα αποτελέσματα της εφαρμογής είναι ακριβέστερα, δηλαδή αν επιστρέφετε στον χρήστη η πραγματικά γρηγορότερη διαδρομή για την ώρα που αποστέλλει το αίτημα του, και αν ο προβλεπόμενος χρόνος ολοκλήρωσης είναι πλησιέστερος στον πραγματικό. Επιπλέον, η εφαρμογή εκμεταλέυεται την υπαρξη περιοδικότητας στα κυκλοφοριακά δεδομένα. Για παράδειγμα είναι γνωστό ότι τις μεσημεριανές ώρες των καθημερινών υπάρχει μεγαλύτερη κυκλοφοριακή συμφόρηση. Επομένως, βασικό στοιχείο της εφαρμογής, είναι οι διαφορές που υπάρχουν στα αποτελέσματα που προσφέρει στους χρήστες για ίδιες διαδρομές ανάλογα με τη μέρα και ώρα. Η μελέτη και αυτού του χαρακτηριστικού της εφαρμογής παρουσιάζεται στη συνέχεια. Τέλος μελετήθηκε η λειτουργία της εφαρμογής για μεγάλες διαδρομές, δηλαδή όταν η απόσταση μεταξύ των δύο σημείων που εισάγει ο χρήστης για εύρεση της βέλτιστης διαδρομής είναι πολύ μεγάλη Σύγκριση αποτελεσμάτων εφαρμογής με αποτελέσματα του Google Maps Σε αυτό το υποκεφάλαιο θα συγκριθούν τα αποτελέσματα του Google Maps για μια δεδομένη διαδρομή με αυτό της εφαρμογής μας. Το παράδειγμα πραγματοποιήθηκε σε ώρα αιχμής προκειμένου να παρουσιαστεί η διαφορά των αποτελεσμάτων των δύο εφαρμογών. Η διαδρομή που επιλέχθηκε είναι η εξής: Από την Νέα Ιωνία και συγκεκριμένα από την περιοχή της Καλογρέζας έως την Καισαριανή στην πύλη της Πανεπιστημιούπολης. 56

58 Προτεινόμενες Διαδρομές από το Google Maps Οι προτεινόμενες διαδρομές που δίνει το Google Maps είναι οι εξής: Εικόνα 22: Προτεινόμενες διαδρομές Google Maps Το Google Maps οποιαδήποτε ώρα κάθε ημέρα του χρόνου προτείνει ως καλύτερη διαδρομή την παρακάτω: Εικόνα 23: Προβολή Προτεινόμενης Διαδρομής στο χάρτη 57

ANDROID Προγραμματισμός Εφαρμογών

ANDROID Προγραμματισμός Εφαρμογών ANDROID Προγραμματισμός Εφαρμογών Παναγιώτης Κρητιώτης ΑΜ 1607 Περιεχόμενα Εισαγωγή Βασικά Στοιχεία Χαρακτηριστικά Αρχιτεκτονική Εργαλεία Προγραμματισμού Eclipse IDE Android SDK - ADT Plugin Προσομοιωτής

Διαβάστε περισσότερα

Εκδίδεται μία φορά το χρόνο από το:

Εκδίδεται μία φορά το χρόνο από το: Εκδίδεται μία φορά το χρόνο από το: Τμήμα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών, Πανεπιστημιούπολη, 15784 Αθήνα Τηλ: 210-727 5190, Φαξ: 210-727 5333 email: library@di.uoa.gr,

Διαβάστε περισσότερα

Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές.

Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές. Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές. 13ο ΕΘΝΙΚΟ ΣΥΝΕΔΡΙΟ ΧΑΡΤΟΓΡΑΦΙΑΣ Η ΧΑΡΤΟΓΡΑΦΙΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

Διαβάστε περισσότερα

GET SDI PORTAL v1. Οδηγός Βοήθειας

GET SDI PORTAL v1. Οδηγός Βοήθειας GET SDI PORTAL v1 Οδηγός Βοήθειας Μεταδεδομένα εγγράφου Στοιχείο/Element Τιμή/value Ημερομηνία/Date 2011-06-16 Τίτλος/Title GETSDIPortal_v1_Help_v1.0 Θέμα/Subject Οδηγός Βοήθειας Έκδοση/Version 1.0 Σελίδα

Διαβάστε περισσότερα

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΑΝΑΛΥΣΗ ΜΕΝΟΥ ΕΦΑΡΜΟΓΗΣ... 4 2. ΕΠΕΞΗΓΗΣΗ ΚΕΝΤΡΙΚΟΥ ΜΕΝΟΥ ΚΑΡΤΕΛΑΣ... 5 3. ΔΗΜΙΟΥΡΓΙΑ ΠΕΛΑΤΗ... 6 4. ΑΝΑΖΗΤΗΣΗ ΠΕΛΑΤΗ... 6 5. ΕΠΕΞΕΡΓΑΣΙΑ/ΔΙΑΓΡΑΦΗ

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο 2016-2017 Υποχρεωτική εργασία Τα τελευταία χρόνια, λόγω της τεράστιας αύξησης της ποσότητας της πληροφορίας που έχουμε

Διαβάστε περισσότερα

Εγχειρίδιο Χρήσης. Σημαντικό!

Εγχειρίδιο Χρήσης. Σημαντικό! Εγχειρίδιο Χρήσης Σημαντικό! Η διαδικτυακή πύλη της υπηρεσίας www.vidatrack.com είναι συμβατή με τους πιο κάτω περιηγητές: Internet Explorer 12 ή πιο πρόσφατο Google Chrome 38 ή πιο πρόσφατο Mozilla Firefox

Διαβάστε περισσότερα

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH Αχαρναί 20.7.09 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH Για τη σωστή λειτουργία του προγράμματος πρέπει να έχετε εγκαταστήσει στον υπολογιστή σας το λογισμικό χαρτογράφησης

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

8 Maps. 8.1 Δημουργία Activity με χάρτη

8 Maps. 8.1 Δημουργία Activity με χάρτη 8 Maps Ένα πολύ σημαντικό κομμάτι πολλών εφαρμογών για κινητά, χρησιμοποιούν χάρτες και τη θέση του χρήστη για να πραγματοποιήσουν κάποιες λειτουργίες που δεν είναι δυνατόν να συμβούν με έναν απλό υπολογιστή.

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 ELab Π Τ Υ Χ Ι Α

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

Γ. Β Α Λ Α Τ Σ Ο Σ. 4ο ΓΥΜΝΑΣΙΟ ΛΑΜΙΑΣ 1. Γιώργος Βαλατσός Φυσικός Msc

Γ. Β Α Λ Α Τ Σ Ο Σ. 4ο ΓΥΜΝΑΣΙΟ ΛΑΜΙΑΣ 1. Γιώργος Βαλατσός Φυσικός Msc 4ο ΓΥΜΝΑΣΙΟ ΛΑΜΙΑΣ 1 1. Πότε τα σώματα θεωρούνται υλικά σημεία; Αναφέρεται παραδείγματα. Στη φυσική πολλές φορές είναι απαραίτητο να μελετήσουμε τα σώματα χωρίς να λάβουμε υπόψη τις διαστάσεις τους. Αυτό

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 20130510 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εγκατάσταση προγράμματος DCAD 2 2. Ενεργοποίηση Registration 2 3. DCAD 3 3.1 Εισαγωγή σημείων 3 3.2 Εξαγωγή σημείων 5 3.3 Στοιχεία ιδιοκτησίας

Διαβάστε περισσότερα

XAMPP Apache MySQL PHP javascript xampp

XAMPP Apache MySQL PHP javascript xampp XAMPP Το xampp είναι ένα δωρεάν πρόγραμμα με το οποίο μπορούμε να κάνουμε εγκατάσταση τον Apache, τη MySQL και την PHP. Apache. Ο Apache είναι ένας Web Server. Είναι δηλαδή πρόγραμμα το οποίο τρέχει μόνιμα

Διαβάστε περισσότερα

Κατασκευή Πληροφοριακού Συστήματος Διαχείρισης Στόλου Οχημάτων

Κατασκευή Πληροφοριακού Συστήματος Διαχείρισης Στόλου Οχημάτων Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Κατασκευή Πληροφοριακού Συστήματος Διαχείρισης Στόλου Οχημάτων ΚΕΧΑΓΙΑΣ ΑΠΟΣΤΟΛΟΣ ΕΠΙΒΛΕΠΩΝ: ΔΑΣΥΓΕΝΗΣ ΜΗΝΑΣ Περίγραμμα 1.

Διαβάστε περισσότερα

1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη;

1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη; ΚΕΦΑΛΑΙΟ 2 ο ΚΙΝΗΣΗ 2.1 Περιγραφή της Κίνησης 1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη; Κινηματική είναι ο κλάδος της Φυσικής που έχει ως αντικείμενο τη μελέτη της κίνησης. Στην Κινηματική

Διαβάστε περισσότερα

Διαχείριση Δικτύων (ΕΠ 17) Εαρινό Εξάµηνο 2014-2015. Εργασία Εξαµήνου, Ηµεροµηνία Παράδοσης: Ηµέρα Εξέτασης Μαθήµατος (25/6/2015)

Διαχείριση Δικτύων (ΕΠ 17) Εαρινό Εξάµηνο 2014-2015. Εργασία Εξαµήνου, Ηµεροµηνία Παράδοσης: Ηµέρα Εξέτασης Μαθήµατος (25/6/2015) Διαχείριση Δικτύων (ΕΠ 17) Εαρινό Εξάµηνο 2014-2015 Εργασία Εξαµήνου, Ηµεροµηνία Παράδοσης: Ηµέρα Εξέτασης Μαθήµατος (25/6/2015) Οµαδική εργασία (2 ατόµων) Σε αυτή την εργασία καλείστε να υλοποιήσετε ένα

Διαβάστε περισσότερα

Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ

Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ 2.1 Περιγραφή της Κίνησης 1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη; Κινηματική είναι ο κλάδος της Φυσικής που έχει ως αντικείμενο τη μελέτη της κίνησης.

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER Η εφαρμογή LiveTripTraveller διατίθεται για κινητά τηλέφωνα με λειτουργικό σύστημα Android. Στο υπο-ιστοσελίδα www.livetrips.com/sources μπορείτε να κατεβάσετε την εφαρμογή

Διαβάστε περισσότερα

ΑΞΙΟΠΟΙΗΣΗ ΑΝΟΙΧΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΕΥΦΥΕΙΣ ΔΗΜΟΥΣ

ΑΞΙΟΠΟΙΗΣΗ ΑΝΟΙΧΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΕΥΦΥΕΙΣ ΔΗΜΟΥΣ Θεσσαλονίκη, Οκτώβριος 2016 Χριστίνα Δηµητριάδου 1 Διπλωµατική εργασία: ΑΞΙΟΠΟΙΗΣΗ ΑΝΟΙΧΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΕΥΦΥΕΙΣ ΔΗΜΟΥΣ Φοιτήτρια: Χριστίνα Δηµητριάδου Επιβλέπων Καθηγητής: Νικόλαος

Διαβάστε περισσότερα

ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ

ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ Ευθύγραμμη Ομαλή Κίνηση Επιμέλεια: ΑΓΚΑΝΑΚΗΣ.ΠΑΝΑΓΙΩΤΗΣ, Φυσικός https://physicscorses.wordpress.com/ Βασικές Έννοιες Ένα σώμα καθώς κινείται περνάει από διάφορα σημεία.

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 18 Dijkstra s Shortest Path Algorithm 1 / 12 Ο αλγόριθμος εύρεσης της συντομότερης διαδρομής του Dijkstra

Διαβάστε περισσότερα

Η εργασία που επέλεξες θα σου δώσει τη δυνατότητα να συνεργαστείς με συμμαθητές σου και να σχεδιάσετε μια εικονική εκδρομή με το Google Earth.

Η εργασία που επέλεξες θα σου δώσει τη δυνατότητα να συνεργαστείς με συμμαθητές σου και να σχεδιάσετε μια εικονική εκδρομή με το Google Earth. Μια εικονική εκδρομή με το Google Earth Αγαπητέ μαθητή, Η εργασία που επέλεξες θα σου δώσει τη δυνατότητα να συνεργαστείς με συμμαθητές σου και να σχεδιάσετε μια εικονική εκδρομή με το Google Earth. Εσύ

Διαβάστε περισσότερα

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Speed-0 Web and Mobile Platform Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Version Revision History Date Version Description People 5/4/2012 Αρχικές Προδιαγραφές

Διαβάστε περισσότερα

Γεωπροσδιορισμός σε κινητές συσκευές και αξιοποίησή τους (Geolocation) ΓΤΠ61 Κοντάκης Σπυριδάκης

Γεωπροσδιορισμός σε κινητές συσκευές και αξιοποίησή τους (Geolocation) ΓΤΠ61 Κοντάκης Σπυριδάκης Γεωπροσδιορισμός σε κινητές συσκευές και αξιοποίησή τους (Geolocation) ΓΤΠ61 Κοντάκης Σπυριδάκης 2 Geolocation Γεωπροσδιορισμός ή γεωεντοπισμος (Geolocation) είναι ο γεωγραφικός προσδιορισμός ενός αντικειμένου

Διαβάστε περισσότερα

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

Διαβάστε περισσότερα

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

Διαβάστε περισσότερα

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access...9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 18 Άνοιγμα και κλείσιμο βάσης δεδομένων... 21 Ερωτήσεις ανακεφαλαίωσης... 22 Πρακτική εξάσκηση...

Διαβάστε περισσότερα

1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη;

1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη; ΚΕΦΑΛΑΙΟ 2 ο ΚΙΝΗΣΗ 2.1 Περιγραφή της Κίνησης 1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη; Κινηματική είναι ο κλάδος της Φυσικής που έχει ως αντικείμενο τη μελέτη της κίνησης. Στην Κινηματική

Διαβάστε περισσότερα

GPS NAVIGATION SYSTEM QUICK START USER MANUAL

GPS NAVIGATION SYSTEM QUICK START USER MANUAL GPS NAVIGATION SYSTEM QUICK START USER MANUAL GREEK Πώς να ξεκινήσετε Την πρώτη φορά που θα χρησιμοποιήσετε το λογισμικό πλοήγησης, θα ξεκινήσει αυτόματα μια διαδικασία αρχικών ρυθμίσεων. Κάντε τα εξής:

Διαβάστε περισσότερα

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Διπλωματική Εργασία με θέμα: Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού Καραγιάννης Ιωάννης Α.Μ.

Διαβάστε περισσότερα

1. Ποια μεγέθη ονομάζονται μονόμετρα και ποια διανυσματικά;

1. Ποια μεγέθη ονομάζονται μονόμετρα και ποια διανυσματικά; ΚΕΦΑΛΑΙΟ 2 ο ΚΙΝΗΣΗ 2.1 Περιγραφή της Κίνησης 1. Ποια μεγέθη ονομάζονται μονόμετρα και ποια διανυσματικά; Μονόμετρα ονομάζονται τα μεγέθη τα οποία, για να τα προσδιορίσουμε πλήρως, αρκεί να γνωρίζουμε

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εξαγωγή γεωγραφικής πληροφορίας από δεδομένα παρεχόμενα από χρήστες του

Διαβάστε περισσότερα

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1.

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1. Κομβικό Σημείο Επαφής Υπουργείου Εσωτερικών Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Έκδοση 0.1. Νοέμβρης 2014 Περιεχόμενα 1. ΕΙΣΑΓΩΓΗ... 2 2.

Διαβάστε περισσότερα

MLS Destinator Android για Vodafone Εγχειρίδιο Χρήσης

MLS Destinator Android για Vodafone Εγχειρίδιο Χρήσης MLS Destinator Android για Vodafone Εγχειρίδιο Χρήσης MLS Destinator για Android Vodafone Εγχειρίδιο Χρήσης v1.0 2 Περιεχόμενα 1 - ΕΙΣΑΓΩΓΗ... 4 ΤΙ ΕΙΝΑΙ ΤΟ MLS DESTINATOR... 4 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ MLS DESTINATOR...

Διαβάστε περισσότερα

ΚΙΝΗΜΑΤΙΚΗ ΥΛΙΚΟΥ ΣΗΜΕΙΟΥ ΣΕ ΜΙΑ ΔΙΑΣΤΑΣΗ

ΚΙΝΗΜΑΤΙΚΗ ΥΛΙΚΟΥ ΣΗΜΕΙΟΥ ΣΕ ΜΙΑ ΔΙΑΣΤΑΣΗ ΚΙΝΗΜΑΤΙΚΗ ΥΛΙΚΟΥ ΣΗΜΕΙΟΥ ΣΕ ΜΙΑ ΔΙΑΣΤΑΣΗ ΘΕΣΗ ΤΡΟΧΙΑ ΜΕΤΑΤΟΠΙΣΗ ΚΑΙ ΔΙΑΣΤΗΜΑ. Παρατηρώντας τις εικόνες προσπαθήστε να ορίσετε τις θέσεις των διαφόρων ηρώων των κινουμένων σχεδίων. Ερώτηση: Πότε ένα σώμα

Διαβάστε περισσότερα

Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου.

Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου. ΚΕΦΑΛΑΙΟ 13 Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου. Οι υπηρεσίες νέφους παρέχονται με τέτοιο τρόπο ώστε ο τελικός χρήστης δεν μπορεί να διακρίνει τεχνικές λεπτομέρειες. Η χρηστικότητα, η διαθεσιμότητα

Διαβάστε περισσότερα

Π ΑΝΕΠΙΣΤΗΜΙΟ Π ΑΤΡΩΝ Π ΟΛΥΤΕΧΝΙΚΗ Σ ΧΟΛΗ Τ ΜΗΜΑ Μ ΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ Π ΛΗΡΟΦΟΡΙΚΗΣ Κ ΑΤΑΝΕΜΗΜΕΝΑ Σ ΥΣΤΗΜΑΤΑ ΙΙ

Π ΑΝΕΠΙΣΤΗΜΙΟ Π ΑΤΡΩΝ Π ΟΛΥΤΕΧΝΙΚΗ Σ ΧΟΛΗ Τ ΜΗΜΑ Μ ΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ Π ΛΗΡΟΦΟΡΙΚΗΣ Κ ΑΤΑΝΕΜΗΜΕΝΑ Σ ΥΣΤΗΜΑΤΑ ΙΙ Π ΑΝΕΠΙΣΤΗΜΙΟ Π ΑΤΡΩΝ Π ΟΛΥΤΕΧΝΙΚΗ Σ ΧΟΛΗ Τ ΜΗΜΑ Μ ΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ Π ΛΗΡΟΦΟΡΙΚΗΣ Κ ΑΤΑΝΕΜΗΜΕΝΑ Σ ΥΣΤΗΜΑΤΑ ΙΙ Αδάμ Γιώργος Γκορτσίλας Δημήτρης Οικονομίδης Γιάννης 2009 TARIFA Project 1. Περιγραφή προβλήματος-αρχιτεκτονική

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική»

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική» Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής Ανάπτυξη Πλατφόρμας Διαδικτυακής Δημοσίευσης Χαρτογραφικών Δεδομένων Developing

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ ΣΥΜΒΕΒΛΗΜΕΝΟΥΣ ΜΕ ΤΟΝ Ε.Ο.Π.Υ.

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ ΣΥΜΒΕΒΛΗΜΕΝΟΥΣ ΜΕ ΤΟΝ Ε.Ο.Π.Υ. Τ.Ε.Ι ΚΑΒΑΛΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ» ΟΝΟΜΑΤΕΠΩΝΥΜΑ ΣΠΟΥΔΑΣΤΩΝ : ~ΔΕΛΗΓΙΑΝΝΗ ΚΥΡΙΑΚΗ, 1925~

Διαβάστε περισσότερα

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

Διαβάστε περισσότερα

Γεωργάκης Αριστείδης ΠΕ20

Γεωργάκης Αριστείδης ΠΕ20 1 Εκκίνηση για πρώτη φορά Όπως συμβαίνει και με τις υπόλοιπες εφαρμογές του OpenOffice, έτσι και το Impress μπορούμε να το εκκινήσουμε μέσω της συντόμευσης που εγκαθίσταται αυτόματα στην επιφάνεια εργασίας

Διαβάστε περισσότερα

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι 21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα

Διαβάστε περισσότερα

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

Διαβάστε περισσότερα

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους Διάλεξη 2: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Βραχύτερα Μονοπάτια σε γράφους - Ο αλγόριθμος Dijkstra για εύρεση της βραχύτερης απόστασης

Διαβάστε περισσότερα

ΠΡΟΤΥΠΟ ΛΥΚΕΙΟ ΕΥΑΓΓΕΛΙΚΗΣ ΣΧΟΛΗΣ ΣΜΥΡΝΗΣ

ΠΡΟΤΥΠΟ ΛΥΚΕΙΟ ΕΥΑΓΓΕΛΙΚΗΣ ΣΧΟΛΗΣ ΣΜΥΡΝΗΣ ΠΡΟΤΥΠΟ ΛΥΚΕΙΟ ΕΥΑΓΓΕΛΙΚΗΣ ΣΧΟΛΗΣ ΣΜΥΡΝΗΣ ΑΣΚΗΣΕΙΣ ΣΤΗΝ ΕΥΘΥΓΡΑΜΜΗ ΟΜΑΛΗ ΚΙΝΗΣΗ ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ Χ. Δ. ΦΑΝΙΔΗΣ http://users.sch.gr/cdfan ΣΧΟΛΙΚΟ ΕΤΟΣ 2016-2017 Τα φυσικά μεγέθη, θέση,

Διαβάστε περισσότερα

GARMIN Ο ΗΓΙΕΣ ΧΡΗΣΗΣ GPS76, GPSMAP 76, GPSMAP 76S

GARMIN Ο ΗΓΙΕΣ ΧΡΗΣΗΣ GPS76, GPSMAP 76, GPSMAP 76S GARMIN Ο ΗΓΙΕΣ ΧΡΗΣΗΣ GPS76, GPSMAP 76, GPSMAP 76S Πλήκτρα IN - Κοντινή ανάλυση. Πατώντας το βλέπετε µία µικρότερη περιοχή του χάρτη µε περισσότερη λεπτοµέρεια, αυξάνει την κλίµακα. ΟUT - Μακρινή ανάλυση.

Διαβάστε περισσότερα

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

Διαβάστε περισσότερα

Ηλεκτρονικός οδηγός για τους φοιτητές ενός Α.Ε.Ι.

Ηλεκτρονικός οδηγός για τους φοιτητές ενός Α.Ε.Ι. Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Ηλεκτρονικός οδηγός για τους φοιτητές ενός Α.Ε.Ι. Πτυχιιακή Εργασίία Φοιτητής: Δημήτριος Παπαοικονόμου ΑΜ: 36712

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Α.Μ. 123/04 ΕΠΙΒΛΕΠΩΝ: ΣΑΜΑΡΑΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ, ΙΟΥΝΙΟΣ 2007 Περιεχόμενα

Διαβάστε περισσότερα

4. ΔΙΚΤΥΑ

4. ΔΙΚΤΥΑ . ΔΙΚΤΥΑ Τελευταία μορφή επιχειρησιακής έρευνας αποτελεί η δικτυωτή ανάλυση (δίκτυα). Τα δίκτυα είναι ένα διάγραμμα από ς οι οποίοι συνδέονται όλοι μεταξύ τους άμεσα ή έμμεσα μέσω ακμών. Πρόκειται δηλαδή

Διαβάστε περισσότερα

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση Κεφάλαιο ο: Δικτυωτή Ανάλυση. Εισαγωγή Η δικτυωτή ανάλυση έχει παίξει σημαντικό ρόλο στην Ηλεκτρολογία. Όμως, ορισμένες έννοιες και τεχνικές της δικτυωτής ανάλυσης είναι πολύ χρήσιμες και σε άλλες επιστήμες.

Διαβάστε περισσότερα

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΥΠΟΒΟΛΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΔΕΛΤΙΟΥ

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΥΠΟΒΟΛΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΔΕΛΤΙΟΥ ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΥΠΟΒΟΛΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΔΕΛΤΙΟΥ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΨΗΦΙΟΥ ΕΠΑΛ Α Έκδοση 1.0, Ιούνιος 2011 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ ΠΙΝΑΚΑΣ

Διαβάστε περισσότερα

Οδηγίες χρήσης για την εφαρµογή Spot4U

Οδηγίες χρήσης για την εφαρµογή Spot4U Οδηγίες χρήσης για την εφαρµογή Spot4U 1 Βασικές οδηγίες Λήψη Κατηγοριών Μετά την εγκατάσταση του Spot4U το πρώτο βήµα που θα πρέπει να κάνει ο χρήστης είναι να επιλέξει το Λήψη Κατηγοριών ώστε να ενηµερωθεί

Διαβάστε περισσότερα

Πειραιάς S 2 Ε Lab Ιούνιος 2012. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Εργ. Συνεργάτης

Πειραιάς S 2 Ε Lab Ιούνιος 2012. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Εργ. Συνεργάτης Πειραιάς S 2 Ε Lab Ιούνιος 2012 Εισηγητής: Δ. Ν. Καλλέργης, MSc. Εργ. Συνεργάτης Πνευµατικά δικαιώµατα Τα πνευµατικά δικαιώµατα χρησιµοποίησης του µη πρωτότυπου υλικού της εργασίας ανήκουν στο/στη φοιτητή/-τρια

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής

Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής Δεληγιαννίδης Θεόδωρος Περίληψη Η "Θεσσαλονίκη Alert" είναι μια εφαρμογή του τύπου crowdsourcing που αφορά το Δήμο Θεσσαλονίκης και τους πολίτες του.

Διαβάστε περισσότερα

Αγροτική Ανάπτυξη Περιβάλλον

Αγροτική Ανάπτυξη Περιβάλλον ΜΟΝΑΔΕΣ ΑΡΙΣΤΕΙΑΣ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Αγροτική Ανάπτυξη Περιβάλλον 1 ος Κύκλος Εκπαίδευσης 4 ο σεμινάριο 4 Ιουλίου 2014 GRASS GIS Τι είναι το GRASS GIS; Ένα άρτιο ΣΓΠ Ανοιχτού Κώδικα (Open Source GIS)

Διαβάστε περισσότερα

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Σκοπός της 10ης άσκησης είναι να μάθουμε να χρησιμοποιούμε sprites και να φτιάξουμε ένα παιχνίδι που χρησιμοποιεί συγκρούσεις. Θα δούμε επίσης μερικά

Διαβάστε περισσότερα

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος 5. Γραφήματα 5.1 Εισαγωγή 5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος Το Discoverer παρέχει μεγάλες δυνατότητες στη δημιουργία γραφημάτων, καθιστώντας δυνατή τη διαμόρφωση κάθε συστατικού μέρους

Διαβάστε περισσότερα

Διαχείριση Πάγιου Ενεργητικού

Διαχείριση Πάγιου Ενεργητικού Διαχείριση Πάγιου Ενεργητικού Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας διαχείρισης Παγίου Ενεργητικού. Η διαδικασία περιλαμβάνει αναλυτική παρουσίαση των εκτυπωτικών

Διαβάστε περισσότερα

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου:

Διαβάστε περισσότερα

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE Περιεχόμενα ΥΠΟΛΟΓΙΣΜΟΣ ΔΙΑΔΡΟΜΗΣ... 2 Είσοδος στην εφαρμογή... 2 Λειτουργίες εφαρμογής υπολογισμού διαδρομής... 2 Πλοήγηση στο χάρτη... 3 Επιλογή Υποβάθρου... 4 Εύρεση Διαδρομής... 4 ΥΠΟΛΟΓΙΣΜΟΣ ΔΙΑΔΡΟΜΗΣ

Διαβάστε περισσότερα

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ Οδηγός Χρήσης Εφαρμογής Γραφείων Πρακτικής Άσκησης Αφού πιστοποιηθεί ο λογαριασμός που δημιουργήσατε στο πρόγραμμα «Άτλας» ως Γραφείο Πρακτικής,

Διαβάστε περισσότερα

Η πρώτη ελληνική εφαρμογή για το κυνήγι!

Η πρώτη ελληνική εφαρμογή για το κυνήγι! Η πρώτη ελληνική εφαρμογή για το κυνήγι! Όροι Χρήσης Πληροφορίες - Προϋποθέσεις Συσκευές Δικαιώματα (Permissions) Πληροφορίες για τη θέση μου Επίπεδα Πλοήγηση στο χάρτη Στείλε την τοποθεσία μου Πλοήγηση

Διαβάστε περισσότερα

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

Διαβάστε περισσότερα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Σχολή Επικοινωνίας και Μέσων Ενημέρωσης Πτυχιακή εργασία Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Εύρος Χριστοδούλου Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΚΟΙΝΩΝΙΑΣ

Διαβάστε περισσότερα

Εγχειρίδιο χρήσης Intalio Designer Εγχειρίδιο χρήσης Intalio Designer

Εγχειρίδιο χρήσης Intalio Designer Εγχειρίδιο χρήσης Intalio Designer Εγχειρίδιο χρήσης Intalio Designer Σελίδα 1 Copyright Copyright 2007 Atlantis Group. Ιστορικό εγγράφου Έκδοση Εγχειριδίου: 1.0 Ημερομηνία δημιουργίας: 26/11/2007 Σελίδα 2 ΠΕΡΙΕΧΟΜΕΝΑ 1 Εισαγωγή... 4 2

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Η εξέλιξη των γλωσσών προγραμματισμού Η εξέλιξη των γλωσσών προγραμματισμού είναι μια διαδικασία αφαίρεσης Στην αρχή ένα πρόγραμμα ήταν

Διαβάστε περισσότερα

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

Διαβάστε περισσότερα

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college.

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college. Χρήση της Διεπαφής Προγραμματισμού Εφαρμογής Google Maps για τη δημιουργία διαδραστικού χάρτη με τα Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς της ΟΥΝΕΣΚΟ στη Θεσσαλονίκη Εμμανουήλ Τσάμης 1, Κωνσταντίνος

Διαβάστε περισσότερα

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας από βάση δεδομένων Όταν εκκινήσουμε τον Discoverer εμφανίζεται στην οθόνη μας το παράθυρο διαλόγου του βοηθητικού προγράμματος

Διαβάστε περισσότερα

Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services

Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services Γεώργιος Σταυρουλάκης gstavr@dblab.ece.ntua.gr ιπλωµατική εργασία στο Εργαστήριο Συστηµάτων Βάσεων Γνώσεων και εδοµένων Επιβλέπων: Καθηγητής

Διαβάστε περισσότερα

t ct e je o r p p ts in o Tutorial P s u o r e g na D HaRisG MinOtaVrS January 2007 1

t ct e je o r p p ts in o Tutorial P s u o r e g na D HaRisG MinOtaVrS January 2007 1 Tutorial HaRisG MinOtaVrS January 2007 1 Λίγα λόγια για το project αυτό Η ιδέα καταγραφής των επικίνδυνων σημείων του οδικού μας δικτύου πρωτοεμφανίστηκε στο forum της εταιρείας NGI, που κατασκευάζει χάρτες

Διαβάστε περισσότερα

Δομή παρουσίασης. Σχεδιασμός και υλοποίηση συστήματος παρακολούθησης και ελέγχου πωλητών και δημιουργία εφαρμογής σε έξυπνο κινητό

Δομή παρουσίασης. Σχεδιασμός και υλοποίηση συστήματος παρακολούθησης και ελέγχου πωλητών και δημιουργία εφαρμογής σε έξυπνο κινητό ΣχεδιασμοΣ και υλοποιηση συστηματοσ παρακολουθησησ και ελεγχου πωλητων και δημιουργια εφαρμογησ σε εξυπνο κινητο Επιβλέπων: Δρ. Μηνάς Δασυγένης Καψάλης Αθανάσιος 16 Οκτωβρίου 2013 Δομή παρουσίασης 1. Εισαγωγή

Διαβάστε περισσότερα

Συστήματα Αναμονής (Queuing Systems)

Συστήματα Αναμονής (Queuing Systems) ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ - ΕΜΠ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Επικοινωνιών, Ηλεκτρονικής & Συστημάτων Πληροφορικής Εργαστήριο Διαχείρισης & Βέλτιστου Σχεδιασμού Δικτύων Τηλεματικής

Διαβάστε περισσότερα

Υπηρεσία διαμοιρασμού αρχείων

Υπηρεσία διαμοιρασμού αρχείων 7 Ιουνίου 2013 Υπηρεσία διαμοιρασμού αρχείων Πανεπιστήμιο Κύπρου, Τμήμα Πληροφορικής Ομάδα Τεχνικής Υποστήριξης v0.4 Πίνακας περιεχομένων Γενικά... 2 Διαθεσιμότητα... 2 Πρόσβαση... 2 Φυλλομετρητή ιστού...

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 23: Βραχύτερα Μονοπάτια σε Γράφους Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Βραχύτερα Μονοπάτια σε γράφους Ο αλγόριθμος Dijkstra για εύρεση της βραχύτερης απόστασης Ο αλγόριθμος

Διαβάστε περισσότερα

Δημιουργία μιας εφαρμογής Java με το NetBeans

Δημιουργία μιας εφαρμογής Java με το NetBeans Δημιουργία μιας εφαρμογής Java με το NetBeans Για να δημιουργήσετε μια εφαρμογή Java πρέπει να ακολουθήσετε τα εξής βήματα : Αρχικά πρέπει να δημιουργηθεί ένα project το οποίο θα περιέχει όλα τα αρχεία

Διαβάστε περισσότερα

Οδηγίες Χρήσης της MySQL

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Νοέμβριος 2007 1 Περιεχόμενα Εισαγωγή...2

Διαβάστε περισσότερα

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

Διαβάστε περισσότερα

Εξαγωγή Οικονοµικών Αναφορών (Ισολογισµός, Αποτελέσµατα Χρήσης, Λογαριασµοί Γενικής Εκµετάλλευσης) στην Εφαρµογή Ms Excel

Εξαγωγή Οικονοµικών Αναφορών (Ισολογισµός, Αποτελέσµατα Χρήσης, Λογαριασµοί Γενικής Εκµετάλλευσης) στην Εφαρµογή Ms Excel Εξαγωγή Οικονοµικών Αναφορών (Ισολογισµός, Αποτελέσµατα Χρήσης, Λογαριασµοί Γενικής Εκµετάλλευσης) στην Εφαρµογή Ms Excel Η εφαρµογή σε συνεργασία µε τη Microsoft σας προσφέρει τη δυνατότητα να διαχειρίζεστε

Διαβάστε περισσότερα

Συχνές ερωτήσεις - απαντήσεις για τη χρήση του λογισµικού

Συχνές ερωτήσεις - απαντήσεις για τη χρήση του λογισµικού Συχνές ερωτήσεις - απαντήσεις για τη χρήση του λογισµικού Πώς µπορώ να αποκτήσω κωδικούς πρόσβασης στο σύστηµα δήλωσης αυθαιρέτων; Οι κωδικοί πρόσβασης στην ηλεκτρονική εφαρµογή για τις δηλώσεις και βεβαιώσεις

Διαβάστε περισσότερα

Εθνική Υποδομή ΓΕωχωρικών Πληροφοριών

Εθνική Υποδομή ΓΕωχωρικών Πληροφοριών Εθνική Υποδομή ΓΕωχωρικών Πληροφοριών Οργανισμός Κτηματολογίου & Χαρτογραφήσεων Ελλάδας Διαδικτυακές Υπηρεσίες Αναζήτησης και Απεικόνισης ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Διεύθυνση Γεωπληροφορικής Δεκέμβριος 2012 Περιεχόμενα

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1 Σελίδα 1 ΓΕΝΙΚΑ - ΕΙΣΑΓΩΓΗ Το GRS-1 της TOPCON διαθέτει λειτουργικό σύστημα Windows CE NET 6.1 παρέχοντας την δυνατότητα εγκατάστασης οποιασδήποτε εφαρμογής και λογισμικού έκδοσης

Διαβάστε περισσότερα

Η εφαρμογή είναι βελτιστοποιημένη για όλες τις συσκευές ios και Android, με ios 9.x ή νεότερη έκδοση και Android 4.4 ή νεότερη έκδοση.

Η εφαρμογή είναι βελτιστοποιημένη για όλες τις συσκευές ios και Android, με ios 9.x ή νεότερη έκδοση και Android 4.4 ή νεότερη έκδοση. Οδηγίες βήμα προς βήμα για την εφαρμογή Με την εφαρμογή αυτή μπορείτε να χρησιμοποιήσετε ψηφιακά βιβλία (e-books) σε μορφή «Adobe Digital Editions epub» και «Adobe Digital Editions PDF», αρχεία ήχου (e-audios),

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT. Οδηγίες για την εγκατάσταση της εφαρμογής στο κινητό σας

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT. Οδηγίες για την εγκατάσταση της εφαρμογής στο κινητό σας ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT Συγχαρητήρια για την επιλογή σας να προμηθευτείτε την υπηρεσία JustAlert SPOTIT Μετά την ενεργοποίηση της υπηρεσίας, θα έχετε δωρεάν πρόσβαση στην προσωπική σας σελίδα

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΗ ΑΝΑΖΗΤΗΣΗΣ ΤΕΜΑΧΙΟΥ

ΕΦΑΡΜΟΓΗ ΑΝΑΖΗΤΗΣΗΣ ΤΕΜΑΧΙΟΥ ΕΦΑΡΜΟΓΗ ΑΝΑΖΗΤΗΣΗΣ ΤΕΜΑΧΙΟΥ ΕΙΣΑΓΩΓΗ: Ο στόχος της πρώτης Διαδικτυακής Εφαρμογής του Τμήματος Κτηματολογίου και Χωρομετρίας είναι να δώσει στον πολίτη για πρώτη φορά, την δυνατότητα εντοπισμού τεμαχίου

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Τηλ/νιών Τομέας Προγ/σμού & Τεχνολογίας Λογισμικού Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Δρ. Νικόλαος Θ. Λιόλιος Καθηγητής Φεβρουάριος 2012 1. Εισαγωγή Το Visual

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Διαδικτυακό σύστημα διαχείρισης αιτήσεων για μεταπτυχιακό

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Διαδικτυακό σύστημα διαχείρισης αιτήσεων για μεταπτυχιακό ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: Διαδικτυακό σύστημα διαχείρισης αιτήσεων για μεταπτυχιακό ΠΑΠΑΔΟΠΟΥΛΟΣ ΔΗΜΗΤΡΙΟΣ, Α.Μ.: 56/05 Υπεύθυνη Καθηγήτρια: Σατρατζέμη Μαρία, Καθηγήτρια Εξεταστική

Διαβάστε περισσότερα

Stellarium Εγχειρίδιο Οδηγιών

Stellarium Εγχειρίδιο Οδηγιών Προϋποθέσεις συστήματος: Windows (XP, Vista, 7) με DirectX 9.x και τελευταίες ServicePack ή MacOS X 10.3.x (ή υψηλότερη), κάρτα γραφικών 3D με υποστήριξη OpenGL, ελάχ. 512 MB RAM, 1 GB διαθέσιμος χώρος

Διαβάστε περισσότερα

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

Διαβάστε περισσότερα

An innovative and autonomous Location Based e-tourist guide application

An innovative and autonomous Location Based e-tourist guide application An innovative and autonomous Location Based e-tourist guide application Christos Kasketis Department of Telecommunications Science and Technology, University of Peloponnese, Greece Abstract Στόχος της

Διαβάστε περισσότερα

Document Scanning System Ιανουάριος, 2014

Document Scanning System Ιανουάριος, 2014 Document Scanning System Ιανουάριος, 2014 Το DSS, είναι ένα ολοκληρωμένο συστημα διαχείρισης ψηφιοποίησης εγγράφων, αφού εκτός από την διαδικασία ψηφιοποίησης των εγγράφων, αρχειοθετεί και μία σειρά δεδομένων

Διαβάστε περισσότερα