للحصول على أفضل أداء باستخدام Fleet Engine، عليك تزويدها ببث من تعديلات الموقع الجغرافي للمركبة. يمكنك استخدام إحدى الطريقتَين التاليتَين لتقديم هذه التعديلات:
- استخدام حزمة SDK لبرنامج التشغيل: أبسط خيار. اطّلِع على مستندات حزمة تطوير برامج (SDK) لبرنامج Driver SDK لنظامَي التشغيل Android أو iOS.
- استخدام رمز مخصّص: يكون مفيدًا إذا تم نقل المواقع الجغرافية من خلال الخلفية، أو إذا كنت تستخدم أجهزة غير Android أو iOS. يتناول هذا الدليل هذه الطريقة.
في حال عدم استخدام حزمة Driver SDK لتعديل موقع المركبة، يمكنك إجراء مكالمة مباشرة إلى Fleet Engine مع تحديد موقع المركبة. بالنسبة إلى أي مركبة نشطة، يتوقع "محرك الأسطول" تعديلًا للموقع الجغرافي مرة واحدة على الأقل كل دقيقة وبحد أقصى مرة واحدة كل 5 ثوانٍ. لا تتطلّب هذه التعديلات سوى امتيازات مستخدم حزمة تطوير البرامج (SDK) لبرنامج Fleet Engine Driver.
مثال على تعديل الموقع الجغرافي للمركبة
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
راجِع مرجع providers.vehicles.update.