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

Reply via email to