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



Σχετικά έγγραφα
Week 10: Graphical User Interfaces

Ειδικά Θέματα Προγραμματισμού

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #17

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795

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

Αντικειμενοστρεφής Προγραμματισμός

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

Week 12: GUIs with Swing

Οντοκεντρικός Προγραμματισμός

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #18

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Προγραμματισμός Διαδικτύου

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

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

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

Ειδικά Θέματα Προγραμματισμού

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Αντικειμενοστρεφής Προγραμματισμός

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2007 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες.

2.1 Αντικειµενοστρεφής προγραµµατισµός

Δομημένος Προγραμματισμός

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

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

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

Αντικειμενοστρεφής Προγραμματισμός

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

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

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

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

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

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Δημητρίου Σωτήρης 6417

ημιουργία Γραφικού Περιβάλλοντος

Βιοϊατρική τεχνολογία

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι

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

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

ΑΥΤΟΜΑΤΟ ΣΥΣΤΗΜΑ ΕΝΑΛΛΑΓΗΣ ΤΑΧΥΤΗΤΩΝ ΣΕ ΠΟΔΗΛΑΤΟ

Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Με την συγχρηµατοδότηση. της Ελλάδας και. της Ευρωπαϊκής Ένωσης

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α.

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

Προγραμματισμός Διαδικτύου

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

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

Εγκατάσταση του AutoCAD

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

Αντικειμενοστραφής Προγραμματισμός

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

Εργαστήριο 2 - Άσκηση - Ανάλυση

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

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

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

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

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

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

Οδηγός Σύγχρονης Τηλεκπαίδευσης για καθηγητές

ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021

Οντοκεντρικός Προγραμματισμός

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ

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

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

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

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

9.1 JFC Swing. 9.1 JFC Swing Java (GUI) Java. Java Foundation Classes (JFC) Swing GUI. JFC Card Pile GameFrame GUI

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

Αντικειμενοστραφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

Vodafone Business Connect

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

MIDEA Smart Χρήση για Air Conditions

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

Αντικειμενοστρεφής Προγραμματισμός

Εισαγωγή στον Προγραμματισμό με C++

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Προγραμματισμός Διαδικτύου

Transcript:

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

