24
24
import org .matsim .api .core .v01 .events .handler .PersonEntersVehicleEventHandler ;
25
25
import org .matsim .api .core .v01 .events .handler .PersonLeavesVehicleEventHandler ;
26
26
import org .matsim .api .core .v01 .network .Network ;
27
- import org .matsim .api .core .v01 .population .Leg ;
28
27
import org .matsim .api .core .v01 .population .Person ;
29
28
import org .matsim .api .core .v01 .population .PopulationFactory ;
30
29
import org .matsim .core .api .experimental .events .TeleportationArrivalEvent ;
31
30
import org .matsim .core .api .experimental .events .handler .TeleportationArrivalEventHandler ;
32
31
import org .matsim .core .config .ConfigUtils ;
33
- import org .matsim .core .router .MainModeIdentifier ;
34
32
import org .matsim .core .router .TripStructureUtils ;
35
33
import org .matsim .core .scenario .ScenarioUtils ;
36
34
import org .matsim .core .utils .geometry .CoordUtils ;
39
37
public class TripListener implements ActivityStartEventHandler , ActivityEndEventHandler , PersonDepartureEventHandler ,
40
38
PersonEntersVehicleEventHandler , PersonLeavesVehicleEventHandler , LinkEnterEventHandler ,
41
39
TeleportationArrivalEventHandler , GenericEventHandler {
42
- final private MainModeIdentifier mainModeIdentifier ;
43
40
final private Network network ;
44
41
final private PopulationFactory factory ;
45
42
@@ -50,9 +47,8 @@ public class TripListener implements ActivityStartEventHandler, ActivityEndEvent
50
47
51
48
final private PersonAnalysisFilter personFilter ;
52
49
53
- public TripListener (Network network , MainModeIdentifier mainModeIdentifier , PersonAnalysisFilter personFilter ) {
50
+ public TripListener (Network network , PersonAnalysisFilter personFilter ) {
54
51
this .network = network ;
55
- this .mainModeIdentifier = mainModeIdentifier ;
56
52
this .factory = ScenarioUtils .createScenario (ConfigUtils .createConfig ()).getPopulation ().getFactory ();
57
53
this .personFilter = personFilter ;
58
54
}
@@ -93,26 +89,20 @@ public void handleEvent(ActivityEndEvent event) {
93
89
@ Override
94
90
public void handleEvent (PersonDepartureEvent event ) {
95
91
if (personFilter .analyzePerson (event .getPersonId ())) {
96
- Leg leg = factory .createLeg (event .getLegMode ());
97
- leg .setRoutingMode (event .getRoutingMode ());
98
- ongoing .get (event .getPersonId ()).elements .add (leg );
92
+ ongoing .get (event .getPersonId ()).mode = event .getRoutingMode ();
99
93
}
100
94
}
101
95
102
96
@ Override
103
97
public void handleEvent (ActivityStartEvent event ) {
104
98
if (personFilter .analyzePerson (event .getPersonId ())) {
105
- if (TripStructureUtils .isStageActivityType (event .getActType ())) {
106
- ongoing .get (event .getPersonId ()).elements
107
- .add (factory .createActivityFromLinkId (event .getActType (), event .getLinkId ()));
108
- } else {
99
+ if (!TripStructureUtils .isStageActivityType (event .getActType ())) {
109
100
TripListenerItem trip = ongoing .remove (event .getPersonId ());
110
101
111
102
if (trip != null ) {
112
103
trip .returning = event .getActType ().equals ("home" );
113
104
trip .followingPurpose = event .getActType ();
114
105
trip .travelTime = event .getTime () - trip .departureTime ;
115
- trip .mode = mainModeIdentifier .identifyMainMode (trip .elements );
116
106
trip .destination = network .getLinks ().get (event .getLinkId ()).getCoord ();
117
107
trip .euclideanDistance = CoordUtils .calcEuclideanDistance (trip .origin , trip .destination );
118
108
0 commit comments