-
Notifications
You must be signed in to change notification settings - Fork 2
Δεδομένα που χρησιμοποιούνται στην εφαρμογή
Κατά την αναζήτησή μας για πηγές δεδομένων που θα μπορούσαμε να χρησιμοποιήσουμε στα πλαίσια της εφαρμογής, ψάχναμε για ήδη "έτοιμα" δεδομένα ώστε να μην χρειάζεται να τα δημιουργήσουμε και αυτά από την αρχή.
Τελικά, επιλέξαμε το BODS - Bus Open Data Service, μία υπηρεσία που περιλαμβάνει δεδομένα δρομολογίων, τοποθεσίας, καθώς και εισιτηρίων για όλους τους φορείς αστικών λεωφορείων στην Αγγλία. Όλοι οι φορείς στην Αγλλία είναι υποχρεωμένοι να υποβάλλουν τα δεδομένα αυτά στην υπηρεσία από τον Ιανουάριο του 2021, σε συγκεκριμένα formats που θα αναλύσουμε στην συνέχεια
Η λήψη δεδομένων της υπηρεσίας γίνεται μέσω ενός API, το οποίο είναι ελεύθερα διαθέσιμο. Το μόνο που απαιτείται αρχικά είναι εγγραφή στην πλατφόρμα,
και αυτόματα μετά την επιβεβαίωση του email με το οποίο έγινε εγγραφή, ο χρήστης μπορεί να βρει το προσωπικό API κλειδί του στις ρυθμίσεις λογαριασμού του BODS, όπως φαίνεται παρακάτω:
Για την επισκόπηση των δεδομένων στην πλατφόρμα του BODS, ο χρήστης μπορεί να επισκεφθεί την σελίδα Browse Open Data (Αρχική Σελίδα --> Find Open Bus Data --> Browse data). Τα δεεδομένα διακρίνονται σε 3 κατηγορίες:
- Timetables data, που ακολουθούν το πρότυπο TransXChange
- Location data, που ακολουθούν το πρότυπο SIRI-VM
- Fares data, που ακολουθούν το πρότυπο NeTEx
Εμείς, στα πλαίσια της εφαρμογής μας κάναμε χρήση των 2 πρώτων.
Τα δεδομένα χωρίζονται σε διάφορα datasets, ανάλογα με την κατηγοριοποίηση που έχουν επιλέξει οι operators. Επομένως, ένα data feed μπορεί να έχει δεδομένα μόνο της ίδιας εταιρείας, γραμμής, περιοχής, κ.ά..
Όπως αναφέραμε νωρίτερα, για την χρήση του API απαιτείται εγγραφή στην πλατφόρμα. Η χρήση του είναι ιδιαιτέρως απλή. Για πρόσβαση σε όλα τα metadata (Timetables data) που σχετίζονται με ένα συγκεκριμένο set, κάνουμε χρήση του ακόλουθου API call:
https://data.bus-data.dft.gov.uk/api/v1/dataset/[DATASET_ID]/?api_key=[API_KEY]
, όπου [DATASET_ID]
το Data ID του κάθε Dataset και API_KEY
το προσωπικό κλειδί API. Η απάντηση δίνεται σε JSON, και ένα ενδεικτικό παράδειγμα φαίνεται παρακάτω:
{
"id": 649,
"created": "2019-11-19T15:23:22.334498Z",
"modified": "2019-11-19T15:23:30.314457Z",
"operatorName": "Operator",
"noc": ["NOC1", "NOC2"],
"name": "Operator_Cambridge_1|Citi_20191029_102",
"description": "Line 1 services until Summer 2020",
"comment": "First publication",
"status": "published",
"url": "https://operator.com/MyData/Line1.xml",
"lines": ["1|Citi"],
; "firstStartDate": "2019-10-29T00:00:00Z",
"firstEndDate": "2020-05-01T00:00:00+01:00",
"lastEndDate": "2020-05-01T00:00:00+01:00",
"admin_areas": [{
"atco_code": "050",
"name": "Cambridgeshire"
},
{
"atco_code": "150",
"name": "Essex"
}],
"localities": [
{"gazetteer_id":"N0080359","name":"Addenbrooke's (Cambs)"},
{"gazetteer_id":"N0061155","name":"Arbury (Cambs)"},
{"gazetteer_id":"E0055326","name":"Cambridge (Cambs)"},
{"gazetteer_id":"N0061157","name":"Cherry Hinton"},
{"gazetteer_id":"N0061156","name":"Chesterton (Cambs)"},
{"gazetteer_id":"E0043826","name":"Fulbourn"},
{"gazetteer_id":"N0061158","name":"Kings Hedges"},
{"gazetteer_id":"E0044128","name":"Teversham"},
}]
}
Η παράμετρος url
μας δίνει τον σύνδεσμο για να προσπελάσουμε τα δημοσιευμένα δεδομένα.
Για δεδομένα τοποθεσίας, αντίστοιχα: https://data.bus-data.dft.gov.uk/api/v1/datafeed/[ID]/?api_key=[API_KEY]
Για δεδομένα εισιτηρίων: https://data.bus-data.dft.gov.uk/api/v1/fares/dataset/[ID]/?api_key=[API_KEY]
Σιτήστας Κωνσταντίνος Κυριάκος, Χαλαντζούκας Φοίβος, Προηγμένες Τεχνικές Προγραμματισμού - 2022