ΠΕΡΙΛΗΨΗ Τα τελευταία χρόνια η αναζήτηση διάφορων σημείων στον Ελληνικό χάρτη και κατ επέκταση στον Παγκόσμιο, όλο και αυξάνεται. Έχουν σχεδιαστεί διάφορες εφαρμογές ακόμα και συσκευές για την εξυπηρέτηση των χρηστών. Λόγω του μεγάλου όγκου δεδομένων όμως στις εφαρμογές αυτές, πολλές φορές παρουσιάζεται καθυστέρηση στην εμφάνιση των αποτελεσμάτων αναζήτησης. Μία από τις λύσεις είναι να εισάγει ο χρήστης ένα αντικείμενο της επιλογής του. Το αντικείμενο αυτό μπορεί να είναι διαφόρων μορφών όπως για παράδειγμα μια φωτογραφία, ένα σχέδιο AutoCAD ακόμα και αρχείο εξαγωγής του Photoshop. Η επιλογή είναι του προγραμματιστή ή του ατόμου που θα το δημιουργήσει. Το κέρδος αυτής της επιλογής είναι ότι ο όγκος των δεδομένων αναζήτησης είναι ο ίδιος αλλά κερδίζουμε σε μέγεθος. Όταν σε ένα GPS πρέπει να κατεβούν και εγκατασταθούν οι χάρτες διάφορων χωρών, η καθυστέρηση είναι μεγάλη. Από πολλά λεπτά ως και ώρες. Το κατέβασμα όμως και η εγκατάσταση των παραπάνω αντικειμένων είναι υπόθεση μερικών δευτερολέπτων. Λιάνος Άγγελος Σελίδα 2

ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΛΗΨΗ............2 ΠΕΡΙΕΧΟΜΕΝΑ... 3 ΠΡΟΛΟΓΟΣ... 4 ΚΕΦΑΛΑΙΟ 1 ΠΕΡΙΓΡΑΦΗ ΚΕΦΑΛΑΙΩΝ......5 ΚΕΦΑΛΑΙΟ 2 - ΑΝΑΛΥΣΗ.7 2.1 ΑΝΤΙΚΕΙΜΕΝΟ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ.... 8 2.2 ΕΠΙΛΟΓΕΣ ΚΑΙ ΑΙΤΙΟΛΟΓΗΣΗ.8 ΚΕΦΑΛΑΙΟ 3 ΠΡΟΒΛΗΜΑΤΑ 9 3.1 ΠΡΟΒΛΗΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ 10 ΚΕΦΑΛΑΙΟ 4 ΠΡΟΤΑΣΕΙΣ ΚΑΙ ΣΥΜΠΕΡΑΣΜΑΤΑ....11 4.1 ΠΡΟΤΑΣΕΙΣ ΒΕΛΤΙΩΣΗΣ ΑΡΧΙΚΗΣ ΙΔΕΑΣ...12 4.2 ΣΥΜΠΕΡΑΣΜΑΤΑ..12 ΑΝΑΦΟΡΕΣ (ΒΙΒΛΙΟΓΡΑΦΙΑ).13 ΠΑΡΑΡΤΗΜΑ 1 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ..15 Π.1.1 ΦΟΡΤΩΣΗ ΧΑΡΤΗ........16 Π.1.2 ΕΠΙΛΟΓΗ ΣΗΜΕΙΩΝ ΑΠΟ ΤΟΝ ΧΑΡΤΗ....17 Π.1.3 ΕΜΦΑΝΙΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ.18 ΠΑΡΑΡΤΗΜΑ 2 - ΠΙΝΑΚΕΣ ΑΠΟΣΤΑΣΕΩΝ...19 ΠΙΝΑΚΑΣ 1..20 ΠΙΝΑΚΑΣ 2..21 ΠΙΝΑΚΑΣ 3..22 ΠΑΡΑΡΤΗΜΑ 3 ΚΛΑΣΕΙΣ & ΣΥΝΑΡΤΗΣΕΙΣ... 23 ΠΑΡΑΡΤΗΜΑ 4 ΛΕΞΙΛΟΓΙΟ ΔΕΔΟΜΕΝΩΝ..28 Λιάνος Άγγελος Σελίδα 3

ΠΡΟΛΟΓΟΣ Η πτυχιακή εργασία αναφέρεται σε μία Εφαρμογή αναζήτησης στον Ελληνικό Γεωγραφικό Χώρο. Ο χρήστης μπορεί να κάνει εισαγωγή αντικειμένων, όπως για παράδειγμα φωτογραφιών, να αναζητεί σημεία της επιλογής του που βρίσκονται στον συγκεκριμένο χώρο και αυτόματα να υπολογίζεται η απόσταση των δύο αυτών σημείων καθώς επίσης και η συντομότερη διαδρομή που προτείνεται να ακολουθηθεί. Στην συγκεκριμένη εργασία ο Ελληνικός Γεωγραφικός Χώρος είναι το ΤΕΙ Καβάλας. Το αντικείμενο εισαγωγής είναι φωτογραφία που απεικονίζει την κάτοψη του ΤΕΙ σε διάσταση 2D με εμφανή τα σημεία αναζήτησης τόσο στον χάρτη, όσο και σε μία φόρμα αναζήτησης όπου είναι καταχωρημένα και χωρισμένα σε κατηγορίες. Λιάνος Άγγελος Σελίδα 4

ΚΕΦΑΛΑΙΟ 1 ΠΕΡΙΓΡΑΦΗ ΚΕΦΑΛΑΙΩΝ Λιάνος Άγγελος Σελίδα 5

