where do things happen along links?


We have had this problem for many years: different mobsims have different logic where along a link they enter and exit vehicles:

  • the qsim enters and exits near the toNode

  • the jdeqsim enters and exits near the fromNode

  • for other mobsims, I do not know

This has always caused problems, but the problems are now getting larger with us looking more and more into smaller scale things, e.g. bicycles or pedestrians. One place where it just popped up again is an attempt to clean up the various manual implementations of bushwhacking (non_network_walk, transit_walk, drt_walk, etc.).

We had already implemented relativPositionOnLink in the enter/exit vehicle events, so that was a start. A next step might be to make this globally configurable. I can see the following options:

  1. part of Config, e.g. of global. Disadvantage: It would look like a user-settable parameter, but instead it would be a parameter that should be consistent with a particular mobsim.

  2. bind it via injection: {@Inject RelativePositionOfEntryExitOnLink val} and then use it from there.

  3. make decision that it has to be at the end of a link, i.e. consistent with qsim

  4. make some global static method somewhere, i.e. XyzUtils.getRelativePositionOfEntryExitOnLink().

One problem with approaches 1. and 2. is that we have methods such as FacilitiesUtils.decideOnCoord( facility, network ) or PopulationUtils.decideOnCoordForActivity( activity, scenario ), and one would need to change the signature. Maybe not such a problem because these methods are presumably not used much outside the main repo.

Any intuitions?




Kai Nagel


Kai Nagel