Skip to content

Latest commit

 

History

History
95 lines (82 loc) · 2.56 KB

reachable-from.md

File metadata and controls

95 lines (82 loc) · 2.56 KB

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.

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.

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, pass `null` for infinite
	products: {
		// These entries may vary from profile to profile!
		suburban: true,
		subway: true
		// …
	},
	subStops: true, // parse & expose sub-stops of stations?
	entrances: true, // parse & expose entrances of stops/stations?
}

Response

reachableFrom(address, [opt]) returns an array, in which each item has a duration and an array of Friendly Public Transport Format 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 userAgent = 'link-to-your-project-or-email' // adapt this to your project!
const client = createClient(vbbProfile, userAgent)

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