Обновить местоположение автомобиля

Для обеспечения максимальной производительности Fleet Engine предоставьте ему поток обновлений о местоположении транспортных средств. Используйте любой из следующих способов для предоставления этих обновлений:

  1. Используйте Driver SDK : самый простой вариант. См. документацию Driver SDK для Android или iOS .
  2. Использовать собственный код : полезно, если местоположения передаются через серверную часть или если вы используете устройства, отличные от Android или iOS. Данное руководство описывает этот подход.

Если вы не используете Driver SDK для обновления местоположения автомобиля, вы можете напрямую позвонить в Fleet Engine и сообщить о местонахождении автомобиля. Для любого активного транспортного средства Fleet Engine ожидает обновления местоположения не реже одного раза в минуту и ​​не чаще одного раза в 5 секунд. Для этих обновлений требуются только права пользователя Fleet Engine Driver SDK .

Обновить пример местоположения автомобиля

Джава

static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";

VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);

String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
    .setLastLocation(VehicleLocation.newBuilder()
        .setSupplementalLocation(LatLng.newBuilder()
            .setLatitude(37.3382)
            .setLongitude(121.8863))
        .setSupplementalLocationTime(now())
        .setSupplementalLocationSensor(LocationSensor.CUSTOMER_SUPPLIED_LOCATION)
        .setSupplementalLocationAccuracy(DoubleValue.of(15.0)))  // Optional
    .build();

UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
    .setName(vehicleName)
    .setVehicle(updatedVehicle)
    .setUpdateMask(FieldMask.newBuilder()
        .addPaths("last_location"))
    .build();

try {
  Vehicle updatedVehicle =
      vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case NOT_FOUND:
      // Most implementations will call CreateVehicle in this case
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}
// If no Exception, Vehicle updated successfully.

ОТДЫХ

curl -X PUT \
  "https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=last_location" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  --data-binary @- << EOM
{
    "supplementalLocation": {"latitude": 12.1, "longitude": 14.5},
    "supplementalLocationTime": "$(date -u --iso-8601=seconds)",
    "supplementalLocationSensor": "CUSTOMER_SUPPLIED_LOCATION",
    "supplementalLocationAccuracy": 15
}
EOM

См. справку по поставщикам.транспортных средств.обновления .

Что дальше