@@ -88,6 +88,7 @@ private static class TraversalExporter implements VehicleEntersTrafficEventHandl
88
88
private final IdMap <Person , LinkEnterEvent > enterEvents = new IdMap <>(Person .class );
89
89
private final Map <Id <Person >, Integer > tripIndex = new HashMap <>();
90
90
private final Map <Id <Person >, Integer > legIndex = new HashMap <>();
91
+ private final Map <Id <Vehicle >, String > legMode = new HashMap <>();
91
92
private final Set <String > modes ;
92
93
93
94
TraversalExporter (BufferedWriter writer , ScenarioExtent extent , Network network , Set <String > modes ) {
@@ -98,7 +99,7 @@ private static class TraversalExporter implements VehicleEntersTrafficEventHandl
98
99
99
100
try {
100
101
writer .write (String .join (";" , Arrays .asList ( //
101
- "person_id" , "vehicle_id" , "link_id" , "enter_time" , "leave_time" , "trip_index" , "leg_index" ))
102
+ "person_id" , "vehicle_id" , "link_id" , "enter_time" , "leave_time" , "trip_index" , "leg_index" , "leg_mode" ))
102
103
+ "\n " );
103
104
} catch (IOException e ) {
104
105
throw new RuntimeException (e );
@@ -108,13 +109,15 @@ private static class TraversalExporter implements VehicleEntersTrafficEventHandl
108
109
@ Override
109
110
public void handleEvent (VehicleEntersTrafficEvent event ) {
110
111
if (checkMode (event .getNetworkMode ())) {
112
+ legMode .put (event .getVehicleId (), event .getNetworkMode ());
111
113
drivers .put (event .getVehicleId (), event .getPersonId ());
112
114
}
113
115
}
114
116
115
117
@ Override
116
118
public void handleEvent (VehicleLeavesTrafficEvent event ) {
117
119
if (drivers .remove (event .getVehicleId ()) != null ) {
120
+ legMode .remove (event .getVehicleId ());
118
121
writeTraversal (event .getPersonId (), enterEvents .remove (event .getPersonId ()), null );
119
122
}
120
123
}
@@ -167,6 +170,7 @@ private void writeTraversal(Id<Person> personId, LinkEnterEvent enterEvent, Link
167
170
168
171
int localTripIndex = tripIndex .getOrDefault (personId , 0 );
169
172
int localLegIndex = legIndex .getOrDefault (personId , 0 );
173
+ String localLegMode = legMode .get (personId );
170
174
171
175
try {
172
176
writer .write (String .join (";" , new String [] { //
@@ -176,7 +180,8 @@ private void writeTraversal(Id<Person> personId, LinkEnterEvent enterEvent, Link
176
180
String .valueOf (enterTime ), //
177
181
String .valueOf (leaveTime ), //
178
182
String .valueOf (localTripIndex ), //
179
- String .valueOf (localLegIndex ) //
183
+ String .valueOf (localLegIndex ), //
184
+ String .valueOf (localLegMode ) //
180
185
}) + "\n " );
181
186
} catch (IOException e ) {
182
187
throw new RuntimeException (e );
0 commit comments