Rota Genel Bakış API'sı

Route Overview API (Rotaya Genel Bakış API), DriverSDK. Bu araçla belirli bir araca ait rota bilgilerini alabilirsiniz, tek seferlik getirme olarak veya güncellemeler için işleyici kullanarak sürekli olarak değiştirebilirsiniz. İlgili içeriği oluşturmak için kullanılan Route Overview API (Rotaya Genel Bakış API'si) aşağıdaki bilgi türlerini destekler:

  • Araç durak konumları, seyahat süreleri, mesafeler dahil olmak üzere tam rota planı
  • Her bir durak arasındaki rota çoklu çizgi yolu.

Bu belgede, uygulamanızın API'siyle entegrasyon adımları açıklanmaktadır.

Ön koşullar

  • Android uygulamanızı alfa kullanarak çalıştırıyor olmanız gerekir DriverSDK v4.1.0 veya daha yüksek bir sürümün kanalına sahip olduğundan emin olun. Alfa kanalı kullanılabilir Maven artifactId için transportation-driver-alpha kullanarak.
  • API, Fleet Engine tarafından Deliveries API'si. Bu, DriverSDK'daki API'ler aracılığıyla sağlanabilir (DeliveryDriverApi) veya doğrudan Fleet Engine'e.

Entegrasyon adımları

Bu bölümde, Android sürücü uygulamanızı entegre etmek için gereken temel adımlar ele alınmaktadır bunu API ile yapabilirsiniz. Bu talimatlar aşağıdaki varsayımlara sahiptir:

  • Sürücü SDK'sı
  • Uygulamanızda DeliveryDriverApi öğesini bir bağlamla başlattınız bulabileceğiniz nesne

Görüntüleyin Android için Sürücü SDK'sını Kullanmaya Başlama inceleyebilirsiniz.

0. Adım - Rota kurulumu

Fleet Engine'i zaten kurduysanız ve araç durağı ve teslimat görevi oluşturabilirsiniz.

Durma ve görev bilgilerini Fleet Engine'e yüklemek için bir teslimat aracına ihtiyacınız var geçerli bir rotaya atanır. Bunun nedeni, Route Overview API için geçerli bir dâhil olmak üzere bir dizi rotayı takip eder. Geçerli rotalar, ara noktaları ve durakları vardır ve bir durak, yalnızca ilişkili en az bir görevi görebilir. Bkz. Fleet Engine API entegrasyon kılavuzu konulu videomuzu izleyin.

1. Adım - API'yi başlatın

İlişkili durak ve görevler içeren geçerli bir rota belirledikten sonra Route Overview API'yi (Rotaya Genel Bakış API'si) başlatın. Başlatma, çerçeveyi sağlar Fleet Engine ile API arasındaki bağlantı için gerekli olan bilgileri içerir. Rota Genel Bakış API'si, daha önce kullandığınız bağlam nesnesiyle başlatılmalıdır DeliveryDriverApi öğesini DriverSDK'da başlatın, çünkü nesne DriverContext nesnenizde daha önce tanımladığınız araç kimliği. Aşağıdakiler örnek, RouteOverviewApi örneğinin nasıl oluşturulacağını gösterir.


RouteOverviewApi api = RouteOverviewApi.getInstance();
if (api == null) {
    api = RouteOverviewApi.createInstance(context);
}

2. Adım - Aracı rota değişikliği etkinlikleri için kaydedin

Artık API'yi başlattığınıza göre VehicleRouteOverview API'sini kullanabilirsiniz. nesne bulmanız gerekir. Böylece, uygulamanın, rota kurulumu sırasında sağladığınız rota bilgilerini kullanmasına izin verir. Etkinlik güncellemelerini ve rota alımını kolaylaştırmak için API etkinlik işleyiciyi kullanın.

Bir’e atanan duraklardan herhangi birine giden yol, araç güncellendiğinde, duruş yerinin yerini değiştirdiğinde veya Fleet Engine TVS bilgileri.


vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
    // handle route update events
});

3. Adım - API'yi etkinleştirin

Artık rota bilgilerini kullanmaya hazır olduğunuza göre araç etkinliklerine yanıt vermesine izin verir. API'nin devre dışı durumuna getirin.

vehicleRouteOverview.setRouteOverviewEnabled(true);

false değerine ayarlanır.

4. Adım - Rotayı Google Haritası üzerinde çizin

RouteToVehicleStop listesini aldıktan sonra, bunu şurada kullanabilirsiniz: kabul edersiniz. Örneğin, rotanın çoklu çizgi yolunu bir Google Haritası'nda çizebilirsiniz. kullanır. Aşağıdaki kod snippet'i, rotayı çizen bir çoklu çizgileri hedefler ve her durak konumunun üstüne işaretçiler ekler.

    GoogleMap googleMap = … // Instance of the Map view you are using
    ImmutableList<RouteToVehicleStop> route = event.newRoute();

    PolylineOptions routePolyline = new PolylineOptions().color(Color.BLUE);
    for (RouteToVehicleStop stop : route) {
        routePolyline.addAll(stop.path());

        MarkerOptions marker =
            new MarkerOptions().position(stop.vehicleStop().getWaypoint().getPosition());
        googleMap.addMarker(marker);
    }

    googleMap.addPolyline(routePolyline);
}

Rotaya genel bakış resmini gösteren ekran görüntüsü

Bu, sağdaki ekran görüntüsüne benzer bir görünümle sonuçlanır:

5. Adım - Rotanın anlık görüntüsünü alın

Uygulamanızın, sayfanızın anlık görüntüsünü almak için tek seferlik bir arama rota bilgilerinin yanı sıra, bu bilgileri almak için veri:

ListenableFuture<ImmutableList<RouteToVehicleStop> future = vehicleRouteOverview.getRouteToVehicleStops();
ImmutableList<RouteToVehicleStop> stops = future.get();

Rota güncellemelerine etkinlik işleyiciler aracılığıyla abone olmak yerine bunu yapabilirsiniz.

6. adım: Temizleme

Uygulamanızın artık rotaya genel bakış işlevine ihtiyacı yoksa görünür. Temizlik yaparak gereksiz bellek, işleme ve ağ tüketimini gösterir.

Belirli bir etkinlik işleyiciyi kaldırma

Belirli bir işleyici artık çalışmadığında etkinlik işleyiciyi kaldırmanız gerekir gerekir.

vehicleRouteOverview.removeOnRouteChangedEventListener(listener);

Tüm etkinlik işleyicileri temizle

Temizlik rutininizin bir parçası olarak aynı anda kaydedilen tüm farklı etkinlik işleyicileri kaldırabilirsiniz.

vehicleRouteOverview.clearEventListeners();

Route Overview API örneğini temizle

Rotaya Genel Bakış artık gerekli olmadığında veya takip edilen aracın kimliği değiştiğinde dahili referansları temizlemek için bu API'yi çağırabilirsiniz.

vehicleRouteOverview.clearInstance();