Skip to content
This repository has been archived by the owner on Nov 29, 2022. It is now read-only.

Heuristic to find VBB stations & stops that should be one.

License

Notifications You must be signed in to change notification settings

derhuerst/merge-vbb-stations

Repository files navigation

merge-vbb-stations

Heuristic to find VBB stations & stops that should be one. Check out the automatic report!

npm version build status ISC-licensed support me via GitHub Sponsors chat with me on Twitter

Installing

npm install merge-vbb-stations

Usage

const analyze = require('merge-vbb-stations')

const s1 = {
	type: 'station',
	id: '900000003174',
	name: 'U Turmstr. (Berlin) [Bus Turmstr.]',
	coordinates: {latitude: 52.5263, longitude: 13.341988},
	weight: 5533.75,
	stops: [
		{
			type: 'stop',
			id: '070101000700',
			name: 'U Turmstr. (Berlin) [Bus Turmstr.]',
			station: '900000003174',
			coordinates: {latitude: 52.5263, longitude: 13.341988}
		}
		// …
	]
}

const s2 = {
	type: 'station',
	id: '900000003104',
	name: 'U Turmstr. (Berlin)',
	coordinates: {latitude: 52.525938, longitude: 13.341417},
	weight: 2408,
	stops: [
		{
			type: 'stop',
			id: '070201092701',
			name: 'U Turmstr. (Berlin)',
			station: '900000003104',
			coordinates: {latitude: 52.525938, longitude: 13.341417}
		}
	]
}

analyze(s1, s2)
{
	op: 'merge',
	src: /* s1 */,
	dest: /* s2 */,
	stopName: 'Bus Turmstr.'
}

API

analyze(station1, station2) will return either null (don't merge) or an object. The object looks like this:

  • op: right now, this can only be analyze.MERGE
  • src: station to merge from
  • dest: station to merge into
  • stopName: which name to use for the stops of src; if null, use the stops's original name

todo: s1.coordinates & s2.coordinates

Contributing

If you have a question or have difficulties using merge-vbb-stations, please double-check your code and setup first. If you think you have found a bug or want to propose a feature, refer to the issues page.