Teslimat araçlarını listeleme

Bu belgede, teslimat araçlarının nasıl listeleneceği açıklanmaktadır.

Ortamlar ve sınırlamalar

Yayın araçlarını bir sunucu veya tarayıcı ortamından listeleyebilirsiniz. Sürücü SDK'sı, teslimat araçlarının listelenmesini desteklemez.

Teslimat araçlarını listeleme, teslimat araçlarına geniş erişim izni gerektirir ve yalnızca güvenilir kullanıcılar için tasarlanmıştır. Teslimat araçlarını listeleme istekleri gönderirken Teslimat Filosu Okuyucusu veya Fleet Engine Teslimat Yöneticisi jetonlarını kullanın.

Listelenen teslimat araçlarında, yanıt boyutuna olan etkileri nedeniyle aşağıdaki alanlar çıkarılır:

  • CurrentRouteSegment
  • RemainingVehicleJourneySegments

Kullanım

Araçları özellik filtrelerine ve görünüm alanı sınırlarına göre listeleyebilirsiniz. Filtre veya görüntü alanı belirtmezseniz yanıt, tüm teslimat araçlarını içerir.

Özellik filtreleri içeren liste

Teslimat araçlarını, attributes özelliğini kullanarak filtreye göre listeleyebilirsiniz. Örneğin, anahtarı my_key ve değeri my_value olan bir özelliği sorgulamak için attributes.my_key = my_value kullanın. Birden fazla özellik için sorgu oluşturmak üzere sorguları attributes.key1 = value1 AND attributes.key2 = value2 örneğinde olduğu gibi mantıksal AND ve OR operatörlerini kullanarak birleştirin. Filtre sorgusu söz diziminin tam açıklaması için AIP-160'a bakın. Filtreleri görüntü alanı sınırlarıyla birleştirirseniz filtre, görüntü alanı sınırına AND operatörü olarak etki eder. Ayrıntılar için Araç özellikleri filtreleme sorguları başlıklı makaleyi inceleyin.

Görüntü alanı sınırlarını içeren liste

Listelenen teslimat araçlarını viewport istek parametresini kullanarak konuma göre filtreleyebilirsiniz. viewport istek parametresi, iki sınırlayıcı koordinat kullanarak görünüm alanlarını tanımlar: high (kuzeydoğu) ve low (güneybatı) enlem ve boylam koordinatları çifti. Coğrafi olarak düşük bir enlemden daha düşük bir enlem içeren istekler reddedilir.

Liste yanıtları

Teslimat aracı listeleri, varsayılan olarak makul bir sayfa boyutu kullanılarak sayfalandırılır. Sayfa boyutu belirtirseniz istek, yalnızca sınırla belirtilen sayıda veya daha az araç döndürür. İstenen sayfa boyutu dahili bir maksimum değeri aşarsa dahili maksimum değer kullanılır. Varsayılan ve maksimum sayfa boyutları 100 araçtır.

Teslimat araçları listesi, sonuçların sonraki sayfasını okumak için bir jeton içerebilir. Sayfa jetonu, yalnızca alınabilecek daha fazla teslimat aracı sayfası olduğunda yanıtta yer alır. Sonraki görev sayfasını almak için sayfa jetonunu önceki istekle aynı olan bir istekle kullanın.

Araç listeleme örnekleri

Belirli bir bölgedeki belirli bir özelliğe sahip teslimat araçlarını listelemek için Java gRPC kitaplığını veya REST'i kullanabilirsiniz. Başarılı bir yanıt yine de boş olabilir. Bu durumda, belirtilen görüntü alanında belirtilen özelliğe sahip araç olmadığı anlaşılır. Desteklenen dillerin tam listesi için Planlanmış görev hizmetleri için istemci kitaplıkları başlıklı makaleye bakın.

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"

Arama başarılı olursa yanıt gövdesi aşağıdaki yapıyla birlikte verileri içerir:

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

Sırada ne var?