Αναλύεται τόσο η μεθοδολογία σχεδιασµού της εφαρµογής όσο και η υλοποίηση της. Αποτελείται από συνολικά τέσσερα κεφάλαια και τέσσερα παρατήματα: Στο πρώτο κεφάλαιο γίνεται µια περιγραφή των κεφαλαίων και παραρτημάτων που ακολουθούν και το περιεχόμενό τους. εισαγωγή και μία μικρή ανάλυση του θεωρητικού κομματιού της εργασίας. Στο δεύτερο κεφάλαιο γίνεται ανάλυση του αντικειμένου και της εργασίας καθώς και οι επιλογές που υπήρχαν με επεξήγηση των λόγων που οδήγησαν στις επιλογές αυτές. Στο τρίτο κεφάλαιο παρουσιάζονται τα προβλήματα, οι λύσεις και τα συμπεράσματα που υπήρξαν κατά την υλοποίηση της εργασίας. Στο τέταρτο κεφάλαιο παρουσιάζοντα κάποιες προτάσεις βελτίωσης της αρχικής ιδέας και τα συμπεράσματα που βγήκανε μετά το πέρας της εργασίας. Ακολουθούν αναφορές σε βιβλία και σελίδες του διαδικτύου που κατέστησαν δυνατή την πραγματοποίηση της πτυχιακής εργασίας παρέχοντας τόσο θεωρητικό υλικό όσο και λύσεις σε πρακτικά προγραμματιστικά προβλήματα. Στο πρώτο παράρτημα δίνεται ένα κατά το δυνατόν κατανοητό εγχειρίδιο χρήσης για τον τελικό χρήστη, στο οποίο προβάλλονται και screenshots της εφαρµογής. Στο δεύτερο παράρτημα παρουσιάζονται οι πίνακες με τις αποστάσεις μεταξύ όλων των σημείων (από όλα τα σημεία προς όλους τους πιθανούς προορισμούς). Στο τρίτο παράρτημα παρουσιάζονται όλες οι κλάσεις, οι συναρτήσεις και ο κώδικας με επεξήγηση για τυχών χρήση από άλλους προγραμματιστές. Τέλος, στο τέταρτο παράρτημα υπάρχει το λεξιλόγιο δεδομένων με αναφορά σε όλες τις κλάσεις ονομαστικά και περιγραφή των. Λιάνος Άγγελος Σελίδα 6

ΚΕΦΑΛΑΙΟ 2 ΑΝΑΛΥΣΗ Λιάνος Άγγελος Σελίδα 7

2.1 ΑΝΤΙΚΕΙΜΕΝΟ ΤΗΣ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ Αντικείμενο της παρούσας πτυχιακής εργασίας είναι η μελέτη, σχεδίαση και ανάπτυξη εφαρμογής κατά την οποία εξουσιοδοτημένοι χρήστες της εφαρμογής να έχουν τη δυνατότητα να αναζητήσουν σημεία ενδιαφέροντος (π.χ. ξενοδοχεία, αρχαιολογικούς χώρους), τις χιλιομετρικές τους αποστάσεις από ένα σημείο της επιλογής τους, οδηγίες διαδρομών προς αυτά και τέλος ποια σημεία ενδιαφέροντος βρίσκονται εντός συγκεκριμένης απόστασης ( π.χ. 5 χιλ ) από ένα σημείο της επιλογής τους. Στην συγκεκριμένη εργασία οι αναζητήσεις αυτές περιορίζονται στο ΤΕΙ Καβάλας. Στα πλαίσια της δημιουργίας της εφαρμογής, σχεδιάστηκε και υλοποιήθηκε µε την πλατφόρμα Eclipse SDK Version : 3.7.2 με γλώσσα προγραμματισμού Java. Η διαδικτυακή εφαρμογή αποτελεί βελτίωση της υπάρχουσας. 2.2 ΕΠΙΛΟΓΕΣ ΚΑΙ ΑΙΤΙΟΛΟΓΗΣΗ Για την υλοποίηση της εφαρμογής επιλέχθηκε η πλατφόρμα Eclipse SDK Version : 3.7.2 με γλώσσα προγραμματισμού Java. Η επιλογή της συγκεκριμένης πλατφόρμας έγινε κατόπιν έρευνας και σύγκρισης. Καλύπτει όλες τις προϋποθέσεις για την γλώσσα προγραμματισμού Java και είναι η τελευταία αναβαθμισμένη έκδοση. Επίσης είναι εύκολη και εύχρηστη για τον προγραμματιστή. Ο σχεδιασμός των χαρτών έγινε στην Ζωγραφική και η μορφή της είναι jpg. Η επιλογή αυτών έγινε γιατί το μέγεθος των χαρτών είναι μικρό, η υλοποίησή των ήταν πιο γρήγορη σχετικά με το Photoshop ή το AutoCAD τα οποία χρειάζονται εξειδικευμένες γνώσεις. Οι υπολογισμοί των αποστάσεων γίνανε με εργαλείο του Photoshop. Λιάνος Άγγελος Σελίδα 8

