mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 07:09:35 +02:00
query nearby locations
This commit is contained in:
parent
7c7fb53b55
commit
cd8d2ec297
1 changed files with 35 additions and 1 deletions
36
index.js
36
index.js
|
@ -121,7 +121,41 @@ const createClient = (profile) => {
|
|||
})
|
||||
}
|
||||
|
||||
return {departures, journeys, locations}
|
||||
const nearby = (latitude, longitude, opt = {}) => {
|
||||
if ('number' !== typeof latitude) throw new Error('latitude must be a number.')
|
||||
if ('number' !== typeof longitude) throw new Error('longitude must be a number.')
|
||||
opt = Object.assign({
|
||||
results: 8, // maximum number of results
|
||||
distance: null, // maximum walking distance in meters
|
||||
poi: false, // return points of interest?
|
||||
stations: true, // return stations?
|
||||
}, opt)
|
||||
|
||||
return request(profile, {
|
||||
cfg: {polyEnc: 'GPA'},
|
||||
meth: 'LocGeoPos',
|
||||
req: {
|
||||
ring: {
|
||||
cCrd: {
|
||||
x: profile.formatCoord(longitude),
|
||||
y: profile.formatCoord(latitude)
|
||||
},
|
||||
maxDist: opt.distance || -1,
|
||||
minDist: 0
|
||||
},
|
||||
getPOIs: !!opt.poi,
|
||||
getStops: !!opt.stations,
|
||||
maxLoc: opt.results
|
||||
}
|
||||
})
|
||||
.then((d) => {
|
||||
if (!Array.isArray(d.locL)) return []
|
||||
const parse = profile.parseNearby
|
||||
return d.locL.map(loc => parse(profile, loc))
|
||||
})
|
||||
}
|
||||
|
||||
return {departures, journeys, locations, nearby}
|
||||
}
|
||||
|
||||
module.exports = createClient
|
||||
|
|
Loading…
Add table
Reference in a new issue