Database Reference
In-Depth Information
consist of lines and regions. Finally, the projection of a temporal region into
the plane consists in a region. In our example,
Trajectory(RouteT1)
will result
in the leftmost line in Fig.
12.3
, without any temporal information.
All operations over nontemporal spatial types are lifted to allow any of the
arguments to be a temporal type and return a temporal type. As an example,
the
Distance
function, which returns the Cartesian minimum distance between
two geometries, has lifted versions where one or both of its arguments can be
temporal points and the result is a temporal real. Intuitively, the semantics
of such lifted operations is that the result is computed at each instant using
the nonlifted operation. That means the lifted
Distance
function returns
the distance between two spatial objects at any given point in time. In
our example,
Distance(RouteT1, RouteT2)
returns a temporal real shown in
Fig.
12.4
, where, for instance, the function has a value 1.5 at 8:10 and 1.41
at 8:15.
d
2
1
8:05
8:10
8:15
8:20
t
Fig. 12.4
Distance between the trajectories of the two trucks in Fig.
12.3
Topological operations can also be lifted. In this case, the semantics is
that the operation returns a temporal Boolean that computes the topological
relationship at each instant. For example,
Intersects(RouteT1, RouteT2)
will
return a temporal Boolean with value
false
during [8:05, 8:20] since the two
trucks were never at the same point at any instant of their route.
A common request is to ask whether two temporal points satisfy a topo-
logical relationship at a particular instant or at a particular time period. This
can be easily obtained by applying first the
AtInstant
or
AtPeriod
operations
and then by verifying the traditional topological relationship. For example,
we could ask if the two trucks
T1
and
T2
intersected each other at 8:30 with
the expression
Intersects(AtInstant(RouteT1, 8:30), AtInstant(RouteT2, 8:30))
.
Notice that here the
Intersects
operation applied is the nonlifted one. In our
example, the result returns
false
. However, note that the reason could be the
imprecision of the measures in time and/or space. One solution to this could
be to define a buffer in time and space. This can be stated as follows:
Intersects(Buffer(RouteT1, 0.6, 0:10), Buffer(RouteT2, 0.6, 0:10))
Search WWH ::
Custom Search