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

Bu belgede, tek varış noktalı bir gezi oluşturma, doğru alanları ayarlama ve bunu karşılanacak bir araca atama işlemleri açıklanmaktadır. Bu kılavuzda, Fleet Engine'i kurduğunuz, araçlar oluşturduğunuz, çalışan bir sürücü uygulamanız olduğu ve isteğe bağlı olarak bir tüketici uygulamanız olduğu varsayılmaktadı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 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 (tek veya çok varış noktalı, arka arkaya ya da paylaşımlı yolculuklar) için farklı alanlar kullanabilirsiniz. İsteğe bağlı alanları geziyi oluştururken sağlayabilir veya geziyi güncellerken daha sonra ayarlayabilirsiniz.

Seyahat alanları
Ad Zorunlu mu? Açıklama
üst Evet Proje kimliğini içeren bir dize. Bu kimlik, aynı hizmet hesabı rolleriyle birlikte tüm Fleet Engine entegrasyonunuzda kullanılan kimlikle aynı olmalıdır.
trip_id Evet Bu geziyi benzersiz bir şekilde tanımlayan bir dize oluşturursunuz. Seyahat 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.
  • Çok varış noktalı: 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 çok varış noktalı yolculuklar: Sürücünün yolcu alma ve bırakma arasında ziyaret ettiği ara varış noktalarının listesi. dropoff_point ile aynı şekilde, bu alan UpdateTrip çağrılarak daha sonra da ayarlanabilir ancak tanım gereği çok varış noktalı bir yolculuk ara varış noktaları içerir.

vehicle_waypoints Evet

Yalnızca paylaşımlı havuz gezileri: Bu alan, birden fazla gezideki ara noktaların iç içe geçmesini 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 numaralı telefonu arayarak ayarlayabilirsiniz. Ayrıca, waypoints alanını kullanarak UpdateVehicle'a yapılan bir çağrıyla araç yol noktalarını da güncelleyebilirsiniz. Hizmet, gizlilik nedeniyle GetTrip görüşmelerinde 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 Gezide kullanılan aracın kimliği.

Örnek: tek varış noktalı gezi

Aşağıdaki örnekte, Grand Indonesia East Mall'a gezi oluşturma işlemi gösterilmektedir. Gezide iki yolcu var, gezi ö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. Fleet Engine'i çağırmak için bu projede 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?