db-vendo-client/docs/reachable-from.md
2018-09-03 16:43:01 +02:00

2.3 KiB

reachableFrom(location, [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.

Note: It appears that HAFAS cannot generate actual isochrones, but a list of reachable stations, which you can estimate the isochrone(s) from.

location must be an FPTF location object.

With opt, you can override the default options, which look like this:

{
	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(loc, [opt]) returns an array, in which each item has a duration and an array of Friendly Public Transport Format 1.1.1 stations.

As an example, we're going to use the VBB profile:

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:

[
	{
		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: { /* … */ }
			}
			// …
		]
	}
]