def update_data(self):
params = {'origin': self.start,
'destination': self.dest,
'mode': self.mode,
'key': settings.GOOGLE_MAPS_API_KEY}
r = requests.get(settings.GOOGLE_MAPS_BASE_URL, params=params)
routes = r.json().get('routes')
all_routes = []
for route in routes:
duration = sum(leg['duration']['value'] for leg in route['legs']) // 60
all_routes.append({'trajectory_name': route['summary'],
'trip_duration': duration})
if all_routes:
all_routes.sort(key=lambda route: route['trip_duration'])
best_route = all_routes.pop(0)
self.trajectory_name = best_route['trajectory_name']
self.trip_duration = best_route['trip_duration']
self.save()
else:
raise ExternalDataError('No route found')
评论列表
文章目录