Add find nearest feature

Signed-off-by: Fred Boniface <fred@fjla.uk>
This commit is contained in:
Fred Boniface
2024-06-30 21:23:22 +01:00
parent 2a9050940d
commit 9031eb53c6
3 changed files with 17 additions and 11 deletions

View File

@@ -179,10 +179,11 @@ async function getReasonCode(code) {
}
async function getNearestStations(lat, long) {
logger.debug(`ldbService.getNearestStations: Fetching nearest stations`)
let pipeline = findStationsByDistancePipeline(4, lat, long)
try {
return await db.queryAggregate(pipeline)
return await db.queryAggregate("stations", pipeline)
} catch (err) {
logger.error(err, `ldbService.getNearestStations`)
}

View File

@@ -1,11 +1,13 @@
export function findStationsByDistancePipeline(count: number, latitude: number, longitude: number) {
return [
export function findStationsByDistancePipeline(count: number, latitude: string, longitude: string) {
const numericLatitude = parseFloat(latitude)
const numericLongitude = parseFloat(longitude)
const pipeline = [
{
'$geoNear': {
'near': {
'type': 'Point',
'coordinates': [
longitude, latitude
numericLongitude, numericLatitude
]
},
'distanceField': 'distance'
@@ -39,4 +41,7 @@ export function findStationsByDistancePipeline(count: number, latitude: number,
}
}
]
//console.log(JSON.stringify(pipeline))
return pipeline
}