Rota Genel Bakış API'sı

Route Overview API, DriverSDK'da derlenmiş bir Son Aşama Filo Çözümü ürünüdür. Bu özellik sayesinde, belirli bir aracın rota bilgilerini tek seferlik getirme şeklinde veya güncellemeler için bir işleyici kullanarak sürekli olarak alabilirsiniz. Rotaya Genel Bakış API, 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ı DriverSDK v4.1.0 veya üstünün alfa kanalını kullanarak çalıştırıyor olmanız gerekir. Alfa kanalı, Maven yapı kimliği için transportation-driver-alpha kullanılarak kullanılabilir.
  • API, Deliveries API üzerinden Fleet Engine tarafından sağlanan rota bilgilerini kullanır. Bu, DriverSDK'daki API'ler (DeliveryDriverApi) aracılığıyla veya doğrudan Fleet Engine'e sağlanabilir.

Entegrasyon adımları

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

  • Halihazırda Driver SDK ile entegre edilmiş bir Android uygulamanız varsa
  • Uygulamanızda DeliveryDriverApi öğesini, bulabileceğiniz bir bağlam nesnesiyle başlattınız.

Ayrıntılar için Android için Sürücü SDK'sını Kullanmaya Başlama bölümüne bakın.

0. Adım - Rota kurulumu

Fleet Engine'i zaten kurduysanız ve araç durakları ve teslimat görevleri oluşturabiliyorsanız bu adımı atlayabilirsiniz.

Durma ve görev bilgilerini Fleet Engine'e yüklemek için bir teslimat aracının geçerli bir rotaya atanmış olması gerekir. Bunun nedeni, Route Overview API'nin veri getirmek için geçerli yönlendirmeler gerektirmesidir. Geçerli rotalar, bir dizi ara nokta ve duraktan oluşur ve bir durak, yalnızca en az bir ilişkili göreve sahipse var olabilir. Daha fazla bilgi için Fleet Engine API entegrasyon kılavuzuna bakın.

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

İlişkili durak ve görevlerle geçerli bir rota belirledikten sonra Route Overview API'yi başlatabilirsiniz. Başlatma, Fleet Engine ile API arasındaki bağlantı için gerekli olan çerçeveyi sağlar. Nesne, DriverContext nesnenizde daha önce tanımlanan araç kimliğini belirttiğinden RouteOverview API, DriverSDK'da DeliveryDriverApi öğesini başlatmak için kullandığınız bağlam nesnesiyle başlatılmalıdır. Aşağıdaki örnekte RouteOverviewApi örneğinin nasıl oluşturulacağı gösterilmektedir.


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

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

API'yi başlattığınıza göre artık VehicleRouteOverview nesnesini kullanarak rotaya genel bakış özellikleriyle etkileşime geçebilirsiniz. Bu, uygulamanızı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.

Araca atanan duraklardan herhangi birine giden yol güncellendiğinde, durma noktası yeniden düzenlendiğinde veya Fleet Engine TVS bilgilerini güncellediğinde bir rota değişikliği etkinliği meydana gelir.


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 vermek için API'yi etkinleştirmeniz gerekir. Ağ bant genişliğinin gereksiz bir şekilde tüketimini önlemek için API'nin devre dışı durumda başlatıldığını unutmayın.

vehicleRouteOverview.setRouteOverviewEnabled(true);

Aynı yöntemi false değeriyle çağırarak bu güncellemeleri istediğiniz zaman duraklatabilirsiniz.

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

RouteToVehicleStop'ların listesini aldıktan sonra, bunları uygulamanızda kullanabilirsiniz. Örneğin, bir Google Haritalar örneğinde rotanın çoklu çizgi yolunu çizebilirsiniz. Aşağıdaki kod snippet'i, harita görünümünde rota çoklu çizgisini çizen ve her durak konumunun üstüne işaretçiler ekleyen bir örnek göstermektedir.

    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, mevcut rota bilgilerinin anlık görüntüsünü almak için tek seferlik bir çağrı yayınlamasını istiyorsanız bu verileri almak için aşağıdaki yöntemi kullanabilirsiniz:

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ızda artık rotaya genel bakış işlevine ihtiyaç duymuyorsa yeri temizlediğinizden emin olun. Temizlik, uygulamanızda gereksiz bellek, işleme ve ağ tüketimini önler.

Belirli bir etkinlik işleyiciyi kaldırma

Belirli bir işleyiciye artık gerek kalmadığında etkinlik işleyiciyi kaldırmanız 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();