From c47bd534f418f5a55b000b8a4887cc16803d9322 Mon Sep 17 00:00:00 2001 From: Alexis Date: Sun, 12 Apr 2026 15:10:22 +0200 Subject: [PATCH] Added subpar car-first routing --- src/components/BikeClusterLayer.vue | 5 ++++- src/components/BikeMap.vue | 28 +++++++++++++++++++++------- src/components/BikeMarker.vue | 29 ++++++++++++++++++++++++----- src/composables/useRouting.ts | 27 +++++++++++++++++++++++++++ src/stores/map.ts | 6 ++++++ 5 files changed, 82 insertions(+), 13 deletions(-) create mode 100644 src/composables/useRouting.ts diff --git a/src/components/BikeClusterLayer.vue b/src/components/BikeClusterLayer.vue index f20c533..c5e8503 100644 --- a/src/components/BikeClusterLayer.vue +++ b/src/components/BikeClusterLayer.vue @@ -10,11 +10,14 @@ defineProps<{ maxClusterRadius: number disableClusteringAtZoom: number }>() + +const emit = defineEmits<{ nudgeGeolocation: [] }>() diff --git a/src/components/BikeMap.vue b/src/components/BikeMap.vue index a4dfdee..5d07e66 100644 --- a/src/components/BikeMap.vue +++ b/src/components/BikeMap.vue @@ -10,12 +10,13 @@ import type { ApiResponse } from '@/types/Api' import type { BikeParking } from '@/types/Bikes' import { API_BASE_URL, API_LIMIT, MAP_TILELAYER_URL, SpotAccess, SpotType } from '@/utils/const' import { useQuery } from '@pinia/colada' -import { LControlZoom, LIcon, LMap, LMarker, LTileLayer } from '@vue-leaflet/vue-leaflet' +import { LControlZoom, LGeoJson, LIcon, LMap, LMarker, LTileLayer } from '@vue-leaflet/vue-leaflet' import BikeFilters from './BikeFilters.vue' import { computed, ref, useTemplateRef } from 'vue' import { storeToRefs } from 'pinia' import BikeClusterLayer from './BikeClusterLayer.vue' import { PhCircleNotch, PhMapPin } from '@phosphor-icons/vue' +import { useRouting } from '@/composables/useRouting' // Map setup const mapRef = useTemplateRef<{ leafletObject: Map }>('map') @@ -91,6 +92,11 @@ function handleClickGeoloc() { mapRef.value?.leafletObject.flyTo([userCoords.value.latitude, userCoords.value.longitude], 12) } } + +// Routing +const { activeRoute } = useRouting() +const showGeolocationNudge = ref(false) + diff --git a/src/components/BikeMarker.vue b/src/components/BikeMarker.vue index 10a428b..ebba2cf 100644 --- a/src/components/BikeMarker.vue +++ b/src/components/BikeMarker.vue @@ -1,13 +1,14 @@