Hi Christopher,
Further to your email I'd appreciate your thoughts on using a
track/MovingObjectStatus as opposed to history/_Timeslice. As I
understand it timeslices allow you to express just what has changed
since the last timeslice - I can see that being very useful for some
WFS queries. However MovingObjectStatus specifies a concrete set of
elements for features that move including bearing, elevation, location
etc for a given validTime. Given this higher level structure would
MovingObjectStatus be more appropriate for your scenario of tracking
moving buses?
GML describes this in the section of dynamic feature as follows:
I copy and paste this from my elaboration:
GML incorporates in it's representation of dynamic features two temporal
entities: \emph{states} and \emph{events}.\\
States are captured by time-stamped instances of a feature or feature
collections \cite{OGC:GML04}. In GML they are expressed with the
TimeSlice elements. A
TimeSlice represents a snapshot of a geographic feature. It contains
properties
that varies in time. Hence a moving object will be an ordered set of
TimeSlice
properties. This set in GML is hold in a history property.\\
TimeSlice example see attachment: HistoryFormat.xml
The temporal entity \emph{event} will be realized with the type
MovingObjectStatus. An
event will be defined as an action that occurs at an instant or over a time
interval \cite{OGC:GML04}. Hence this representation should be used when
changes
on a dynamic
feature are provoked from a certain event. MovingObjectStatus are an
extension
of the TimeSlice object: in addition to the location and the temporal
value it
may contain speed, bearing, acceleration and elevation of a moving point.
They are again collected in an ordered sequence hold in a track property.
Here our bus will be described in this manner:
MovingObjectStatus example see attachment: TrackFormat.xml
As conclusion I would say, if I understood this correctly:
TimeSlices should be used if your data are described/captured on certain
instants (i.e. a Bus is sending via GPS continuously his position and
his time) and MovingObjectStatus instead should be used, when data are
change when a particular event was (i.e. a bus is sending only his data,
when there were happen events like: bus passes some measure point to
late or he chooses a different route, etc...) happening.
I am not sure of the authors of GML mention to introduce the datatype
MovingObjectStatus only to specify additional informations like speed,
bearing etc., but rather to use this type in another context: that means
the event based approach.
By the way I don't agree to this specification to send all this
superfluous informations from the server to the client, when i.e. a
speed or even the direction can be calculated on client side. Imagine
you have a big block of data, than you are sending much more data when
specifying that values.
Markus
<?xml version="1.0" encoding="UTF-8"?>
<bz10m:Buses xmlns="http://www.opengis.net/gml" xmlns:bz10m="http://www.inf.unibz.it/dis/bz10m">
<bz10m:id>1</bz10m:id>
<bz10m:busLine>Linea10a</bz10m:busLine>
<bz10m:trip gml:id="93fd2ebb-1cd6-457f-8fb9-45b634e0e907">
<history>
<TimeSlice gml:id="0282cb38-8350-45fb-94bd-61dd3cf80de3">
<validTime>
<TimeInstant>
<timePosition>2007-06-01T10:00</timePosition>
</TimeInstant>
</validTime>
<location>
<Point srsName="urn:EPSG:geographicCRS:4258">
<pos>678351.04, 50929.11</pos>
</Point>
</location>
</TimeSlice>
<TimeSlice id="4a231b33-11ee-4110-9f5f-9dc8675f5f1b">
<validTime>
<TimeInstant>
<timePosition>2007-06-01-10:01.33</timePosition>
</TimeInstant>
</validTime>
<location>
<Point srsName="urn:EPSG:geographicCRS:4258">
<pos>678888.08, 50999.11</pos>
</Point>
</location>
</TimeSlice>
<TimeSlice id="4a231b33-11ee-4110-9f5f-9dc8675f6f16">
<validTime>
<TimeInstant>
<timePosition>2007-06-01T10:02.13</timePosition>
</TimeInstant>
</validTime>
<location>
<Point srsName="urn:EPSG:geographicCRS:4258">
<pos>67899.21, 51666.44</pos>
</Point>
</location>
</TimeSlice>
<!-- other TimeSlice elements -->
</history>
</bz10m:trip>
</bz10m:Buses><?xml version="1.0" encoding="UTF-8"?>
<bz10m:Buses xmlns="http://www.opengis.net/gml" xmlns:bz10m="http://www.inf.unibz.it/dis/bz10m">
<bz10m:trip gml:id="93fd2ebb-1cd6-457f-8fb9-45b634e0e907">
<bz10m:id>1</bz10m:id>
<bz10m:busLine>Linea10a</bz10m:busLine>
<track>
<MovingObjectStatus id="0282cb38-8350-45fb-94bd-61dd3cf80de3">
<validTime>
<TimeInstant>
<timePosition>2007-06-01T10:00</timePosition>
</TimeInstant>
</validTime>
<location>
<Point srsName="urn:EPSG:geographicCRS:4258">
<pos>678351.04, 50929.11</pos>
</Point>
</location>
<speed uom="#kph">45</speed>
<bearing>
<CompassPoint>ESE</CompassPoint>
</bearing>
</MovingObjectStatus>
<MovingObjectStatus id="4a231b33-11ee-4110-9f5f-9dc8675f5f1b">
<validTime>
<TimeInstant>
<timePosition>2007-06-01-10:01.33</timePosition>
</TimeInstant>
</validTime>
<location>
<Point srsName="urn:EPSG:geographicCRS:4258">
<pos>678888.08 50999.11</pos>
</Point>
</location>
<speed uom="#kph">60</speed>
<bearing>
<CompassPoint>SE</CompassPoint>
</bearing>
</MovingObjectStatus>
<MovingObjectStatus id="4a231b33-11ee-4110-9f5f-9dc8675f6f16">
<validTime>
<TimeInstant>
<timePosition>2007-06-01T10:02.13</timePosition>
</TimeInstant>
</validTime>
<location>
<Point srsName="urn:EPSG:geographicCRS:4258">
<pos>67899.21, 51666.44</pos>
</Point>
</location>
<speed uom="#kph">30</speed>
<bearing>
<CompassPoint>S</CompassPoint>
</bearing>
</MovingObjectStatus>
<!-- other MovingObjectStatus elements -->
</track>
</bz10m:trip>
</bz10m:Buses>-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Mapbuilder-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mapbuilder-users