...
The moving object algebra defines some functions that work directly on temporal attributes and therefore do not need this kind of translation described above. An example would be the SpeedFunction
from the spatio-temporal feature. It takes a temporal spatial point (tpoint) and creates a tdouble with the speed of the object at each point in time. A direct temporal function implements the interface TemporalFunction
. If the temporal function does not return a temporal value itself, but a non-temporal , it also implements the interface RemoveTemporalFunction
. An example would be the TrajectoryFunction
from the spatio-temporal feature, which gets a tpoint and creates a non-temporal trajectory, i.e., a spatial LineString.
Limitations
...
As of now, there is a limitation when combining direct temporal functions and normal functions in one expression. In that case, Odysseus creates an error message and you have to split your expression in multiple consecutive map operators.
Code Block |
---|
// Not possible
calcTraj = MAP( {
expressions = [[ ’ SpatialLength ( Trajectory ( tempSpatialPoint , PredictionTimes ) ) ’ , ’traj ’]],
keepinput = true
} , predTime )
// Possible
calcTraj = MAP( {
expressions = [[ ’ Trajectory ( tempSpatialPoint , PredictionTimes ) ’ , ’ traj ’]],
keepinput = true
} , predTime )
MAP({
expressions = [[’SpatialLength(traj)’,’len’]],
keepinput = true
} , calcTraj ) |
Operators
Text
PredictionTime
...