reachableFrom(loc, [opt]) -> reachableFrom(address, [opt])

This commit is contained in:
Jannis R 2018-08-27 12:06:14 +02:00 committed by Jannis Redmann
parent e65b2d8780
commit 3ac04a0ebd
9 changed files with 16 additions and 16 deletions

View file

@ -1,10 +1,10 @@
# `reachableFrom(location, [opt])` # `reachableFrom(address, [opt])`
This method can be used to compute the area around a location that is reachable within a certain time. This concept is called [isochrone diagram](https://en.wikipedia.org/wiki/Isochrone_map#Transportation_planning). 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 a list of reachable stations, which you can estimate the isochrone(s) from. *Note*: It appears that HAFAS cannot generate actual isochrones, but only the list of reachable stations, which you can estimate the isochrone(s) from.
`location` must be an [*FPTF* `location` object](https://github.com/public-transport/friendly-public-transport-format/blob/1.1.1/spec/readme.md#location-objects). `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: With `opt`, you can override the default options, which look like this:
@ -24,7 +24,7 @@ With `opt`, you can override the default options, which look like this:
## Response ## Response
`reachableFrom(loc, [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. `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): As an example, we're going to use the [VBB profile](../p/vbb):

View file

@ -9,7 +9,7 @@
- [`station(id, [opt])`](station.md) get details about a station - [`station(id, [opt])`](station.md) get details about a station
- [`nearby(location, [opt])`](nearby.md) show stations & POIs around - [`nearby(location, [opt])`](nearby.md) show stations & POIs around
- [`radar(north, west, south, east, [opt])`](radar.md) find all vehicles currently in a certain area - [`radar(north, west, south, east, [opt])`](radar.md) find all vehicles currently in a certain area
- [`reachableFrom(location, [opt])`](reachable-from.md)  get all stations reachable from a location within `n` minutes - [`reachableFrom(address, [opt])`](reachable-from.md)  get all stations reachable from an address within `n` minutes
## Writing a profile ## Writing a profile

View file

@ -463,8 +463,8 @@ const createClient = (profile, userAgent, request = _request) => {
}) })
} }
const reachableFrom = (location, opt = {}) => { const reachableFrom = (address, opt = {}) => {
validateLocation(location, 'location') validateLocation(address, 'address')
opt = Object.assign({ opt = Object.assign({
when: Date.now(), when: Date.now(),
@ -477,7 +477,7 @@ const createClient = (profile, userAgent, request = _request) => {
return request(profile, userAgent, opt, { return request(profile, userAgent, opt, {
meth: 'LocGeoReach', meth: 'LocGeoReach',
req: { req: {
loc: profile.formatLocation(profile, location, 'location'), loc: profile.formatLocation(profile, address, 'address'),
maxDur: opt.maxDuration, maxDur: opt.maxDuration,
maxChg: opt.maxTransfers, maxChg: opt.maxTransfers,
date: profile.formatDate(profile, opt.when), date: profile.formatDate(profile, opt.when),

View file

@ -380,7 +380,7 @@ test('reachableFrom', co(function* (t) {
yield testReachableFrom({ yield testReachableFrom({
test: t, test: t,
reachableFrom: client.reachableFrom, reachableFrom: client.reachableFrom,
loc: torfstr17, address: torfstr17,
when, when,
maxDuration: 15, maxDuration: 15,
validate validate

View file

@ -266,7 +266,7 @@ test('reachableFrom', co(function* (t) {
yield testReachableFrom({ yield testReachableFrom({
test: t, test: t,
reachableFrom: client.reachableFrom, reachableFrom: client.reachableFrom,
loc: { address: {
type: 'location', type: 'location',
address: '604 W 9TH ST, Austin, TX 78701', address: '604 W 9TH ST, Austin, TX 78701',
latitude: 30.272910, latitude: 30.272910,

View file

@ -361,7 +361,7 @@ test('reachableFrom', co(function* (t) {
yield testReachableFrom({ yield testReachableFrom({
test: t, test: t,
reachableFrom: client.reachableFrom, reachableFrom: client.reachableFrom,
loc: torfstr17, address: torfstr17,
when, when,
maxDuration: 15, maxDuration: 15,
validate validate

View file

@ -8,13 +8,13 @@ const testReachableFrom = co(function* (cfg) {
const { const {
test: t, test: t,
reachableFrom, reachableFrom,
loc, address,
when, when,
maxDuration, maxDuration,
validate validate
} = cfg } = cfg
const results = yield reachableFrom(loc, { const results = yield reachableFrom(address, {
when, maxDuration when, maxDuration
}) })

View file

@ -360,7 +360,7 @@ test('reachableFrom', co(function* (t) {
yield testReachableFrom({ yield testReachableFrom({
test: t, test: t,
reachableFrom: client.reachableFrom, reachableFrom: client.reachableFrom,
loc: berlinerStr, address: berlinerStr,
when, when,
maxDuration: 60, maxDuration: 60,
validate validate

View file

@ -370,7 +370,7 @@ test('reachableFrom', co(function* (t) {
yield testReachableFrom({ yield testReachableFrom({
test: t, test: t,
reachableFrom: client.reachableFrom, reachableFrom: client.reachableFrom,
loc: torfstr17, address: torfstr17,
when, when,
maxDuration: 15, maxDuration: 15,
validate validate