No start-process prompt.
Removed the GetSource from GoogleDataSource that generates a MultiDataSource.
The MultiDataSource is created directly in main, letting each google source manage its time constraint.
Split the GoogleDirectionsParser.loadPoints method into two methods. One reads the points online and one returns them.
Removed the url-direct version of GetData in the google parser.
The XML -> GPSData conversion is handled by the GetData method.
GPSData randomization is done within the bounds of the accuracy of the point.
WithinAccuracy should not multiply distances by 1000. Distances are in meters.
Implemented route-caching in the GoogleDirectionsParser.
The google data source no longer sleeps when starting a new route.
A GoogleDataSource does not yield a point after having waited (it is not considered part of the route).
Simplified the wait-time calculations.
Random (noise) is added after converting routes to intervals, simulating the inaccuracies of GPSData when at the same location.
Retrieving gps_data from the database is done from index 1.
Added a map-generation entry in the DatabaseImport program.
BikeUpdateLocation caches the last known location of each bike - this speeds up the insertion process.
Fixed bug; the update SQL call that sets hasNotMoved, sets it on all gps_data associated with a bike.
Fixed bug; The format for inserted dates used the 12-hour time format, resulting in PM times being translated into AM times.
The database is cleared before the simulation is started.
Reduced the MAX_WAIT_MINUTES constant from 2 hours to 1 hour.