ΚΕΦΑΛΑΙΟ 3 ΠΡΟΒΛΗΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ Λιάνος Άγγελος Σελίδα 9

3.1 ΠΡΟΒΛΗΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ Προβλήματα που υπήρξαν και η λύση τους. Ένα πρόβλημα που υπήρξε και αντιμετωπίστηκε ήταν το πως θα υπάρχει αμφίδρομη επικοινωνία χρήστη-προγράμματος. Δηλαδή το πρόγραμμα να ανταποκρίνεται κατάλληλα στο πάτημα των διαφόρων κουμπιών του προγράμματος. Αυτό το πρόβλημα αντιμετωπίστηκε με την χρήση actionlisteners και eventhandlers. Το πάτημα ενός κουμπιού αντιμετωπίζεται σαν event το οποίο ακούει το πρόγραμμα. Ένα άλλο πρόβλημα που υπήρξε ήταν η τοποθέτηση των διαφόρων στοιχείων στην κατάλληλη θέση μέσα στην οθόνη. Όλα τα στοιχεία χρειαζόταν τον προσδιορισμό των συντεταγμένων της θέσης τους μέσα στο παράθυρο καθώς και το μέγεθος τους. Το πρόβλημα αυτό αντιμετωπίστηκε με πολλές δοκιμές στον προσδιορισμό των συντεταγμένων. Πρόβλημα υπήρξε επίσης με την χρήση κάποιων βιβλιοθηκών της Java οι οποίες ήταν απαραίτητες για την σύνταξη του κώδικα. Οι βιβλιοθήκες αυτές είναι πάρα πολλές όπως και τα λεγόμενα jar αρχεία που τις περιέχουν. Είναι αρκετά εύκολο να βρεθούν τα εν λόγω αρχεία αλλά πολλά από αυτά περιέχουν πολλές βιβλιοθήκες, εκ των οποίων οι περισσότερες δεν χρησίμευαν στο δικό μας πρόγραμμα. Οπότε ουσιαστικά το πρόβλημα ήταν να χρησιμοποιηθούν όσο το δυνατόν λιγότερες από αυτές. Το πρόβλημα λύθηκε μετά από αναζήτηση αρχείων jar και των περιεχομένων τους. Και τέλος, πρόβλημα υπήρξε και στην δημιουργία των χαρτών. Η αρχική ιδέα ήταν ο χάρτης να γίνει στο AutoCAD. Αυτό θα έκανε την εφαρμογή πιο εύκολη για τον προγραμματισμό λόγω του ότι τα σχέδια του AutoCAD είναι διαφορετικά σημεία και έτσι θα ήταν πιο εφικτό το να τσιμπηθούν αυτά τα σημεία το κάθε ένα ξεχωριστά. Πιο εύκολος θα ήταν και ο υπολογισμός των αποστάσεων διότι θα γινόταν αυτόματα. Λόγω έλλειψης γνώσεων και χρήσης του παραπάνω προγράμματος, οι εικόνες που εμφανίζουν τα αποτελέσματα, σχεδιάστηκαν μία μία στην ζωγραφική και εμφανίζεται η αντίστοιχα φωτογραφία ανάλογα τις αναζητήσεις του χρήστη. Λιάνος Άγγελος Σελίδα 10

