Δευτέρα 13 Φεβρουαρίου 2012

Google Maps


Η διεπαφή και οι λειτουργίες επικοινωνίας με το Google Maps βρίσκονται στην κλάση Routes η οποία υλοποιείται στον Server. Η κλάση Routes εκτός των άλλων περιέχει μια λίστα από διαδρομές (googleRoutes) και είναι υπεύθυνη για την ανάκτηση βασικής και εναλλακτικών διαδρομών από το Google Maps και την παράδοση αυτών στον server του συστήματος. Αναλυτικότερα κατά την δημιουργία ενός αντικειμένου Routes δίνονται το γεωγραφικό μήκος και πλάτος του σημείου εκκίνησης και του σημείου τερματισμού μιας διαδρομής. Ο constructor καλεί την μέθοδο createFirstUrl(String sLat, String sLng, String dLat, String dLng, String type) η οποία δημιουργεί ένα url της μορφής:
όπου τα startLatitude, startlongitude, destinationLatitude και destinationlongitude είναι γεωγραφικά μήκη και πλάτη με την μορφή δεκαδικών αριθμών. Στην συνέχεια, με τη χρήση HTTP Request,  επιστρέφεται η απάντηση σε αρχείο kml, το οποίο δίνεται ως είσοδος στην μέθοδο getRoute(String kml) όπου με τη χρήση Regular Expressions γίνεται parsing και αντλούνται τα Tokens τις διαδρομής. Η διαδρομή αποθηκεύεται στην λίστα googleRoutes.

Στη συνέχεια δημιουργείται ένα νέο url της μορφής:
όπου τα startLatitude, startlongitude, destinationLatitude και destinationlongitude είναι γεωγραφικά μήκη και πλάτη με την μορφή δεκαδικών αριθμών. Στην συνέχεια, με τη χρήση HTTP Request,  επιστρέφεται η απάντηση η οποία δίνεται ως είσοδος στην μέθοδο getAltPoints(String temp) όπου με τη χρήση Regular Expressions γίνεται parsing και αντλούνται τα Alternative Points τα οποία χρησιμοποιούνται για την δημιουργία ερωτημάτων για εναλλακτικές διαδρομές. 

Για κάθε Alternative Point δημιουργείται ένα νέο url της μορφής:
όπου τα startLatitude, startlongitude, destinationLatitude, destinationlongitude, alternativeLatitude και alternativelongitude είναι γεωγραφικά μήκη και πλάτη με την μορφή δεκαδικών αριθμών και τα alternativeLatitude και alternativelongitude απεικονίζουν το εναλλακτικό σημείο απ’ το οποίο πρέπει να περνάει η διαδρομή που θα επιστραφεί. Για κάθε ένα από αυτά τα urls επιστρέφεται ένα αρχείο απάντησης τύπου kml για το οποίο καλείται η μέθοδος getRoute(String kml) όπως προηγουμένως, και αποθηκεύεται η νέα διαδρομή στην λίστα googleRoutes. Τέλος, να σημειωθεί πως για κάθε διαδρομή καλούνται οι μέθοδοι getDistance(String temp), getTime(String temp) και getDirections(String temp) οι οποίες μέσω parsing επιστρέφουν το μήκος, τον χρόνο της διαδρομής και τις οδηγίες πλοήγησης αντίστοιχα.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου