Wyświetlenie listy pojazdów dostawczych

Z tego dokumentu dowiesz się, jak dodać pojazdy dostawcze.

Środowiska i ograniczenia

Możesz wyświetlać pojazdy dostawcze w środowisku serwera lub przeglądarki. Pakiet SDK Kierowca nie obsługuje listy pojazdów 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ń dotyczących listy pojazdów dostawczych używaj tokenów Delivery Fleet Reader lub Fleet Engine Delivery Admin.

W przypadku wymienionych kanałów dostawy usuwamy te pola, ponieważ mają one wpływ na rozmiar odpowiedzi:

  • 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ć pojazdy dostawcze, filtrując je według 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 zapytania 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 Filtry zapytań dotyczących atrybutów pojazdu.

Lista z ograniczeniami widoku

Możesz filtrować wymienione pojazdy dostawcze według lokalizacji za pomocą parametru viewport żądania. Parametr żądania viewport definiuje widok za pomocą 2 współrzędnych ograniczających: pary współrzędnych szerokości i długości geograficznej high (północny wschód) i low (południowy zachód). Żądania zawierające wysoką szerokość geograficzną, która jest geograficznie niższa niż niska szerokość geograficzna, są odrzucane.

Odpowiedzi

Listy pojazdów dostawczych są domyślnie dzielone na strony przy użyciu odpowiedniego rozmiaru strony. Jeśli określisz rozmiar strony, żądanie zwróci tylko liczbę pojazdów określoną przez limit lub mniejszą. Jeśli żądany rozmiar strony przekracza wewnętrzną wartość maksymalną, jest używana 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ć kolejną stronę zadań, użyj tokenu strony w żądaniu, które jest identyczne z poprzednim żądaniem.

Przykłady listy pojazdów

Aby wyświetlić listę pojazdów dostawczych w określonym regionie z określonym atrybutem, możesz użyć biblioteki Java gRPC lub interfejsu REST. Odpowiedź o powodzeniu może być pusta. Oznacza to, że w wybranym widoku nie ma żadnych pojazdów z wybranym 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ć dane o tej strukturze:

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

Co dalej?