ΚΕΦΑΛΑΙΟ 4 ΠΡΟΤΑΣΕΙΣ ΚΑΙ ΣΥΜΠΕΡΑΣΜΑΤΑ Λιάνος Άγγελος Σελίδα 11

4.1 ΠΡΟΤΑΣΕΙΣ ΒΕΛΤΙΩΣΗΣ ΑΡΧΙΚΗΣ ΙΔΕΑΣ Η ιδέα της παρούσας εργασίας γεννήθηκε για την ευκολότερη και γρηγορότερη εξυπηρέτηση των χρηστών που χρησιμοποιούνε εφαρμογές αναζήτησης σε γεωγραφικούς χώρους. Οι εφαρμογές αυτές είναι είτε εφαρμογές εγκατεστημένες σε Η/Υ είτε σε συσκευές και ονομάζονται GPS. Για να δουλέψουνε οι παραπάνω συσκευές (GPS), πρέπει ο χρήστης να κάνει εισαγωγή χαρτών για την εξυπηρέτησή του. Η διαδικασία της εγκατάστασης δεν είναι χρονοβόρα. Χρονοβόρα όμως είναι η διαδικασία του να κατεβάσει τους χάρτες της αρεσκείας του από το διαδίκτυο λόγω του μεγάλου όγκου δεδομένων. Όσο για τις εφαρμογές που είναι εγκατεστημένες σε Η/Υ, η εμφάνιση των αποτελεσμάτων είναι λίγο χρονοβόρα. Κάποιες γνωστές εφαρμογές είναι το Google Maps ή το Google Earth. Για να δουλέψουνε φυσικά απαιτείται σύνδεση στο internet. Ακόμα και η διαδικασία εγκατάστασης ίσως σε κάποιους να φανεί περίπλοκη. Η λύση των παραπάνω είναι μία εφαρμογή που υλοποιείται στη παρούσα εργασία. Η συγκεκριμένη εφαρμογή δεν χρειάζεται σύνδεση στο internet για να δουλέψει ούτε εγκατάσταση (portable). Ακόμα και η χρήση της είναι πολύ απλή και παρουσιάζεται στο επόμενο κεφάλαιο. Για να δουλέψει χρειάζεται μόνο εισαγωγή χαρτών που έχουν ήδη δημιουργηθεί. Οι χάρτες μπορεί να δημιουργηθούν από προγράμματα σχεδίασης όπως το AutoCAD, το Photoshop ή το Paint. 4.2 ΣΥΜΠΕΡΑΣΜΑΤΑ Συνοπτικά, η εφαρμογή είναι ένα εύχρηστο εργαλείο για τον χρήστη και βοηθητικό για κάποιον που δεν έχει εξειδικευμένες γνώσεις στους Η/Υ και στο διαδίκτυο. Το περιβάλλον είναι απλό και ευχάριστο και τα αποτελέσματα που εμφανίζονται είναι σαφής και κατανοητά. Ο κώδικας επίσης είναι εύκολος και κατανοητός για τους προγραμματιστές που θα ήθελαν να τον διαβάσουν ή και να τον επεκτείνουν. Ένα καλό για επόμενο βήμα θα ήταν η εφαρμογή να γίνει δικτυακή καθώς επίσης να υλοποιηθεί ώστε να είναι συμβατή και με άλλα λειτουργικά συστήματα όπως το ios ή τα Linux ακόμη και για Android ώστε να διαβάζεται και από τα Smart phones. Λιάνος Άγγελος Σελίδα 12

