Fleet Engine'in en iyi performansı göstermesi için ona bir araç konumu güncelleme akışı sağlayın. Bu güncellemeleri sağlamak için aşağıdaki yöntemlerden birini kullanın:
- Sürücü SDK'sını kullanın: En basit seçenektir. Android veya iOS için Sürücü SDK'sı belgelerine bakın.
- Özel kod kullanma: Konumlar arka uç üzerinden iletiliyorsa veya Android ya da iOS dışında cihazlar kullanıyorsanız bu seçenek kullanışlıdır. Bu kılavuzda bu yaklaşım ele alınmaktadır.
Aracın konumunu güncellemek için sürücü SDK'sı kullanılmıyorsa aracın konumuyla doğrudan Fleet Engine'e çağrı yapabilirsiniz. Fleet Engine, etkin bir araç için en az dakikada bir, en fazla 5 saniyede bir konum güncellemesi bekler. Bu güncellemeler için yalnızca Fleet Engine Sürücü SDK'sı Kullanıcısı ayrıcalıkları gerekir.
Araç konumunu güncelleme örneği
Bir araç konumunu güncellemek için aşağıdaki örnekte gösterildiği gibi Java gRPC kitaplığını veya REST'i kullanabilirsiniz. Desteklenen dillerin tam listesi için İsteğe bağlı seyahat hizmetleri için istemci kitaplıkları başlıklı makaleyi inceleyin.
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
}
EOMproviders.vehicles.update referansını inceleyin.