The idea is to crowd source bicycling data in terms of the cycling routes and times to improve biking conditions in cities.
With the help of this data, the city, municipality or region could maintain and provide biking routes that correspond to the demand and enhance services on busy routes. Also analysis in terms of traffic (e.g. traffic lights) could consider the cycling data.
The user just needs to run a mobile application while he is biking to track the route. The tracked routes will then be sent to the server. The anonymously gathered data will be accessible via an open REST API.
The mobile application will provide this set of features:
Feature | Details | Goal | Implemented |
---|---|---|---|
Record Cycling Route | Tracking the GPS coordinates of the mobile phone and saving them on the phone | Must-have | YES |
Upload Tracked Data | Sending the trip information to the server | Must-have | YES |
Provide Cycling Information | Providing information to the user about the tracked routes | As time allows | YES, but only basic tracked data |
Integrate external data | Sending the trip information to the server | Optional | Dummies |
The webserver allows to store and retrieve data through the REST API which provides:
Feature | Details | Goal | Implemented |
---|---|---|---|
Query data | Querying the gathered data in terms of date and location with different granularities to make it accessible for the public. | Must-have | YES |
Add data | Adding new routes with GPS and time information sent by the mobile application | Must-have | YES |
Add meta data to GPS route data | For good searches the GPS data has to be enhanced with meta information like time, country or city. | Must-have | YES |
Different Respond Formats | Providing different formats like GEOJSON or just coordinates as respond | Optional | YES |
To demonstrate what could be done with the data we implemented an example service which accesses the Open Bicycling Data:
Feature | Details | Goal | Implemented |
---|---|---|---|
Bicycling Density Route Usage Map | A map that visualises the Open Bike Data to show busy routes. | Optional | YES |
Focus map and filter data | Focus map by URL params and only request the data of the specified country/region | Optional | YES |
Some details about the implementation.
The complete Open Cycling Data API Documentation is available in .json and .yaml format: open_cycling_data_api.zip
A short summary: The API can be accessed via https://lutcodecamp-niklaskolbe.c9.io/biketracks/{datarequest}/{country}/{region}?{parameters}
It allows following optional parameters:
Example response:
[ { "_id":"54f873dd8a87341d583aa4d2", "country":"finland", "country_code":"fi", "administrative_area_level_1":"", "administrative_area_level_2":"lappeenranta", "locality":"", "postal_code":"53850", "__v":0, "timestamps":[ "2015-03-05T15:17:10.487Z", "2015-03-05T15:17:18.831Z", "2015-03-05T15:17:30.220Z" ], "coordinates":[ { "latitude":61.04799, "longitude":28.08706, "_id":"54f873dd8a87341d583aa4d5" }, { "latitude":61.04657, "longitude":28.09506, "_id":"54f873dd8a87341d583aa4d4" }, { "latitude":61.04767, "longitude":28.09706, "_id":"54f873dd8a87341d583aa4d3" } ] } ]
Request: https://lutcodecamp-niklaskolbe.c9.io/biketracks/geojson/finland?year=2015&month=3
Example response:
{ "type":"FeatureCollection", "features":[ { "type":"Feature", "geometry":{ "type":"LineString", "coordinates":[ [ 61.04767, 28.09706 ], [ 61.04767, 28.09706 ], [ 61.04767, 28.09706 ] ] } } ] }
Request: https://lutcodecamp-niklaskolbe.c9.io/biketracks/coordinates/finland/lappeenranta?year=2015
Example respond:
[ [ 61.06173, 28.10345 ], [ 61.05953, 28.10354 ], [ 61.05568, 28.10794 ] ]
The “external” webservice is accessible via http://lutcodecamp-niklaskolbe.c9.io/{country}/{region}
The web service accesses the Open Cycling Data API and creates a google heat map.
By specifying a country and/or a region the map will be centered and the data filtered accordingly. As for the API, the website accepts the optional parameters year, month and day and also filters the data accordingly.
Presentation: http://bit.ly/OpenCyclingData
Report: codecampreport.pdf
Poster: raritan_poster.pdf
Source code API + webservice: opencyclingdata_heatmap.zip
Source code mobile application: gpstracker-master.7z