Pour des performances optimales avec Fleet Engine, fournissez-lui un flux d'informations sur la position des véhicules. Pour fournir ces informations, vous pouvez utiliser l'une des méthodes suivantes:
- Utiliser le SDK Driver: option la plus simple. Consultez la documentation du SDK Driver pour Android ou iOS.
- Utiliser un code personnalisé: utile si les positions sont relayées via votre backend ou si vous utilisez des appareils autres qu'Android ou iOS. Ce guide présente cette approche.
Si vous n'utilisez pas le SDK Driver pour mettre à jour l'emplacement du véhicule, vous pouvez passer un appel direct à Fleet Engine avec l'emplacement du véhicule. Pour tout véhicule actif, Fleet Engine attend une mise à jour de l'emplacement au moins une fois par minute et au maximum une fois toutes les cinq secondes. Ces mises à jour ne nécessitent que les droits Utilisateur du SDK pilote Fleet Engine.
Exemple de mise à jour de la position du véhicule
Java
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.
REST
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
Consultez la documentation de référence sur providers.vehicles.update.