GTFS-Flex for Stadtnavi Herrenberg



https://www.swp.de/suedwesten/staedte/stuttgart/ruftaxi-ergaenzt-bus-und-bahn-26894420.html

GTFS
GTFS
with Flex
generate-herrenberg-gtfs-flex
import
OpenTripPlanner
herrenberg.stadtnavi.de
$ xsv search -s trip_id '^1.T0.50-782-j21-1.1.H$' trips.txt
# trip_id,route_id,service_id,trip_headsign
# 1.T0.50-782-j21-1.1.H,50-782-j21-1,T0#64,Herrenberg Grafenweg
$ xsv search -s route_id '^50-782-j21-1$' routes.txt
# route_id,route_type,route_short_name
# 50-782-j21-1,715,RT782
$ xsv search -s trip_id '^1.T0.50-782-j21-1.1.H$' stop_times.txt
# stop_sequence,stop_id,arrival_time,departure_time,pickup_type,drop_off_type
# 1,de:08115:4512:5:D,23:19:00,23:19:00,0,0
# 2,de:08115:4802:0:3,23:21:00,23:21:00,0,0
# 3,de:08115:3225:0:3,23:23:00,23:23:00,0,0
# 4,de:08115:3233:0:3,23:24:00,23:24:00,0,0
# 5,de:08115:7004:0:3,23:26:00,23:26:00,0,0
# 6,de:08115:7012:0:3,23:27:00,23:27:00,0,0
# 7,de:08115:4801:0:3,23:28:00,23:28:00,0,0
# 8,de:08115:7006:1:3,23:29:00,23:29:00,0,0
# install from GitHub
npm install derhuerst/generate-herrenberg-gtfs-flex#duplicate-stop-times --save-dev
# patch GTFS-Flex into GTFS feed
generate-booking-rules-txt flex-rules.js gtfs/*.txt >gtfs/booking_rules.txt
generate-locations-geojson flex-rules.js gtfs/*.txt >gtfs/locations.geojson
patch-routes-txt flex-rules.js gtfs/*.txt | sponge gtfs/routes.txt
patch-trips-txt flex-rules.js gtfs/*.txt | sponge gtfs/trips.txt
patch-stop_times-txt flex-rules.js gtfs/*.txt | sponge gtfs/stop_times.txt
# or via Docker
docker run -it --rm \
-v $PWD/gtfs:/gtfs \
derhuerst/generate-herrenberg-gtfs-flex:duplicate-stop-times
stop_times.txt

booking_rules.txt

locations.geosjon
{
"id": "herrenberg-300m-de:08115:7006:1:3-flex",
"type": "Feature",
"properties": {
"stop_name": "Herrenberg Grafenweg",
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
8.88609,
48.60217
],
[
8.8853,
48.60211
],
// …
[
8.88609,
48.60217
]
]
]
}
}
flex-rules.js
const herrenbergFlex = {
id: 'herrenberg-citybus-300m',
radius: .3, // in km, for the generated location area
pickup_type: pickupTypes.MUST_PHONE_AGENCY,
drop_off_type: dropOffTypes.MUST_COORDINATE_WITH_DRIVER,
}
const herrenbergFlexRule = (route) => {
return route.route_short_name === 'RT782'
? herrenbergFlex
: null
}
flex-rules.js
const herrenbergFlex = {
id: 'herrenberg-citybus-300m',
radius: .3, // in km, for the generated location area
pickup_type: pickupTypes.MUST_PHONE_AGENCY,
drop_off_type: dropOffTypes.MUST_COORDINATE_WITH_DRIVER,
bookingRule: {
booking_rule_id: 'herrenberg-citybus',
booking_type: bookingTypes.SAME_DAY,
prior_notice_duration_min: 30,
message: 'Anmeldung bis 30min vor Abfahrt.',
drop_off_message: 'Haustürbedienung beim Absetzen 300m (Luftlinie) um die Haltestelle. Aufpreis 0,80€ direkt an den Taxi-Fahrer.',
phone_number: '+49 7032 92029',
info_url: 'https://stadtwerke.herrenberg.de/oepnv-parken/oepnv/weitere-informationen/',
},
}
const herrenbergFlexRoutes = ['RT779', 'RT780', 'RT782', 'RT783']
const herrenbergFlexRule = (route) => {
return herrenbergFlexRoutes.includes(route.route_short_name)
? herrenbergFlex
: null
}
GTFS-Flex for Stadtnavi Herrenberg
By Jannis R
GTFS-Flex for Stadtnavi Herrenberg
- 412