mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 15:19:35 +02:00
92 lines
2.3 KiB
Markdown
92 lines
2.3 KiB
Markdown
# `reachableFrom(address, [opt])`
|
|
|
|
This method can be used to get stations reachable within a certain time from an address. This concept is called [isochrone diagram](https://en.wikipedia.org/wiki/Isochrone_map#Transportation_planning).
|
|
|
|
*Note*: It appears that HAFAS cannot generate actual isochrones, but only the list of reachable stations, which you can estimate the isochrone(s) from.
|
|
|
|
`address` must be an [*FPTF* `location` object](https://github.com/public-transport/friendly-public-transport-format/blob/1.1.1/spec/readme.md#location-objects).
|
|
|
|
With `opt`, you can override the default options, which look like this:
|
|
|
|
```js
|
|
{
|
|
when: new Date(),
|
|
maxTransfers: 5, // maximum of 5 transfers
|
|
maxDuration: 20, // maximum travel duration in minutes
|
|
products: {
|
|
// These entries may vary from profile to profile!
|
|
suburban: true,
|
|
subway: true
|
|
// …
|
|
}
|
|
}
|
|
```
|
|
|
|
## Response
|
|
|
|
`reachableFrom(address, [opt])` returns an array, in which each item has a `duration` and an array of [*Friendly Public Transport Format* `1.1.1`](https://github.com/public-transport/friendly-public-transport-format/tree/1.1.1) stations.
|
|
|
|
As an example, we're going to use the [VBB profile](../p/vbb):
|
|
|
|
```js
|
|
const createClient = require('hafas-client')
|
|
const vbbProfile = require('hafas-client/p/vbb')
|
|
|
|
const client = createClient(vbbProfile, 'my-awesome-program')
|
|
|
|
client.reachableFrom({
|
|
type: 'location',
|
|
address: '13353 Berlin-Wedding, Torfstr. 17',
|
|
latitude: 52.541797,
|
|
longitude: 13.350042
|
|
}, {
|
|
maxDuration: 10 // minutes
|
|
})
|
|
.then(console.log)
|
|
.catch(console.error)
|
|
```
|
|
|
|
The response may look like this:
|
|
|
|
```js
|
|
[
|
|
{
|
|
duration: 2,
|
|
stations: [
|
|
{
|
|
type: 'stop',
|
|
id: '900000009101',
|
|
name: 'U Amrumer Str.',
|
|
location: {type: 'location', latitude: 52.542201, longitude: 13.34953},
|
|
products: { /* … */ }
|
|
}
|
|
]
|
|
}, {
|
|
duration: 3,
|
|
stations: [
|
|
{
|
|
type: 'stop',
|
|
id: '900000001201',
|
|
name: 'S+U Westhafen',
|
|
location: {type: 'location', latitude: 52.536179, longitude: 13.343839},
|
|
products: { /* … */ }
|
|
}
|
|
// …
|
|
]
|
|
},
|
|
// …
|
|
{
|
|
duration: 10,
|
|
stations: [
|
|
{
|
|
type: 'stop',
|
|
id: '900000001203',
|
|
name: 'Döberitzer Str.',
|
|
location: {type: 'location', latitude: 52.530668, longitude: 13.36811},
|
|
products: { /* … */ }
|
|
}
|
|
// …
|
|
]
|
|
}
|
|
]
|
|
```
|