From b49100e063643e867801c2456fddcd8262f2d163 Mon Sep 17 00:00:00 2001 From: Ahmedhossamdev Date: Mon, 25 Nov 2024 19:33:41 +0200 Subject: [PATCH 1/3] refactor: remove render markers in show route mode --- src/components/map/MapView.svelte | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/components/map/MapView.svelte b/src/components/map/MapView.svelte index cce510d..9b3bfbc 100644 --- a/src/components/map/MapView.svelte +++ b/src/components/map/MapView.svelte @@ -137,10 +137,7 @@ } function updateMarkers() { - if (showRoute) { - const stopsToShow = allStops.filter((s) => s.routeIds.includes(selectedRoute.id)); - stopsToShow.forEach((s) => addMarker(s)); - } else if (!selectedRoute && !isTripPlanModeActive) { + if (!selectedRoute && !isTripPlanModeActive) { allStops.forEach((s) => addMarker(s)); } } From f8f2483776e498f9e4e4864ee53cafd7394d1716 Mon Sep 17 00:00:00 2001 From: Ahmedhossamdev Date: Mon, 25 Nov 2024 19:36:36 +0200 Subject: [PATCH 2/3] refactor: improve cleanup process --- src/components/map/RouteMap.svelte | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/components/map/RouteMap.svelte b/src/components/map/RouteMap.svelte index 213e060..f99e57c 100644 --- a/src/components/map/RouteMap.svelte +++ b/src/components/map/RouteMap.svelte @@ -11,19 +11,26 @@ // used to clear interval api calls let currentIntervalId = null; + let loadRouteDataPromise = null; onMount(async () => { - await loadRouteData(); + loadRouteDataPromise = loadRouteData(); + await loadRouteDataPromise; }); onDestroy(async () => { isMounted = false; - mapProvider.removePolyline(await polyline); - mapProvider.removeStopMarkers(); - mapProvider.cleanupInfoWindow(); - clearInterval(currentIntervalId); - clearVehicleMarkersMap(mapProvider); - mapProvider.clearVehicleMarkers(); + if (loadRouteDataPromise) { + await loadRouteDataPromise; + } + await Promise.all([ + mapProvider.removePolyline(await polyline), + mapProvider.removeStopMarkers(), + mapProvider.cleanupInfoWindow(), + clearInterval(currentIntervalId), + clearVehicleMarkersMap(mapProvider), + mapProvider.clearVehicleMarkers() + ]); }); async function loadRouteData() { @@ -56,6 +63,8 @@ } } - currentIntervalId = await fetchAndUpdateVehicles(routeId, mapProvider); + if (routeId && isMounted) { + currentIntervalId = await fetchAndUpdateVehicles(routeId, mapProvider); + } } From fab81e9cf47d3e31c6273538c6617ce4ae4cd9e5 Mon Sep 17 00:00:00 2001 From: Ahmedhossamdev Date: Mon, 25 Nov 2024 20:14:47 +0200 Subject: [PATCH 3/3] feat: flyTo camera transition --- src/components/map/RouteMap.svelte | 6 +++++- src/lib/Provider/GoogleMapProvider.js | 4 ++++ src/lib/Provider/OpenStreetMapProvider.js | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/components/map/RouteMap.svelte b/src/components/map/RouteMap.svelte index f99e57c..3af024d 100644 --- a/src/components/map/RouteMap.svelte +++ b/src/components/map/RouteMap.svelte @@ -1,4 +1,5 @@