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

Μέγεθος: 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 (https://code.google.com/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. https://developers.google.com/maps/documentation/android/map#mapfragment 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" : "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" : "start_location" : { "lat" : , "lng" : , "travel_mode" : "DRIVING" ], "via_waypoint" : [] ], "overview_polyline" : { "points" : 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 του Εθνικού Μετσόβιου Πολυτεχνείου (https://okeanos.grnet.gr/home/) το οποίο δίνει τη δυνατότητα δημιουργίας δωρεάν λογαριασμού για φοιτητές. Ο 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

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

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

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

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

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

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

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 Σελίδα

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ 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 Στοιχεία ιδιοκτησίας

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

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

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

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ 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 ΠΕΡΙΕΧΟΜΕΝΑ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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...

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

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

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

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

XAMPP Apache MySQL PHP javascript xampp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637

8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637 8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637 Υλοποιηση νεων τεχνολογιων (Web GIS, Application Servers) για τη δυναμικη προσβαση μεσω διαδικτυου στη βαση δεδομενων του Ελληνικου Εθνικου Κεντρου Ωκεανογραφικων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Π.Σ. ΦΟΙΤΗΤΟΛΟΓΙΟΥ- ΓΙΑ ΤΟ ΔΙΔΑΣΚΟΝΤΑ (ClassWeb)

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Π.Σ. ΦΟΙΤΗΤΟΛΟΓΙΟΥ- ΓΙΑ ΤΟ ΔΙΔΑΣΚΟΝΤΑ (ClassWeb) ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Π.Σ. ΦΟΙΤΗΤΟΛΟΓΙΟΥ- ΓΙΑ ΤΟ ΔΙΔΑΣΚΟΝΤΑ (ClassWeb) 1. Είσοδος στην υπηρεσία ClassWeb Στη κεντρική σελίδα της υπηρεσίας στα πεδία Όνομα Χρήστη και Κωδικός πρόσβασης πληκτρολογούμε τα στοιχεία

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

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

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

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

Ενημέρωση αλλαγών στην αξιολόγηση ΟΠΣ_ΕΣΠΑ Εγκατάσταση στην Παραγωγή: 13/9/2010

Ενημέρωση αλλαγών στην αξιολόγηση ΟΠΣ_ΕΣΠΑ Εγκατάσταση στην Παραγωγή: 13/9/2010 Ενημέρωση αλλαγών στην αξιολόγηση ΟΠΣ_ΕΣΠΑ ΠΕΡΙΕΧΟΜΕΝΑ Ι. Αλλαγές στο ΣΤΑΔΙΟ Α στην αξιολόγηση (εξέταση πληρότητας) I.1. Προσδιορισμός ερωτημάτων λίστας εξέτασης Λ1 στο ΕΠ I.2. Προσδιορισμός της λίστας

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

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

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

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

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή Τι είναι ένα CMS CMS ή Σύστημα Διαχείρισης Περιεχομένου (Content Management System) ονομάζουμε ένα λογισμικό που μας βοηθά να ελέγχουμε και να διαχειριζόμαστε έναν ιστότοπο δημόσιας ή περιορισμένης πρόσβασης.

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

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

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

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

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

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

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

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα Λιόλιου Γεωργία ΕπιβλέπουσαΚαθηγήτρια: ΣατρατζέµηΜάγια, καθηγήτρια, τµ. ΕφαρµοσµένηςΠληροφορικής, ΠΑΜΑΚ Εισαγωγή Γενικά στοιχεία εφαρµογή

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

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, που κατασκευάζει χάρτες

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΔΙΕΥΘΥΝΣΗ ΜΗΧΑΝΟΡΓΑΝΩΣΗΣ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου Συντάκτες: Παναγιώτα Μπούγια Θεοδώρα Νάνου Ιανουάριος 2015 Περιεχόμενα 1. Εισαγωγή...

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

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

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

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

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

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

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

Λογισμικό Διαχείρισης Καλλιέργειας. Εγχειρίδιο Χρήσης

Λογισμικό Διαχείρισης Καλλιέργειας. Εγχειρίδιο Χρήσης Λογισμικό Διαχείρισης Καλλιέργειας Εγχειρίδιο Χρήσης Περιεχόμενα 1. Περιγραφή Έργου... 3 2. Απαιτήσεις Συστήματος... 4 2.1 Υποστηριζόμενα Λειτουργικά Συστήματα... 4 2.2 Ανάλυση Οθόνης... 4 3. Εγκατάσταση...

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

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης Σελίδα 1από ΤΕΙ ΚΑΒΑΛΑΣ Πτυχιακή εργασία Δικτυακή Εφαρμογή διαχείρισης ηλεκτρονικών εγγράφων υπηρεσίας. ΕΙΣΑΓΩΓΗ Μιλτιάδης Κακλαμάνης Σελίδα 2από Κατάλογος περιεχομένων ΕΙΣΑΓΩΓΗ...1 Σχετιζόμενα πρόσωπα...3

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

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

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

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

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

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

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

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

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

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

Chania a place to visit

Chania a place to visit ΤΕΧΝΙΚΗ ΠΕΡΙΓΡΑΦΗ Εφαρμογή Δήμου Χανίων για Android και ios Chania a place to visit Η εφαρμογή για κινητά τηλέφωνα του Δήμου Χανίων θα αποτελεί μία ολοκληρωμένη υπηρεσία που θα παρέχει τη δυνατότητα στον

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

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε σχετικά με τον έλεγχο της καπνιστικής συνήθειας 1 22 Λογισμικές εφαρμογές καταγραφής και αξιοποίησης πληροφοριών σχετικά με τον έλεγχο της καπνιστικής συνήθειας Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων

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

Αντιγραφή με χρήση της γυάλινης επιφάνειας σάρωσης

Αντιγραφή με χρήση της γυάλινης επιφάνειας σάρωσης Γρήγορη αναφορά Αντιγραφή Δημιουργία αντιγράφων Γρήγορη δημιουργία αντιγράφου 3 Στον πίνακα ελέγχου του εκτυπωτή πατήστε το κουμπί αντίγραφο 4 Εάν τοποθετήσατε το έγγραφο στη γυάλινη επιφάνεια σάρωσης

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

Εφαρμογή Αναζήτησης στον Ελληνικό Γεωγραφικό Χώρο

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

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

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

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

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης

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

Πολυτεχνείο Κρήτης Διεύθυνση Τηλεπικοινωνιών, Δικτύων και Υπολογιστικής Υποδομής Τμήμα Εκπαιδευτικής Υπολογιστικής Υποδομής. Υπηρεσία Ερωτηματολογίου

Πολυτεχνείο Κρήτης Διεύθυνση Τηλεπικοινωνιών, Δικτύων και Υπολογιστικής Υποδομής Τμήμα Εκπαιδευτικής Υπολογιστικής Υποδομής. Υπηρεσία Ερωτηματολογίου Πολυτεχνείο Κρήτης Διεύθυνση Τηλεπικοινωνιών, Δικτύων και Υπολογιστικής Υποδομής Τμήμα Εκπαιδευτικής Υπολογιστικής Υποδομής Υπηρεσία Ερωτηματολογίου Περιεχόμενα Εισαγωγή... 3 Βήματα δημιουργίας ερωτηματολογίου...

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

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48 ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή 6 Δημιουργία λογαριασμού 13 Εγκατάσταση και λειτουργία του Skype 28 Βασικές λειτουργίες 32 Επιλογές συνομιλίας 48 Γενικές ρυθμίσεις Skype 64 Το Skype σε φορητές συσκευές 78 Εγγραφή

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

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

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

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

6 Εισαγωγή στο Wordpress 3.x

6 Εισαγωγή στο Wordpress 3.x Περιεχόμενα 1 Εγκατάσταση του WordPress... 11 Ελάχιστες απαιτήσεις... 11 Easy PHP... 12 Εγκατάσταση Easy PHP... 12 Βήματα εγκατάστασης EasyPHP με εικόνες... 13 Το EasyPHP στα Ελληνικά... 17 Κατέβασμα και

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

Εναλλακτικές Τεχνικές Εντοπισμού Θέσης

Εναλλακτικές Τεχνικές Εντοπισμού Θέσης Εναλλακτικές Τεχνικές Εντοπισμού Θέσης Στρίγκος Θεόδωρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο el01222@mail.ntua.gr Σκοπός της διπλωματικής εργασίας είναι η

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

Περιεχόµενα 1. Εγκατάσταση 2. Εισαγωγή 3. Σύνδεση 4. Ρυθµίσεις 2.1 Περιοχή εργασιών και πλοήγησης 2.2 Περιοχή απεικόνισης "Λεπτοµέρειες" 2.3 Περιοχή απεικόνισης "Στατιστικά" 4.1 Προφίλ 4.2 ίκτυο 4.2.1

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

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

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

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

Θέμα: «Διαδικτιακές Εφαρμογές Μελέτης Ευχρηστίας»

Θέμα: «Διαδικτιακές Εφαρμογές Μελέτης Ευχρηστίας» Θέμα: «Διαδικτιακές Εφαρμογές Μελέτης Ευχρηστίας» Επιβλέπων: Συρμακέσης Σπύρος e-mail: syrma@teimes.gr τηλ: 26310-XXXXX Στόχος είναι η εκμάθηση εργαλείων ελέγχου ευχρηστίας στο διαδίκτυο. Βιβλιογραφική

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

Σελίδα.1/1 www.1999.gr

Σελίδα.1/1 www.1999.gr Σελίδα.1/1 LXT-4 WATCH GPS GSM TRACKER ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Κεφάλαιο 1 γενική εισαγωγή 1.1 Εμφάνιση 1.2 Λειτουργίες Ο κάθε επιλεγμένος αριθμός μπορεί να πάρει τις πληροφορίες θέσης άμεσα μέσω της ερώτησης SMS,

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

ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 8 ΝΟΕΜΒΡΙΟΥ 2014

ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 8 ΝΟΕΜΒΡΙΟΥ 2014 8 ΝΟΕΜΒΡΙΟΥ 2014 ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΝΙΚΟΛΑΟΣ ΜΙΧΑΛΟΔΗΜΗΤΡΑΚΗΣ ΝΙΚΟΛΑΟΣ ΜΙΧΑΛΟΔΗΜΗΤΡΑΚΗΣ - ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ ΥΠΗΡΕΣΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Σολωμού 41, 71306, Ηράκλειο Κρήτης τηλ/φαξ:

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

ΤΕΛΙΚΕΣ ΔΙΠΛΩΜΑΤΙΚΕΣ ΕΡΓΑΣΙΕΣ (6 Μονάδες ECTS)- Ακαδημαϊκό Έτος 2013 2014

ΤΕΛΙΚΕΣ ΔΙΠΛΩΜΑΤΙΚΕΣ ΕΡΓΑΣΙΕΣ (6 Μονάδες ECTS)- Ακαδημαϊκό Έτος 2013 2014 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών, Μηχανικών Η/Υ και Πληροφορικής ΤΕΛΙΚΕΣ ΔΙΠΛΩΜΑΤΙΚΕΣ ΕΡΓΑΣΙΕΣ (6 Μονάδες ECTS)- Ακαδημαϊκό Έτος 2013 2014 1. Ερευνητική Περιοχή: Επεξεργασία

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

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

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

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

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

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

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

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι Παρτώνας Αλέξανδρος Επιβλέπων: Δρ.

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

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

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων.

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. POWERPOINT 2003 1. Τι είναι το PowerPoint (ppt)? Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. 2. Τι δυνατότητες έχει? Δημιουργία παρουσίασης. Μορφοποίηση παρουσίασης. Δημιουργία γραφικών. Δημιουργία

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

Εγχειρίδιο Χρήσης Εφαρμογής TRS Client

Εγχειρίδιο Χρήσης Εφαρμογής TRS Client Εγχειρίδιο Χρήσης Εφαρμογής TRS Client Transaction Reporting System (TRS) Πίνακας Περιεχομένων 1. Γενικά... 3 1.1 Έλεγχος Διαθεσιμότητας... 4 1.2 Επιλογή Αρχείου... 4 1.3 Υπογραφή Αποστολή Δεδομένων...

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

GPS Tracker ΤRΑΚΚΥ Personal

GPS Tracker ΤRΑΚΚΥ Personal GPS Tracker ΤRΑΚΚΥ Personal Σας ευχαριστούμε που προτιμήσατε το σύστημα εντοπισμού / παρακολούθησης πορείας Trakky Personal. Ενσωματώνει τις τελευταίες τεχνολογίες στον τομέα του επιτρέποντάς σας να εντοπίσετε

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

ΕΡΓΟ: ΔΙΕΥΚΡΙΝΙΣΕΙΣ ΥΣΕ-ΠΛΟ-2. Ημερομηνία δημοσίευσης διευκρινίσεων: 19 Δεκεμβρίου 2011

ΕΡΓΟ: ΔΙΕΥΚΡΙΝΙΣΕΙΣ ΥΣΕ-ΠΛΟ-2. Ημερομηνία δημοσίευσης διευκρινίσεων: 19 Δεκεμβρίου 2011 ΕΡΓΟ: «ΠΟΛΙΤΙΣΤΙΚΟΣ ΠΛΟΗΓΟΣ ΤΗΣ ΑΘΗΝΑΣ ΣΕ ΣΥΣΤΗΜΑΤΑ GPS ΚΑΙ ΚΙΝΗΤΑ ΤΗΛΕΦΩΝΑ» ΔΙΕΥΚΡΙΝΙΣΕΙΣ ΥΣΕ-ΠΛΟ-2 Ημερομηνία δημοσίευσης διευκρινίσεων: 19 Δεκεμβρίου 2011 Σύμφωνα με το άρθρο 9.3. της προκήρυξης του

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

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

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

Google Earth. Τσαγκαλίδης Κωνσταντίνος Πληροφορική 29/11/2014

Google Earth. Τσαγκαλίδης Κωνσταντίνος Πληροφορική 29/11/2014 2014 Google Earth Τσαγκαλίδης Κωνσταντίνος Πληροφορική 29/11/2014 2 Περιεχόμενα Πίνακας περιεχομένων Εξώφυλλο... 1 Περιεχόμενα... 2 Εισαγωγή... 3 Βασικά Εργαλεία... 4 -Search Panel -Overview Map - Hide/Show

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗ «ΟΔΗΓΩ ΛΙΓΟ - ΠΛΗΡΩΝΩ ΛΙΓΟ»

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗ «ΟΔΗΓΩ ΛΙΓΟ - ΠΛΗΡΩΝΩ ΛΙΓΟ» ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗ «ΟΔΗΓΩ ΛΙΓΟ - ΠΛΗΡΩΝΩ ΛΙΓΟ» Ιούλιος 2015 Εφαρμογή για κινητά: «Οδηγώ λίγο Πληρώνω λίγο» Διαθεσιμότητα εφαρμογής Η εφαρμογή είναι διαθέσιμη δωρεάν στο App Store (έκδοση ios 7.1 και

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΛΑΤΦΟΡΜΑΣ OPENSMS WWW.OPENSMS.GR

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΛΑΤΦΟΡΜΑΣ OPENSMS WWW.OPENSMS.GR ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΛΑΤΦΟΡΜΑΣ OPENSMS WWW.OPENSMS.GR Τηλέφωνο: 2810-211111 Διαδικασία εισόδου στο opensms Η πρόσβαση στην πλατφόρμα του opensms πραγματοποιείται με την εισαγωγή του Ονόματος χρήστη και του

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

Ξεκινώντας με το MIT Αρρ Inventor. 1 η Εργασία

Ξεκινώντας με το MIT Αρρ Inventor. 1 η Εργασία Ξεκινώντας με το MIT Αρρ Inventor 1 η Εργασία Απαιτήσεις 1. Σύνδεση στο Διαδίκτυο (διότι οι εφαρμογές δημιουργούνται online) 2. Εγκατεστημένος ο Browser Google Chrome 3. Υπαρκτός λογαριασμός Gmail 4. Κατεβάστε

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

«ΖΕΥΣ» Εγχειρίδιο Συμμετοχής σε Ψηφοφορία

«ΖΕΥΣ» Εγχειρίδιο Συμμετοχής σε Ψηφοφορία «ΖΕΥΣ» Εγχειρίδιο Συμμετοχής σε Ψηφοφορία 23 Ιουλίου 2013 Εισαγωγή Η «Ψηφιακή Κάλπη ΖΕΥΣ» είναι ένα πληροφοριακό σύστημα για την αδιάβλητη διεξαγωγή απόρρητων ψηφοφοριών με αμιγώς ηλεκτρονικό τρόπο. Τόσο

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

Τεχνική υποστήριξη λογισμικού HP

Τεχνική υποστήριξη λογισμικού HP Τεχνική υποστήριξη λογισμικού HP Τεχνολογικές υπηρεσίες HP βάσει συμβολαίου Τεχνικά δεδομένα Η τεχνική υποστήριξη λογισμικού HP παρέχει ολοκληρωμένες υπηρεσίες απομακρυσμένης υποστήριξης για προϊόντα λογισμικού

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

Android Studio για Windows

Android Studio για Windows Android Studio για Windows 1. Οδηγίες Εγκατάστασης: 1. Κατεβάστε το Android Studio από εδώ (τελευταία έκδοση 0.4.6, 496 MB): http://developer.android.com/sdk/installing/studio.html 2. Εγκαταστήστε το αρχείο

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

»Τι είναι η Spartan;

»Τι είναι η Spartan; by Spartan Security »Τι είναι η Spartan; 24ωρο Κέντρο Λήψης Σημάτων Συναγερμού και Εικόνας (Κ.Λ.Σ.Σ.). Πάροχος ηλεκτρονικής ασφάλειας μέσω ψηφιακής παρακολούθησης συστημάτων ασφαλείας. Πρώτο Κ.Λ.Σ.Σ. στην

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

Ολοκληρωμένες Δράσεις προβολής δημοσιότητας για το Δήμο Αρχανών Αστερουσίων Εγχειρίδιο Χρήσης - Παρουσίαση

Ολοκληρωμένες Δράσεις προβολής δημοσιότητας για το Δήμο Αρχανών Αστερουσίων Εγχειρίδιο Χρήσης - Παρουσίαση Novel Tech «Μέλος του Επιστημονικού & Τεχνολογικού Πάρκου Κρήτης» http://www.noveltech.gr info@noveltech.gr Ολοκληρωμένες Δράσεις προβολής δημοσιότητας για το Δήμο Αρχανών Αστερουσίων Εγχειρίδιο Χρήσης

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

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα 1 Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα εύκολη, τη στιγμή που γνωρίζουμε ότι ένα σύνθετο δίκτυο

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

Επίπεδο δικτύου IP Forwading κτλ

Επίπεδο δικτύου IP Forwading κτλ Επίπεδο δικτύου IP Forwading κτλ (IP για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):

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

BO.M.I.S BOLLARD MANAGEMENT INFORMATION SYSTEM ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ BOMIS-V1-2012

BO.M.I.S BOLLARD MANAGEMENT INFORMATION SYSTEM ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ BOMIS-V1-2012 BO.M.I.S BOLLARD MANAGEMENT INFORMATION SYSTEM ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ 1 - ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΗΣΗΣ ΑΝΑΔΥΟΜΕΝΩΝ ΠΑΣΑΛΩΝ ΔΙΑΧΕΙΡΗΣΗΣ ΚΥΚΛΟΦΟΡΙΑΣ Το σύστημα διαχείρισης

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

Εγχειρίδιο Χρήσης-Οδηγός Εκπαίδευσης Χρηστών. - Δήμος Δέλτα - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

Εγχειρίδιο Χρήσης-Οδηγός Εκπαίδευσης Χρηστών. - Δήμος Δέλτα - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Ανάπτυξη διαδικτυακής εφαρμογής υποστήριξης των δράσεων περιβαλλοντικής διαχείρισης της παράκτιας ζώνης του Θερμαϊκού Κόλπου και διαδραστικής εφαρμογής αναφοράς περιβαλλοντικών προβλημάτων Εγχειρίδιο Χρήσης-Οδηγός

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕΔΙΑΣΗΣ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕΔΙΑΣΗΣ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ Σχεδίαση Διεπαφής Χρήστη (user interface) για Διαδραστική Εφαρμογή Αναζήτησης Πλοίων σε Τοπική Εμβέλεια, για Κινητές Συσκευές με

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

Δημιουργία ερωτηματολογιου με την πλατφόρμα Limesurvey

Δημιουργία ερωτηματολογιου με την πλατφόρμα Limesurvey Δημιουργία ερωτηματολογιου με την πλατφόρμα Limesurvey Χαρακτηριστικά Πλατφόρμα ανοιχτού κώδικα Δυνατότητα απομακρυσμένης διαχείρησης 27 τύποι ερωτήσεων Δυνατότητα καθορισμού συνθηκών εμφάνισης ανα ερώτηση

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

Τμήμα Πληροφορικής & Τηλεπικοινωνιών Μεταπτυχιακό Πρόγραμμα Σπουδών Ακαδημαϊκό Έτος 2013-14. ΠΜΣ ΚΑΤΕΥΘΥΝΣΗ 6 η

Τμήμα Πληροφορικής & Τηλεπικοινωνιών Μεταπτυχιακό Πρόγραμμα Σπουδών Ακαδημαϊκό Έτος 2013-14. ΠΜΣ ΚΑΤΕΥΘΥΝΣΗ 6 η Τμήμα Πληροφορικής & Τηλεπικοινωνιών Μεταπτυχιακό Πρόγραμμα Σπουδών Ακαδημαϊκό Έτος 2013-14 ΠΜΣ ΚΑΤΕΥΘΥΝΣΗ 6 η Νέες Τεχνολογίες Πληροφορικής και Τηλεπικοινωνιών Εργασία στο Μαθήμα Σχεδίαση Εκπαιδευτικού

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

Γρήγορη Εκκίνηση. Όταν ξεκινήσετε το GeoGebra, εμφανίζεται το παρακάτω παράθυρο:

Γρήγορη Εκκίνηση. Όταν ξεκινήσετε το GeoGebra, εμφανίζεται το παρακάτω παράθυρο: Τι είναι το GeoGebra; Γρήγορη Εκκίνηση Λογισμικό Δυναμικών Μαθηματικών σε ένα - απλό στη χρήση - πακέτο Για την εκμάθηση και τη διδασκαλία σε όλα τα επίπεδα της εκπαίδευσης Συνδυάζει διαδραστικά γεωμετρία,

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

Φυσική Β Γυμνασίου - Κεφάλαιο 2: Κινήσεις ΚΕΦΑΛΑΙΟ 2: ΚΙΝΗΣΕΙΣ. Φυσική Β Γυμνασίου

Φυσική Β Γυμνασίου - Κεφάλαιο 2: Κινήσεις ΚΕΦΑΛΑΙΟ 2: ΚΙΝΗΣΕΙΣ. Φυσική Β Γυμνασίου ΚΕΦΑΛΑΙΟ 2: ΚΙΝΗΣΕΙΣ Φυσική Β Γυμνασίου Εισαγωγή Τα πάντα γύρω μας κινούνται. Στο διάστημα όλα τα ουράνια σώματα κινούνται. Στο μικρόκοσμο συμβαίνουν κινήσεις που δεν μπορούμε να τις αντιληφθούμε άμεσα.

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΞΑΜΗΝΟ Η ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΦΟΙΤΗΤΗ : ΜΟΣΧΟΥΛΑ ΟΛΓΑ ΑΡΙΘΜΟΣ ΜΗΤΡΩΟΥ : 30/02 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΙΑΧΕΙΡΙΣΗΣ ΣΥΝΕ ΡΙΩΝ ΜΕ ΧΡΗΣΗ

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

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

ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΟΔΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΥΠΟΔΕΙΓΜΑΤΟΣ ΓΙΑ ΤΗΝ ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΣΤΟΙΧΕΙΩΝ ΡΕΥΣΤΟΤΗΤΑΣ (BSD07) (ΠΔ.Τ.Ε. 2563/19.7.2005 Ε50) Ιανουάριος 2005 ΓΕΝΙΚΑ... 4 1. Προϋποθέσεις

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

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

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