def _make_strava_cache_dict(track: Track) -> typing.Dict[str, Any]: lines_data = [] for line in track.polylines: lines_data.append([{"lat": latlng.lat().degrees, "lng": latlng.lng().degrees} for latlng in line]) return { "name": track.file_names[0], # strava id "start": track.start_time().strftime("%Y-%m-%d %H:%M:%S"), "end": track.end_time().strftime("%Y-%m-%d %H:%M:%S"), "length": track.length_meters, "segments": lines_data, }
def _strava_cache_to_track(data: typing.Dict[str, Any]) -> "Track": t = Track() t.file_names = [data["name"]] t.start_time = datetime.datetime.strptime(data["start"], "%Y-%m-%d %H:%M:%S") t.end_time = datetime.datetime.strptime(data["end"], "%Y-%m-%d %H:%M:%S") t.length_meters = float(data["length"]) t.polylines = [] for data_line in data["segments"]: t.polylines.append([ s2sphere.LatLng.from_degrees(float(d["lat"]), float(d["lng"])) for d in data_line ]) return t