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

Bu belgede, tek varış noktalı bir gezi oluşturma, doğru alanları ayarlama ve geziyi yerine getirmesi için bir araca atama işlemleri açıklanmaktadır. Fleet Engine'i ayarladığınız, 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ılavuzları inceleyin:

Gezi oluşturmayla ilgili temel bilgiler

Bu bölümde, Fleet Engine'da gezi oluşturmak için gereken istek ayrıntıları açıklanmaktadır. gRPC veya REST kullanarak oluşturma isteği gönderirsiniz.

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

Gezi Alanları

Fleet Engine'da gezi oluşturmak için aşağıdaki alanları kullanın. Tek veya birden fazla varış noktası, arka arkaya ya da paylaşımlı yolculuklar gibi farklı yolculuk türleri için farklı alanlar kullanabilirsiniz. Geziyi oluştururken isteğe bağlı alanları doldurabilir veya geziyi güncellerken daha sonra ayarlayabilirsiniz.

Gezi alanları
Ad Zorunlu mu? Açıklama
parent Evet Proje kimliğini içeren bir dize. Bu kimlik, Fleet Engine entegrasyonunuzun tamamında aynı hizmet hesabı rolleriyle kullanılan kimlikle aynı olmalıdır.
trip_id Evet Bu geziyi benzersiz şekilde tanımlamak için oluşturduğunuz dize. Gezi kimlikleri, referansta belirtildiği gibi belirli kısıtlamalara tabidir.
trip_type Evet Oluşturduğunuz gezi türü için TripType'ı aşağıdaki değerlere ayarlayın:
  • Tek hedef: SHARED veya EXCLUSIVE olarak ayarlayın.
  • Çoklu hedef: EXCLUSIVE olarak ayarlayın.
  • Arka arkaya: EXCLUSIVE olarak ayarlayın.
  • Paylaşılan havuz: SHARED olarak ayarlanır.
pickup_point Evet Gezinin başlangıç noktası.
Ara hedefler Evet

Yalnızca birden fazla varış noktası olan geziler: Sürücünün teslim alma ve bırakma arasında ziyaret ettiği ara varış noktalarının listesi. dropoff_point gibi bu alan da daha sonra UpdateTrip çağrılarak ayarlanabilir ancak birden fazla varış noktası olan bir gezi, tanım gereği ara varış noktaları içerir.

vehicle_waypoints Evet

Yalnızca paylaşımlı yolculuklar: Bu alan, birden fazla yolculuktaki yol noktalarının birleştirilmesini destekler. Atanan araç için kalan tüm ara noktaların yanı sıra bu seyahatin teslim alma ve bırakma ara noktalarını içerir. Bu alanı CreateTrip veya UpdateTrip yöntemini çağırarak ayarlayabilirsiniz. Ayrıca, UpdateVehicle çağrısı yaparak waypoints alanı üzerinden araç yol noktalarını güncelleyebilirsiniz. Hizmet, gizlilik nedeniyle GetTrip çağrılarında bu bilgileri döndürmez.

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

Örnek: tek varış noktalı gezi

Aşağıdaki örnekte, Grand Indonesia East Mall'a nasıl gezi oluşturulacağı gösterilmektedir. Gezi iki yolcu içeriyor, özel ve durumu NEW. Gezinin provider_id, Google Cloud proje kimliğiyle aynı olmalıdır. Örneklerde, proje kimliği my-rideshare-co-gcp-project olan bir Google Cloud projesi gösterilmektedir. Bu projede, Fleet Engine'i çağırmak için bir hizmet hesabı da bulunmalıdır. Ayrıntılar için Hizmet hesabı rolleri başlıklı makaleyi inceleyin.

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?