차량 위치 업데이트

Fleet Engine에서 최상의 성능을 얻으려면 차량 위치 업데이트 스트림을 제공하세요. 이러한 업데이트를 제공하려면 다음 방법 중 하나를 사용하세요.

  1. Driver SDK 사용: 가장 간단한 옵션입니다. 드라이버 SDK 문서 보기 (Android 또는 iOS)
  2. 맞춤 코드 사용: 백엔드에서 작동하거나 Android나 iOS 이외의 기기를 사용하는 경우에 적합합니다. 이 가이드에서 다루는 내용은 다음과 같습니다. 접근하는 것입니다.

Driver SDK를 사용하여 차량 위치를 업데이트하지 않는 경우 차량 위치를 포함하여 Fleet Engine에 직접 전화를 겁니다. 활성 차량의 경우 Fleet Engine의 위치 업데이트는 최소 1분마다 한 번 이상 필요합니다. 5초에 한 번 반복됩니다 이 업데이트에는 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.

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 참조를 확인하세요.

다음 단계