ΑΝΑΦΟΡΕΣ (ΒΙΒΛΙΟΓΡΑΦΙΑ) Λιάνος Άγγελος Σελίδα 13

Επιμέλεια Βιβλίου Εισαγωγή στην Java, Γιώργος Λιακέας, (2002), Εκδόσεις Κλειδάριθμος, www.klidarithmos.gr Thinking in Java, by Bruce Eckel, (2002) Java 2 Platform Unleashed, by Jamie Jaworski (1999) Διατριβή, Πτυχιακή Εργασία, Μεταπτυχιακή Εργασία Κεχαγιάς Ηλίας ΔΙΑΧΕΙΡΙΣΗ ΤΗΣ ΚΕΝΤΡΙΚΗΣ ΑΠΟΘΗΚΗΣ ΤΟΥ Α.Τ.Ε.Ι. ΛΑΡΙΣΑΣ ΜΕΣΩ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ (2011), http://ifestos.teilar.gr/index.php?option=com_docman&task=doc_view&gid=44 Ραυτόπουλος Μιχαήλ, «Η Εφαρμογή του SAP στα Logistics» (2008), http://libkas.teikoz.gr/2008/ptyxiakes/raytopoulos_mixalis.pdf Διαδίκτυο http://www.asp.net/get-started http://www.asp.net/vnext http://www.heraklion.gr/e-heraklion/gis/gis.html http://www.allinterview.com/showanswers http://www.java.com/en/download/faq/develop.xml http://www.javacoffeebreak.com/tutorials/index.html http://postokano.gr/syntaksi-kai-domi-mias-ptyxiakis-ergasias ipad Application Java API Lookup J2SE 5.0, version 1.0, by Hian Zin Jong (2009) Λιάνος Άγγελος Σελίδα 14

ΠΑΡΑΡΤΗΜΑ 1 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Λιάνος Άγγελος Σελίδα 15

Π.1.1 ΦΟΡΤΩΣΗ ΧΑΡΤΗ Αυτή είναι η πρώτη εικόνα του προγράμματος. Εδώ ο χρήστης από την επιλογή «Φόρτωση χάρτη» κάνει την εισαγωγή του αντικειμένου. Λιάνος Άγγελος Σελίδα 16

Π.1.2 ΕΠΙΛΟΓΗ ΣΗΜΕΙΩΝ ΑΠΟ ΤΟΝ ΧΑΡΤΗ Αφού έχει γίνει η επιλογή του αντικειμένου, εμφανίζεται ο χάρτης με όλα τα σημεία αναζήτησης και τις πιθανές διαδρομές. Οι επιλογές «σημείο 1» και «σημείο 2» περιμένουνε να πάρουνε τιμή. Λιάνος Άγγελος Σελίδα 17

Π.1.3 ΕΜΦΑΝΙΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ Αφού ο χρήστης δώσει δύο σημεία αναζήτησης, πατάει το κουμπί εμφάνιση και στον χάρτη εμφανίζονται τα δύο αυτά σημεία με την συντομότερη διαδρομή που προτείνεται να ακολουθηθεί και η μεταξύ τους απόσταση. Επίσης δίνεται η επιλογή ώστε ο χρήστης να κάνει zoom in και zoom out. Λιάνος Άγγελος Σελίδα 18

ΠΑΡΑΡΤΗΜΑ 2 ΠΙΝΑΚΕΣ ΑΠΟΣΤΑΣΕΩΝ Λιάνος Άγγελος Σελίδα 19

ΠΙΝΑΚΑΣ 1 Λιάνος Άγγελος Σελίδα 20

ΠΙΝΑΚΑΣ 2 Λιάνος Άγγελος Σελίδα 21

ΠΙΝΑΚΑΣ 3 Λιάνος Άγγελος Σελίδα 22

