diff --git a/samples/directions-advanced/index.ts b/samples/directions-advanced/index.ts
index e06c9da8..d0fe5db2 100644
--- a/samples/directions-advanced/index.ts
+++ b/samples/directions-advanced/index.ts
@@ -156,6 +156,14 @@ function createRoutesTable(response: woosmap.map.DirectionResult) {
const directionTripElements = response.routes.map(
(route: woosmap.map.DirectionRoute, index: number) => {
const leg = route.legs[0];
+ const distanceTotal = route.legs.reduce(
+ (total, leg) => total + leg.distance.value,
+ 0,
+ );
+ const durationTotal = route.legs.reduce(
+ (total, leg) => total + leg.duration.value,
+ 0,
+ );
const directionTrip = document.createElement("div");
directionTrip.className = "directionTrip";
if (index === 0) {
@@ -169,11 +177,11 @@ function createRoutesTable(response: woosmap.map.DirectionResult) {
-
${leg.duration.text}
-
${leg.distance.text}
+
${formatTime(durationTotal)}
+
${formatDistance(distanceTotal)}
through ${leg.start_address ? leg.start_address : JSON.stringify(leg.start_location)}
-
${leg.duration.text} ${(directionsRequest.departure_time || directionsRequest.arrival_time) ? "with" : "without"} traffic
+
${formatTime(durationTotal)} ${directionsRequest.departure_time || directionsRequest.arrival_time ? "with" : "without"} traffic
`;
@@ -187,6 +195,24 @@ function createRoutesTable(response: woosmap.map.DirectionResult) {
},
);
+ function formatDistance(meters: number): string {
+ if (meters < 1000) {
+ return `${meters} m`;
+ } else {
+ return `${(meters / 1000).toFixed(2)} km`;
+ }
+ }
+
+ function formatTime(seconds: number): string {
+ const minutes = Math.round(seconds / 60);
+ if (minutes < 60) {
+ return `${minutes}m`;
+ } else {
+ const hours = Math.floor(minutes / 60);
+ const remainingMinutes = minutes % 60;
+ return `${hours}h${remainingMinutes}m`;
+ }
+ }
function selectCorrectRoute(index: number) {
document
.querySelectorAll(".directionTrip__selected")
diff --git a/samples/transit-advanced/index.ts b/samples/transit-advanced/index.ts
index 98d4ff11..d58b1ee7 100644
--- a/samples/transit-advanced/index.ts
+++ b/samples/transit-advanced/index.ts
@@ -89,7 +89,10 @@ function setLatLngToContainer(
function createRoutesTable(response: woosmap.map.transit.TransitRouteResponse) {
const directionTripElements = response.routes.map(
(route: woosmap.map.transit.TransitRoute, index: number) => {
- const leg = route.legs[0];
+ const distanceTotal = route.legs.reduce(
+ (total, leg) => total + leg.distance,
+ 0,
+ );
const directionTrip = document.createElement("div");
directionTrip.className = "directionTrip";
if (index === 0) {
@@ -111,11 +114,11 @@ function createRoutesTable(response: woosmap.map.transit.TransitRouteResponse) {
-
${formatTime(leg.duration)}
-
${formatDistance(leg.distance)}
+
${formatTime(route.duration)}
+
${formatDistance(distanceTotal)}
through ${startName}
-
${formatTime(leg.duration)}
+
${formatTime(route.duration)}
`;
@@ -138,7 +141,7 @@ function createRoutesTable(response: woosmap.map.transit.TransitRouteResponse) {
}
function formatTime(seconds: number): string {
- const minutes = Math.round(seconds/60);
+ const minutes = Math.round(seconds / 60);
if (minutes < 60) {
return `${minutes}m`;
} else {