@@ -12,6 +12,8 @@ import { FeatureFlags, VersionFeatureFlags } from "./models/FeatureFlags";
1212import { updateActivityAreas } from "./controllers/activities/updateActivityAreas" ;
1313import { getActivitySummaryCount } from "./controllers/activities/summary/getActivitySummaryCount" ;
1414import { updateActivityStatus } from "./controllers/activities/updateActivityStatus" ;
15+ import { encode } from "@googlemaps/polyline-codec" ;
16+ import { updateActivityPolylines } from "./controllers/activities/updateActivityPolylines" ;
1517
1618const router = createRouter ( ) ;
1719
@@ -202,12 +204,25 @@ export class ActivityDurableObject {
202204 const speedSum = speeds . reduce ( ( a , b ) => a + b , 0 ) ;
203205 const averageSpeed = ( speedSum / speeds . length ) || 0 ;
204206
207+ const polylines = [ ] ;
208+
209+ for ( let session of sessions ) {
210+ const path = [ ] ;
211+
212+ for ( let location of session . locations ) {
213+ path . push ( [ location . coords . latitude , location . coords . longitude ] ) ;
214+ }
215+
216+ polylines . push ( encode ( path , 5 ) ) ;
217+ }
218+
205219 await Promise . all ( [
206220 createActivitySummary ( this . env . DATABASE , activity . id , "distance" , distance ) ,
207221 createActivitySummary ( this . env . DATABASE , activity . id , "average_speed" , averageSpeed ) ,
208222 createActivitySummary ( this . env . DATABASE , activity . id , "elevation" , elevation ) ,
209223 createActivitySummary ( this . env . DATABASE , activity . id , "max_speed" , maxSpeed ) ,
210- updateActivityAreas ( this . env . DATABASE , activity . id , startArea , finishArea )
224+ updateActivityAreas ( this . env . DATABASE , activity . id , startArea , finishArea ) ,
225+ updateActivityPolylines ( this . env . DATABASE , activity . id , JSON . stringify ( polylines ) )
211226 ] ) ;
212227
213228 await updatePersonalBestActivitySummary ( this . env . DATABASE , activity . user ) ;
0 commit comments