Cập nhật vị trí của xe

Để Fleet Engine đạt được hiệu suất tốt nhất, hãy cung cấp cho nó một luồng xe cập nhật vị trí. Bạn có thể sử dụng một trong các cách sau để cung cấp các thông tin cập nhật này:

  1. Sử dụng SDK trình điều khiển: lựa chọn đơn giản nhất. Xem tài liệu về SDK của trình điều khiển dành cho Android hoặc iOS.
  2. Sử dụng mã tùy chỉnh: hữu ích nếu vị trí được chuyển tiếp thông qua hoặc nếu bạn sử dụng các thiết bị khác ngoài Android hoặc iOS. Hướng dẫn này đề cập đến phương pháp đó.

Nếu không sử dụng SDK trình điều khiển để cập nhật vị trí của xe, bạn có thể gọi trực tiếp đến Fleet Engine để biết vị trí của xe. Đối với mọi xe đang hoạt động, Fleet Engine mong muốn cập nhật vị trí ít nhất một lần mỗi phút và tối đa là một lần mỗi 5 giây. Những bản cập nhật này chỉ yêu cầu Người dùng SDK Trình điều khiển Fleet Engine đặc quyền.

Cập nhật ví dụ về vị trí của xe

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.

Kiến trúc chuyển trạng thái đại diện (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

Hãy xem tài liệu tham khảo providers.vehicles.update.

Các bước tiếp theo