Wyświetlenie listy pojazdów dostawczych

Z tego dokumentu dowiesz się, jak wyświetlić listę pojazdów dostawczych.

Środowiska i ograniczenia

Możesz wyświetlić listę pojazdów dostawy ze środowiska serwera lub przeglądarki. Pakiet SDK sterowników nie obsługuje wyświetlania informacji o pojazdach dostawczych.

Wykazywanie pojazdów dostawczych wymaga szerokiego dostępu do pojazdów dostawczych i jest przeznaczone tylko dla zaufanych użytkowników. Podczas wysyłania żądań list pojazdów dostarczających listę używaj tokenów Delivery Fleet Reader lub Fleet Engine Delivery Admin.

Ze względu na wpływ na rozmiar odpowiedzi te pola w przypadku pojazdów dostawy z listą produktów zostały usunięte:

  • CurrentRouteSegment
  • RemainingVehicleJourneySegments

Wykorzystanie

Możesz wyświetlać listę pojazdów według filtrów atrybutów i granic widoku. Jeśli nie określisz żadnego filtra ani widoku, odpowiedź będzie zawierać wszystkie kanały dostawy.

Lista z filtrami atrybutów

Możesz wyświetlić listę pojazdów dostawczych według filtra z użyciem ich właściwości attributes. Aby na przykład zapytać o atrybut o kluczu my_key i wartości my_value, użyj wyrażenia attributes.my_key = my_value. Aby zapytać o kilka atrybutów, połącz zapytania za pomocą operatorów logicznych ANDOR, jak w przypadku zapytania attributes.key1 = value1 AND attributes.key2 = value2. Pełny opis składni zapytań filtra znajdziesz w artykule AIP-160. Jeśli połączysz filtry z ograniczeniami widoku, filtr będzie działać jak operator AND w przypadku ograniczenia widoku. Szczegółowe informacje znajdziesz w sekcji Zapytania dotyczące filtru atrybutów pojazdu.

Lista z granicami widocznego obszaru

Możesz filtrować wymienione pojazdy dostawy według lokalizacji, używając parametru żądania viewport. Parametr żądania viewport definiuje widoczne obszary za pomocą dwóch współrzędnych ograniczających: high (północny wschód) i low (południowy zachód). Żądania są odrzucane, jeśli zawierają dużą szerokość geograficzną, która jest geograficznie mniejsza niż mała szerokość geograficzna.

Odpowiedzi

Listy pojazdów dostawy są domyślnie podzielone na strony w odpowiednim rozmiarze. Jeśli określisz rozmiar strony, żądanie zwróci tylko liczbę pojazdów określoną w tym limicie lub mniejszą. Jeśli żądany rozmiar strony przekracza wewnętrzną wartość maksymalną, używana jest wewnętrzna wartość maksymalna. Domyślna i maksymalna liczba pojazdów na stronie to 100.

Lista pojazdów dostawczych może zawierać token umożliwiający wyświetlenie następnej strony wyników. Token strony jest obecny w odpowiedzi tylko wtedy, gdy do pobrania jest więcej stron pojazdów dostawczych. Aby pobrać następną stronę zadań, użyj tokena strony z żądaniem, które jest identyczne z poprzednim żądaniem.

Wyświetlanie listy przykładów pojazdów

Możesz użyć biblioteki gRPC Java lub REST, aby wyświetlić listę pojazdów dostawy z konkretnego regionu z określonym atrybutem. Odpowiedź informująca o powodzeniu może być pusta. Gdy tak się stanie, oznacza to, że w widocznym obszarze nie są widoczne żadne pojazdy z określonym atrybutem.

Java


  static final String PROJECT_ID = "my-delivery-co-gcp-project";

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Tasks request
  String parent = "providers/" + PROJECT_ID;
  ListDeliveryVehiclesRequest listDeliveryVehiclesRequest =
    ListDeliveryVehiclesRequest.newBuilder()  // No need for the header
        .setParent(parent)
        .setViewport(
              Viewport.newBuilder()
                .setHigh(LatLng.newBuilder()
                    .setLatitude(37.45)
                    .setLongitude(-122.06)
                    .build())
                .setLow(LatLng.newBuilder()
                    .setLatitude(37.41)
                    .setLongitude(-122.11)
                    .build())
        .setFilter("attributes.my_key = my_value")
        .build();

  try {
    ListDeliveryVehiclesResponse listDeliveryVehiclesResponse =
        deliveryService.listDeliveryVehicles(listDeliveryVehiclesRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
        case NOT_FOUND:
            break;

        case PERMISSION_DENIED:
            break;
    }
    return;
  }

REST

  # HTTP request
  html GET https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles

  # Request with a filter
  # Request sets JWT, PROJECT_ID, and VEHICLE_ID in the local environment
  curl -H "Authorization: Bearer ${JWT}" \
    "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles?filter=attributes.my_key%20%3D%20my_value%20&viewport.high.latitude=37.45&viewport.high.longitude=-122.06&viewport.low.latitude=37.41&viewport.low.longitude=-122.11"

Jeśli wyszukiwanie się powiedzie, treść odpowiedzi będzie zawierała dane o tej strukturze:

  // JSON representation
  {
    "deliveryVehicles": [
      {
        object (DeliveryVehicle)
      }
    ],
    "nextPageToken": string,
    "totalSize": integer
  }

Co dalej?