Tek varış noktası içeren bir gezi oluşturun

Bu dokümanda, tek bir hedef seyahat oluşturma, doğru alanları ayarlama ve seyahatleri yerine getirmek için bir araca atama işlemleri açıklanmaktadır. Filoyu kurduğunuz varsayılır Araç oluşturduğunuzu, çalışan bir sürücü uygulamanız olduğunu ve isteğe bağlı olarak bir tüketici uygulaması. Bununla ilgili aşağıdaki kılavuzlara göz atın:

Gezi oluşturmayla ilgili temel bilgiler

Bu bölümde, Londra'da seyahat oluşturmak için gereken istek ayrıntıları Filo Motoru. gRPC veya REST kullanarak bir oluşturma isteği gönderirsiniz.

  • CreateTrip() yöntemi: gRPC veya REST
  • CreateTripRequest mesajı: Yalnızca gRPC

Seyahat Alanları

Fleet Engine'de gezi oluşturmak için aşağıdaki alanları kullanın. Farklı veri türleri için farklı seyahat türlerine yönelik alanlar sunar: tek veya çok hedefli, ortak havuz gezileri olabilir. Siz isteğe bağlı alanları geziyi oluştururken sağlayabilir veya bunları ya da siz de bu sırada gezinebilirsiniz.

Seyahat alanları
Ad Zorunlu mu? Açıklama
parent Evet Proje kimliğini içeren bir dize. Bu kimlik, kullanılan kimlikle aynı olmalıdır aynı hizmet hesabını kullanarak, Fleet Engine entegrasyonunuzun tamamında rolleri.
trip_id Evet Sizin oluşturduğunuz ve bu seyahati benzersiz şekilde tanımlayan bir dize. Gezi kimlikleri referansta belirtildiği şekilde bazı kısıtlamalara tabi olacaktır.
trip_type Evet TripType'ı, oluşturduğunuz gezi türü için aşağıdaki değerlere ayarlayın:
  • Tek hedef: SHARED veya EXCLUSIVE olarak ayarlayın.
  • Çok hedef: EXCLUSIVE olarak ayarlayın.
  • Arka arkaya: EXCLUSIVE olarak ayarlayın.
  • Shared Pooling (Paylaşılan havuz): SHARED olarak ayarlayın.
pickup_point Evet Seyahatin kalkış noktası.
Orta düzey hedefler Evet

Yalnızca çok hedefli geziler: Sürücün arada ziyaret ettiği ara hedeflerin listesi yardımcı olur. dropoff_point olduğu gibi bu alan da daha sonra da ayarlanabilir ancak çok hedefli bir arama yapıldığında UpdateTrip tanımı gereği ara hedefler içerir.

vehicle_waypoints Evet

Yalnızca ortak havuz gezileri: Bu alan, birden fazla seyahatteki ara noktaların arasına katılmayı destekler. Burada, atanan aracın kalan tüm ara noktaları da olarak ayarlayabilirsiniz. Bu alanı, CreateTrip veya UpdateTrip numaralı telefonu arayarak. Araç yol işaretlerini UpdateVehicle çağrısı yaparak waypoints alanı üzerinden de güncelleyebilirsiniz. Hizmet GetTrip aramalarında bu bilgileri döndürmez izin verilebilir.

number_of_passengers Hayır Gezideki yolcu sayısı.
dropoff_point Hayır Gezinin varış noktası.
vehicle_id Hayır Seyahate atanan aracın kimliği.

Örnek: tek hedefli gezi

Aşağıdaki örnekte, Grand Indonesia East Mall'a yapılacak bir gezi nasıl oluşturulacağı gösterilmektedir. Seyahat iki yolcu içeriyor, özel ve durumu NEW. Gezinin provider_id tarihi, Google Cloud ile aynı olmalıdır proje kimliği. Örnekler, proje kimliğine sahip bir Google Cloud projesini göstermektedir my-rideshare-co-gcp-project Bu projede bir hizmet hesabı da bulunmalıdır amacıyla Fleet Engine'i arayacağım. Ayrıntılar için Hizmet hesabı rolleri bölümüne bakın.

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

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

// Trip initial settings.
String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE) // Use TripType.SHARED for carpooling.
    .setPickupPoint(                 // Grand Indonesia East Mall.
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setNumberOfPassengers(2)
    // Provide the drop-off point if available.
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId("trip-8241890")  // Trip ID assigned by the provider.
    .setTrip(trip)              // The initial state is NEW.
    .build();

// Error handling.
try {
  Trip createdTrip = tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

Sırada ne var?