Skip to content

Commit 66e0635

Browse files
committed
nearest garage on map added
1 parent a730da1 commit 66e0635

File tree

2 files changed

+52
-28
lines changed

2 files changed

+52
-28
lines changed

controllers/garage.controller.js

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -115,36 +115,49 @@ const rendergaragebyip=async(req,res)=>
115115

116116
const rendergaragebyloc=async(req,res)=>
117117
{
118-
if(!req.body.location)
119-
{
120-
req.flash('err','location not given');
121-
res.redirect('/garage/find');
122-
}
123-
else
124-
{
125-
const geoData = await geocoder
126-
.forwardGeocode({
127-
query: req.body.location,
128-
limit: 1,
129-
})
130-
.send();
131-
var geometry = geoData.body.features[0].geometry;
132-
geometry.place_name=req.body.location;
133-
var coords=await garageService.ReturnCoords();
134-
var min_distance=10000000.0;
135-
var dist={};
136-
for (let coord of coords){
137-
var distance=garageService.DistanceCal(geometry.coordinates[1],geometry.coordinates[0],coord.coordinates[1],coord.coordinates[0]);
138-
console.log(distance);
139-
if(distance<=min_distance)
118+
try{
119+
if(!req.body.location)
120+
{
121+
req.flash('err','location not given');
122+
res.redirect('/garage/find');
123+
}
124+
else
125+
{
126+
const geoData = await geocoder
127+
.forwardGeocode({
128+
query: req.body.location,
129+
limit: 1,
130+
})
131+
.send();
132+
var geometry = geoData.body.features[0].geometry;
133+
geometry.place_name=req.body.location;
134+
var garages=await garageService.AllGarages();
135+
var min_distance=10000000.0;
136+
var dist={};
137+
for (let garage of garages){
138+
var distance=garageService.DistanceCal(geometry.coordinates[1],geometry.coordinates[0],
139+
garage.geometry.coordinates[1],garage.geometry.coordinates[0]);
140+
if(distance<=min_distance)
141+
{
142+
dist=garage;
143+
min_distance=distance;
144+
}
145+
}
146+
if(min_distance>1000.0)
140147
{
141-
dist=coord;
142-
min_distance=distance;
148+
req.flash("err","Sorry! No garages found within 1000.0 km radius.")
149+
res.redirect("/garage/find");
150+
}
151+
else{
152+
res.render("garages/foundgarage",{ body: req.body,by:"Location",geometry:geometry,maptoken: mapBoxToken,garage:dist,
153+
min_distance:min_distance});
143154
}
144155
}
145-
console.log(dist);
146-
res.render("garages/foundgarage",{ body: req.body,by:"Location",geometry:geometry,maptoken: mapBoxToken,dist:dist,
147-
min_distance:min_distance})
156+
}
157+
catch(err)
158+
{
159+
req.flash("err","Err: "+err);
160+
res.redirect("/garage/find");
148161
}
149162
}
150163

views/garages/foundgarage.ejs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
</h1></center><br>
1717
<div id='map' style="width: auto; height: 350px;"></div>
1818
</div>
19-
<%=dist%>
19+
<%=garage%>
2020
</body>
2121
</html>
2222
<style>
@@ -31,8 +31,10 @@
3131
</style>
3232
<script>
3333
const g_raw='<%-JSON.stringify(geometry) %>';
34+
const nearest_garage='<%-JSON.stringify(garage) %>';
3435
const mapboxtoken='<%=maptoken%>';
3536
var geometry = JSON.parse(g_raw);
37+
var garage=JSON.parse(nearest_garage);
3638
mapboxgl.accessToken = mapboxtoken;
3739
var map = new mapboxgl.Map({
3840
container: "map",
@@ -49,4 +51,13 @@ var marker = new mapboxgl.Marker()
4951
)
5052
.addTo(map);
5153
54+
var marker = new mapboxgl.Marker()
55+
.setLngLat(garage.geometry.coordinates)
56+
.setPopup(
57+
new mapboxgl.Popup({ offset: 25 }).setHTML(
58+
`<h3>Nearest Garage.</h3><p>${garage.name}<br>${garage.location}</p>`
59+
)
60+
)
61+
.addTo(map);
62+
5263
</script>

0 commit comments

Comments
 (0)