@@ -115,36 +115,49 @@ const rendergaragebyip=async(req,res)=>
115
115
116
116
const rendergaragebyloc = async ( req , res ) =>
117
117
{
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 )
140
147
{
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 } ) ;
143
154
}
144
155
}
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" ) ;
148
161
}
149
162
}
150
163
0 commit comments