ΠΑΡΑΡΤΗΜΑ 3 ΚΛΑΣΕΙΣ & ΣΥΝΑΡΤΗΣΕΙΣ Λιάνος Άγγελος Σελίδα 23

1) Class gt_nv Είναι η κλάση που σε αυτήν περιέχεται όλος ο κώδικας. 2) private void button1mouseclicked(mouseevent e) Είναι η συνάρτηση που όταν πιέζεται το κουμπί "Εμφάνιση" επιστρέφει την απόσταση και εμφανίζει την εικόνα. Πιο αναλυτικά όπως φαίνεται παρακάτω αρχικά οι μεταβλητές a και b παίρνουν σαν τιμή το index από τα scrollbuttons και υπολογίζεται η απόσταση των δύο κτιρίων. Τέλος καλείται η συνάρτηση initcomponents που θα περιγραφεί παρακάτω. a=combobox1.getselectedindex(); b=combobox2.getselectedindex(); if (a<b){ distance=distances[b][a]; } if(b<a){ distance=distances[a][b]; } if(b==a){distance=0; initcomponents(); 3) Οι συναρτήσεις που καλούνται όταν επιλέγονται οι τοποθεσίες από τα scrollbuttons 1 και 2. private void combobox1mouseclicked(mouseevent e) {} private void combobox2mouseclicked(mouseevent e) {} 4) Οι συναρτήσεις που καλούνται όταν επιλέγεται ένα από τα κουμπιά του menu (Εμφάνιση χάρτη και έξοδος). private void menuitem1mousepressed(mouseevent e) { c=1; initcomponents(); } private void menuitem2mousepressed(mouseevent e) { System.exit(0); } Λιάνος Άγγελος Σελίδα 24

5) public gt_nv() Αποτελεί τον constructor της κλάσης και μέσα σε αυτόν καλείται η initcomponents() για να αρχικοποιηθούν τα γραφικά. 6) private void initcomponents() Είναι η συνάρτηση στην οποία δημιουργούνται τα γραφικά του προγράμματος. menubar1 = new JMenuBar(); menu1 = new JMenu(); menuitem1 = new JMenuItem(); menuitem2 = new JMenuItem(); button1 = new JButton(); button2=new JButton(); textarea1 = new JTextArea(); desktoppane1 = new JDesktopPane(); menubar1 = new JMenuBar(); menu1 = new JMenu(); combobox1 = new JComboBox(names); combobox2 = new JComboBox(names); button1 = new JButton(); scalejpanel=new JPanel(); percentjlabel=new JLabel("scale percent:"); scaleinputjtextfield=new JTextField("100"); scalechangejbutton=new JButton("Ζουμ"); scalejpanel.add(percentjlabel); scalejpanel.add(scaleinputjtextfield); scalejpanel.add(scalechangejbutton); add(scalejpanel,borderlayout.north); 7) public static void main(string [] args) Είναι η συνάρτηση main που τρέχει το πρόγραμμα. Ο κώδικας της έχει μία πολύ απλή λειτουργία, να καλεί τον constructor και να ορίζει το μέγεθος του παραθύρου πάνω στο οποίο θα τοποθετηθούν όλα τα στοιχεία του προγράμματος. gt_nv gridbagframe=new gt_nv(); gridbagframe.setsize(900,900); gridbagframe.setvisible(true); Λιάνος Άγγελος Σελίδα 25

