MATSIM
RunAgentSourceExample.java
Go to the documentation of this file.
1 /* *********************************************************************** *
2  * project: kai
3  * Main.java
4  * *
5  * *********************************************************************** *
6  * *
7  * copyright : (C) 2013 by the members listed in the COPYING, *
8  * LICENSE and WARRANTY file. *
9  * email : info at matsim dot org *
10  * *
11  * *********************************************************************** *
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * See also COPYING, LICENSE and WARRANTY file *
18  * *
19  * *********************************************************************** */
20 
21 package tutorial.programming.ownMobsimAgent;
22 
23 import javax.inject.Inject;
24 
25 import org.matsim.api.core.v01.Id;
26 import org.matsim.api.core.v01.Scenario;
29 import org.matsim.core.config.Config;
37 import org.matsim.core.mobsim.qsim.QSim;
40 import org.matsim.vehicles.Vehicle;
42 
43 import com.google.inject.Provider;
44 
49 public class RunAgentSourceExample {
50 
51  public static void main(String[] args) {
52  Config config = ConfigUtils.loadConfig("examples/tutorial/config/example5-config.xml" ) ;
53  config.qsim().setEndTime(25 * 60 * 60);
54  config.controler().setLastIteration(0);
55  config.controler().setOverwriteFileSetting( OverwriteFileSetting.deleteDirectoryIfExists );
56 
57  Scenario scenario = ScenarioUtils.loadScenario(config) ;
58  scenario.getPopulation().getPersons().clear();
59 
60  final Controler controler = new Controler( scenario );
61  controler.addOverridingModule(new AbstractModule() {
62  @Override public void install() {
63  bindMobsim().toProvider(new Provider<Mobsim>() {
64  @Inject Scenario scenario ;
65  @Inject EventsManager events ;
66  @Override public Mobsim get() {
67  final QSim qsim = QSimUtils.createDefaultQSim( scenario, events );
68  qsim.addAgentSource(new AgentSource() {
69  @Override
70  public void insertAgentsIntoMobsim() {
71  // insert traveler agent:
72  final MobsimAgent ag = new MyMobsimAgent(qsim.getScenario(), qsim.getSimTimer());
73  qsim.insertAgentIntoMobsim(ag);
74 
75  // insert vehicle:
76  final Vehicle vehicle = VehicleUtils.getFactory().createVehicle(Id.create(ag.getId(), Vehicle.class), VehicleUtils.getDefaultVehicleType());
77  final Id<Link> linkId4VehicleInsertion = Id.createLinkId(1);
78  qsim.createAndParkVehicleOnLink(vehicle, linkId4VehicleInsertion);
79  }
80  });
81  return qsim;
82  }
83  });
84  }
85  });
86  controler.run();
87  }
88 
89 }
void createAndParkVehicleOnLink(Vehicle vehicle, Id< Link > linkId)
Definition: QSim.java:279
final void addOverridingModule(AbstractModule abstractModule)
Definition: Controler.java:410
void addAgentSource(AgentSource agentSource)
Definition: QSim.java:609
Map< Id< Person >,?extends Person > getPersons()
static QSim createDefaultQSim(final Scenario scenario, final EventsManager eventsManager)
Definition: QSimUtils.java:42
void insertAgentIntoMobsim(final MobsimAgent agent)
Definition: QSim.java:395
ControlerConfigGroup controler
Definition: Config.java:87
QSimConfigGroup qsim()
Definition: Config.java:484
Vehicle createVehicle(Id< Vehicle > id, VehicleType type)
static Config loadConfig(final String filename, ConfigGroup...customModules)
static Scenario loadScenario(final Config config)
static VehicleType getDefaultVehicleType()
static VehiclesFactory getFactory()