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

Bu dokümanda tek bir varış noktası seyahatinin nasıl oluşturulacağı, doğru alanların nasıl ayarlanacağı ve yerine getirilmesi için bir araca nasıl atanacağı açıklanmaktadır. Fleet Engine'i kurduğunuz, araçlar oluşturduğunuz, çalışan bir sürücü uygulamanız ve isteğe bağlı olarak bir tüketici uygulamanız olduğu varsayılır. Bunun için aşağıdaki ilgili kılavuzlara bakın:

Gezi oluşturmayla ilgili temel bilgiler

Bu bölümde, Fleet Engine'de seyahat oluşturmak için gereken istek ayrıntıları açıklanmaktadır. gRPC ve REST'i 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ı seyahat türleri için farklı alanlar kullanabilirsiniz: tek veya çok hedefli, arka arkaya ya da paylaşılan havuz gezileri. İsteğe bağlı alanları geziyi oluştururken sağlayabilir veya geziyi güncellerken daha sonra ayarlayabilirsiniz.

Seyahat alanları
Ad Zorunlu mu? Açıklama
parent Evet Proje kimliğini içeren bir dize. Bu kimlik, Fleet Engine entegrasyonunuzun tamamında kullanılan ve aynı hizmet hesabı rolleriyle aynı kimlik olmalıdır.
trip_id Evet Sizin oluşturduğunuz ve bu seyahati benzersiz şekilde tanımlayan bir dize. Seyahat kimliklerinde, referans bölümünde belirtildiği gibi belirli kısıtlamalar vardı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.
  • Back-to-back: EXCLUSIVE değerine ayarlanır.
  • Ortak havuz: SHARED olarak ayarlanır.
pickup_point Evet Yolculuğun kalkış noktası.
Orta düzey hedefler Evet

Yalnızca çok hedefli seyahatler: Sürücün alma ve bırakma arasında ziyaret ettiği ara hedeflerin listesi. dropoff_point ürününde olduğu gibi, bu alan da UpdateTrip numarası aranarak daha sonra ayarlanabilir ancak tanımı gereği, çok hedefli gezi ara hedefleri içerir.

vehicle_waypoints Evet

Yalnızca ortak havuz gezileri: Bu alan, birden fazla seyahatteki ara noktaların arasına katılmayı destekler. Atanmış araç için kalan tüm yol noktalarının yanı sıra bu seyahatin teslim alma ve bırakma yol noktalarını içerir. Bu alanı CreateTrip veya UpdateTrip numarasını arayarak ayarlayabilirsiniz. Araç yol işaretlerini UpdateVehicle çağrısı yaparak waypoints alanı üzerinden de güncelleyebilirsiniz. Hizmet, gizlilik nedeniyle GetTrip aramalarında bu bilgileri döndürmez.

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

Örnek: tek seferlik seyahat

Aşağıdaki örnekte, Grand Indonesia East Mall'a yapılacak bir gezi nasıl oluşturulacağı gösterilmektedir. İki yolculu yolculuğa özel, seyahatin durumu NEW. Gezinin provider_id değeri, Google Cloud projesinin kimliğiyle aynı olmalıdır. Örneklerde, proje kimliği my-rideshare-co-gcp-project olan bir Google Cloud projesi gösterilmektedir. Bu proje, Fleet Engine'i çağırmak için bir hizmet hesabı da içermelidir. 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?