8) private class DrawJPanel extends JPanel Σε αυτήν την κλάση υπάρχει η public void paintcomponent(graphics g) που κάνει το zoom in και το zoom out. Αναλυτικά ο κώδικας φαίνεται παρακάτω. public void paintcomponent(graphics g) { super.paintcomponent(g); double sparewidth=getwidth()-scalevalue*image.geticonwidth(); double spareheight=getheight()-scalevalue*image.geticonheight(); } g.drawimage(image.getimage(), (int)(sparewidth)/2,(int)(spareheight/2), (int)(image.geticonwidth()*scalevalue), (int)(image.geticonheight()*scalevalue),this); όταν δοθεί η εντολή για αλλαγή κλίμακας μέσω της βοήθειας της συνάρτησης drawimage σχεδιάζεται η εικόνα αλλά με διαφορετική κλίμακα. Το γραφικό περιβάλλον αποτελείται από ένα panel μέσα στο οποίο υπάρχουν στοιχεία menu, scrollbuttons και textareas. Για το κάθε ένα από αυτά τα στοιχεία προσδιορίζεται η θέση του μέσα στο παράθυρο και αρχικοποιείται. Για παράδειγμα: στοιχεία τοποθέτησης και μεγέθους του scrollbutton1 combobox1.setbounds(1, 20, 250, combobox1.getpreferredsize().height); αρχικοποίηση του scrollbutton1 button1 = new JButton(); Πολύ σημαντικό τμήμα του κώδικα είναι αυτό που δίνει στο πρόγραμμα την ικανότητα να καταλάβει το πότε πιέζεται κάποιο κουμπί. Παρατίθεται ο κώδικας για ένα μόνο από αυτά αφού η βασική ιδέα είναι ίδια. button1.addmouselistener(new MouseAdapter() { public void mouseclicked(mouseevent e) { button1mouseclicked(e); }); } Λιάνος Άγγελος Σελίδα 26

Εδώ φαίνεται ότι το πάτημα ενός πλήκτρου του προγράμματος αντιμετωπίζεται σαν γεγονός. Το πρόγραμμα ακούει αυτά τα γεγονότα και δρα αναλόγως. Ομοίως και στο παρακάτω παράδειγμα το πάτημα του πλήκτρου για την αλλαγή διάστασης φαίνεται στο πρόγραμμα σαν μία προς εκτέλεση πράξη. scalechangejbutton.addactionlistener( new ActionListener() { public void actionperformed(actionevent e) { scalevalue=double.parsedouble( ); scaleinputjtextfield.gettext())/100.0; repaint(); } } Λιάνος Άγγελος Σελίδα 27

ΠΑΡΑΡΤΗΜΑ 4 ΛΕΞΙΛΟΓΙΟ ΔΕΔΟΜΕΝΩΝ Λιάνος Άγγελος Σελίδα 28

1. class gt_nv (Σελίδα 24) Είναι η κλάση που σε αυτήν περιέχεται όλος ο κώδικας. 2. private void button1mouseclicked (Σελίδα 24) Είναι η συνάρτηση που όταν πιέζεται το κουμπί "Εμφάνιση" επιστρέφει την απόσταση και εμφανίζει την εικόνα. 3. private void combobox2mouseclicked (Σελίδα 24) private void combobox1mouseclicked (Σελίδα 24) Οι συναρτήσεις που καλούνται όταν επιλέγονται οι τοποθεσίες από τα scrollbuttons 1 και 2. 4. private void menuitem1mousepressed (Σελίδα 24) private void menuitem2mousepressed (Σελίδα 24) Οι συναρτήσεις που καλούνται όταν επιλέγεται ένα από τα κουμπιά του menu (Εμφάνιση χάρτη και έξοδος). 5. public gt_nv (Σελίδα 25) Αποτελεί τον constructor της κλάσης και μέσα σε αυτόν καλείται η initcomponents() για να αρχικοποιηθούν τα γραφικά. 6. private void initcomponents (Σελίδα 25) Είναι η συνάρτηση στην οποία δημιουργούνται τα γραφικά του προγράμματος. 7. public static void main (Σελίδα 25) Είναι η συνάρτηση main που τρέχει το πρόγραμμα. 8. private class DrawJPanel extends JPanel (Σελίδα 26) Σε αυτήν την κλάση υπάρχει η public void paintcomponent(graphics g) που κάνει το zoom in και το zoom out. Λιάνος Άγγελος Σελίδα 29