Using the z-coordinate as is is a bad idea. When intersecting, a
new node will be generated. What z-coord should it be? This node
can now be part of two distinct types with different meanings for
it. So we need to implement weight as a path argument.
This commit hardcodes the speed for trains and access pathways as
a temporary workaround.
I forgot that, when splitting a path, I need to also check the newly
generated ("right") segment against all (following) existing path
segments because the original segment is now shrunk to the size of
the new "left" one, and will therefore not intersect every possible
line. (But you still need to keep checking with it because there is
not guarantee that the line we just intersected with was the physi-
cally closest to the starting point, it was just the first in memory.)