Exemple de position de véhicule

L'exemple suivant illustre un flux de position de véhicule au format ASCII.

Pour savoir comment créer un flux de position de véhicule, consultez Fournir des informations sur le trajet en temps réel avec VehiclePosition.

# header information
header {
  # version of speed specification. Currently "2.0"
  gtfs_realtime_version: "2.0"

  # DIFFERENTIAL is unsupported. use FULL_DATASET only
  incrementality: FULL_DATASET

  # the moment when this dataset was generated on the server
  timestamp: 1656230726
}
# a definition (or update) of an entity in the transit feed
# multiple entities can be included in the feed
# be sure to provide information about EVERY active trip
entity {
  # unique identifier for the entity within the feed update message
  id:    "1"

  # "type" of the entity
  vehicle {
    # a descriptor that identifies an instance of a GTFS trip
    # defines the identifier of a trip in reference to the trips.txt file 
      # it is recommended to provide trip_id, which should be one of the following
      # (1) a trip defined in the static feed 
      # (2) a duplicate trip with schedule_relationship ADDED and new start time 
      # (3) a frequency based trip with a clearly defined start time 
    trip {
      # the trip_id from the GTFS feed that this trip refers to
      trip_id: "trip1"
      # the start time of this trip instance as specified from the GTFS feed
      start_time: "14:05:00"
      # the start date of this trip instance
      # the trip should be active at this start date
      start_date: "20220628"
      # The relation between this trip and the static schedule
      schedule_relationship: SCHEDULED
      # the route_id from the GTFS feed that this trip belongs to
      route_id: "ROUTE1"
      # the direction_id from the GTFS feed that this trip refers to
      direction_id: 0
    }


    # realtime positioning information for a given vehicle
    position {
# Degrees North, in the WGS84 coordinate system
# update latitude with the actual value
      latitude: 123.45
# Degrees East, in the WGS84 coordinate system
# update longitude with the actual value
      longitude: 12.345

    }

    # moment at which the vehicle's position was measured in seconds after epoch
    timestamp: 1656390815

    vehicle {
      # a unique identifier for the vehicle serving this particular trip 
      # the vehicle id must be provided
      id: "vehicle1"
    }
    # the degree of passenger occupancy for the vehicle
    occupancy_status: MANY_SEATS_AVAILABLE
  }
}
  entity {
  id:    "2"
  vehicle {
    trip {
      # the trip_id from the GTFS feed that this added trip is duplicated after
      trip_id: "trip2"
      # the start time of the new added trip instance
      start_time: "14:05:00"
      start_date: "20220628"
      # use ADDED to specify an extra trip that was added in addition to 
      # a running schedule
      schedule_relationship: ADDED

    }
    position {
      latitude: 123.45
      longitude: 123.45
    }
    timestamp: 1656390815
    vehicle {
      id: "vehicle2"
    }
    occupancy_status: MANY_SEATS_AVAILABLE
    # details of the multiple carriages of this given vehicle 
    # the number of occurrences of the multi_carriage_details field
    # represents the number of carriages of the vehicle
    # it also includes non boardable carriages, 
    # like engines, maintenance carriages, etc. as they provide 
    # valuable information to passengers about where to stand on a platform
    multi_carriage_details {
         # identification of the carriage, should be unique per vehicle carriage
         id: "1234-1"
          # user visible label that helps passengers identify the carriage
          label: "1"
          # the degree of passenger occupancy for this vehicles carriage
          occupancy_status: MANY_SEATS_AVAILABLE
          # identifies the order of this carriage
          carriage_sequence: 1

       }
        multi_carriage_details {
          id: "1234-2"
          label: "2"
          occupancy_status: STANDING_ROOM_ONLY
          carriage_sequence: 2

       }
        multi_carriage_details {
          id: "1234-3"
          label: "3"
          occupancy_status: STANDING_ROOM_ONLY
          carriage_sequence: 3

       }
        multi_carriage_details {
         id: "1234-4"
          label: "4"
          occupancy_status: MANY_SEATS_AVAILABLE
          carriage_sequence: 4

       }
        multi_carriage_details {
         id: "1234-5"
          label: "5"
          occupancy_status: MANY_SEATS_AVAILABLE
          carriage_sequence: 5

       }
        multi_carriage_details {
         id: "1234-6"
          label: "6"
          occupancy_status: MANY_SEATS_AVAILABLE
          carriage_sequence: 6

       }
        multi_carriage_details {
         id: "1234-7"
          label: "7"
          occupancy_status: MANY_SEATS_AVAILABLE
          carriage_sequence: 7

       }
        multi_carriage_details {
         id: "1234-8"
          label: "8"
          occupancy_status: MANY_SEATS_AVAILABLE
          carriage_sequence: 8

       }
   }
}