diff --git a/little-lines-frontend.container b/little-lines-frontend.container index 3e62b8e..6d515f9 100644 --- a/little-lines-frontend.container +++ b/little-lines-frontend.container @@ -5,6 +5,7 @@ Description=Little Lines frontend container ContainerName=little-lines-frontend Image=localhost/little-lines-frontend PublishPort=8081:5173 +Volume=/media/sasha/Data1/Apps/ll-frontend/.env:/opt/little-lines-frontend/.env [Service] Restart=always diff --git a/src/components/DestinationInfoCard.vue b/src/components/DestinationInfoCard.vue index fbf7fd0..7474dff 100644 --- a/src/components/DestinationInfoCard.vue +++ b/src/components/DestinationInfoCard.vue @@ -248,6 +248,10 @@ export default { methods: { closePopup() { this.showPopup = false; + + this.$emit('updateRouting', {route:null,isRouting:false}); + this.isRouting = false; + this.onClose(); }, viewRoute() { @@ -277,8 +281,11 @@ export default { console.error('Error getting location:', error); }, viewPopup(){ - this.showPopup = true; - this.showRoute = false; + this.showPopup = true; + this.showRoute = false; + + this.$emit('updateRouting', {route:null,isRouting:false}); + this.isRouting = false; }, addToFavorites() { const currentUser = JSON.parse(sessionStorage.getItem('current_user')); @@ -319,24 +326,26 @@ export default { } }, Routing(){ - console.log('Start routing!!'); - console.log(`nearestStructureData : ${this.nearestStructureData.lon},${this.nearestStructureData.lat}`); - console.log(`userLocation : ${this.userLocation.lon},${this.userLocation.lat}`); - // Make a request to OpenRouteService API for a sample route - const apiKey = import.meta.env.VITE_OPENROUTESERVICE_API_KEY; - const startCoord = `${this.userLocation.lon},${this.userLocation.lat}`;//'100.53860,13.76410'; - const endCoord = `${this.nearestStructureData.lon},${this.nearestStructureData.lat}`;//'100.53928,13.76526'; + if(!this.isRouting){ + console.log('Start routing!!'); + console.log(`nearestStructureData : ${this.nearestStructureData.lon},${this.nearestStructureData.lat}`); + console.log(`userLocation : ${this.userLocation.lon},${this.userLocation.lat}`); + // Make a request to OpenRouteService API for a sample route + const apiKey = import.meta.env.VITE_OPENROUTESERVICE_API_KEY; + const startCoord = `${this.userLocation.lon},${this.userLocation.lat}`;//'100.53860,13.76410'; + const endCoord = `${this.nearestStructureData.lon},${this.nearestStructureData.lat}`;//'100.53928,13.76526'; - axios.get(`https://api.openrouteservice.org/v2/directions/wheelchair?api_key=${apiKey}&start=${startCoord}&end=${endCoord}`) - .then(response => { - const route = response.data.features[0].geometry.coordinates; - console.log('This is route :',{route:route}) - this.$emit('updateRouting', {route:route}); - // this.plotRoute(route); - }) - .catch(error => { - console.error('Error fetching route:', error); - }); + axios.get(`https://api.openrouteservice.org/v2/directions/wheelchair?api_key=${apiKey}&start=${startCoord}&end=${endCoord}`) + .then(response => { + const route = response.data.features[0].geometry.coordinates; + console.log('This is route :',{route:route}) + this.$emit('updateRouting', {route:route,isRouting:true}); + this.isRouting = true; + }) + .catch(error => { + console.error('Error fetching route:', error); + }); + } }, }, diff --git a/src/views/Home.vue b/src/views/Home.vue index 93025cd..def552d 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -177,6 +177,26 @@ const handleMapClick = async event => { } catch (error) { console.error("Error fetching reverse geocoding data:", error); } + + const overpassQuery = `[out:json]; +( + node(around:1000,${clickedCoordinate[1]},${clickedCoordinate[0]})["wheelchair"="yes"]; + way(around:1000,${clickedCoordinate[1]},${clickedCoordinate[0]})["wheelchair"="yes"]; + relation(around:1000,${clickedCoordinate[1]},${clickedCoordinate[0]})["wheelchair"="yes"]; +); +out;`; + const overpassUrl = 'https://overpass-api.de/api/interpreter'; + + axios.post(overpassUrl, `data=${encodeURIComponent(overpassQuery)}`, { + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + }).then(response => { + // Process the data returned by the Overpass API + console.log(response.data); + }).catch(error => { + console.error('Error fetching data from Overpass API:', error); + }); }; const closePopup = () => { @@ -186,7 +206,7 @@ const closePopup = () => { const handleRouting = (res) => { console.log("Received Route:", res); route.value = res.route; - isRouting.value = true; + isRouting.value = res.isRouting; };