برای بهترین عملکرد با Fleet Engine، جریانی از بهروزرسانیهای موقعیت مکانی خودرو را در اختیار آن قرار دهید. برای ارائه این بهروزرسانیها از یکی از روشهای زیر استفاده کنید:
- از Driver SDK استفاده کنید : سادهترین گزینه. برای اندروید یا iOS به مستندات Driver SDK مراجعه کنید.
- استفاده از کد سفارشی : اگر مکانها از طریق backend شما منتقل میشوند یا اگر از دستگاههایی غیر از اندروید یا iOS استفاده میکنید، مفید است. این راهنما این رویکرد را پوشش میدهد.
اگر از Driver SDK برای بهروزرسانی موقعیت مکانی خودرو استفاده نمیکنید، میتوانید مستقیماً با Fleet Engine تماس بگیرید و موقعیت مکانی خودرو را به آن اطلاع دهید. Fleet Engine انتظار دارد که موقعیت مکانی هر وسیله نقلیه فعال حداقل هر دقیقه و حداکثر هر ۵ ثانیه بهروزرسانی شود. این بهروزرسانیها فقط به امتیازات کاربر 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به مرجع providers.vehicles.update مراجعه کنید.