Rota planlama

Bazen uygulamanızın kullanıcılara sağladığı rotayı planlamak isteyebilirsiniz. Routes API, Routes Preferred API veya Route Optimization API'den bir rota jetonu kullanmak, planladığınız rota için iki şeyi belirtmenize yardımcı olabilir:

  • Rota için çoklu çizgi

  • Rota hedefleriniz

Örneğin, kullanabileceğiniz yönlendirme hedeflerine dair bazı örnekler aşağıda verilmiştir:

  • Teslimat süresini en aza indirme: Yemek teslimatı yapan bir işletme, yemekleri teslim etmenin süresini en aza indirmek isteyebilir.

  • Seyahat süresini veya yakıt tüketimini en aza indirme: Bir lojistik işletmesi, sürücülerinin verimliliğini artırmak ve yakıt maliyetlerini azaltmak istiyor.

  • Hedefe ulaşma süresini en aza indirme: Bir hizmet dağıtım işlemi, operatörlerin iş isteğinde bulunması için gereken süreyi en aza indirmenize yardımcı olur.

  • Maliyetleri düşürün ve güvenliği artırın: Araç paylaşımı yapan bir işletme yolcular için daha düşük maliyetli ve belirli güvenlik alanlarından kaçınan bir rota bulmak neden.

ziyaret edin.

Rota jetonu kullanarak rota planlama hakkında daha fazla bilgi için Routes API'deki Rota jetonu isteme ve Route Optimization API'deki Geçiş poli çizgileri ve rota jetonları başlıklı makaleleri inceleyin.

Rota hedefleri için neden rota jetonu kullanmalısınız?

Routes API'den alınan rota jetonuyla Routes Preferred API veya Route Optimization API'si varsa sağlanan rota üzerinde daha fazla denetime sahip olmak:

  • Mümkün olduğunda Navigasyon SDK'sının kullanması için rotaları önceden planlayın.

  • Navigasyon SDK'sının kullanacağı en iyi rotayı seçin. Routes API'de rota oluştururken rota jetonları isterseniz oluşturulan her rota için bir rota jetonu alırsınız. Daha sonra belirtmek için kullanmak istediğiniz rotanın Gezinme SDK'sı.

  • Varış tahmini ve mesafe tahminleri dahil olmak üzere fiyatı önceden tahmin edin. Gerçek maliyet ve süre değişiklik gösterse de bu tahmin beklenen ve gerçekleşen rota maliyeti arasındaki boşluğu fark eder.

  • Eko rota oluşturma veya rota izleme gibi daha gelişmiş rota hedefleri belirtebilirsiniz en kısa rotadır.

ziyaret edin.

Rota jetonlarının işleyiş şekli

Routes API, Routes Preferred API veya Rota hedeflerini kullanarak rota planlamak için Optimization API'sini yönlendirin. Bu API'lerden herhangi birinden döndürülen bir rota jetonunu Navigasyon SDK'sına ileterek aracınızın rotasını belirlemesine yardımcı olabilirsiniz.

Rota jetonu isteğinde bulunduğunuzda ve bu jetonu kullandığınızda şunlar gerçekleşir:

  1. Routes API, Routes Preferred API veya Route Optimization API, aşağıdaki koşulları karşılayan şifrelenmiş rota jetonu döndürür: rota çoklu çizgisini ve rota hedeflerini içerir.

  2. Rota jetonunu Navigation SDK'ya iletirsiniz.

  3. Navigasyon SDK'sı rotayı alır veya değişen koşullar nedeniyle rota kullanılamıyorsa en iyi eşleşen rotayı alır.

  4. Rota üzerinde sürüş yaparken trafik veya diğer yol koşulları değişirse ya da bir araç planlanan rotadan saparsa değiştirilen rotalar, jetondaki rota hedeflerine göre en iyi rotayla eşleşmeye sürekli olarak çalışır.

Bu işlem, gerçek rotanın planladığınız rotaya ne kadar yakın olduğunu en üst düzeye çıkarır.

Planlanan rota neden tam olarak takip edilemeyebilir?

Planladığınız rotayı ve rota hedeflerini, uyulması gereken kurallar olarak düşünün: Bunlar zorunlu değildir. Planlanan rotanızı oluşturduğunuzdan bu yana yol koşullarındaki, başlangıç konumundaki veya diğer parametrelerdeki farklılıklar nedeniyle planlanan rotanız ile rehberli navigasyon tarafından sağlanan rota arasında fark görebilirsiniz. Bu fark, mesafe ve tahmini varış zamanı gibi önemli seyahat özellikleriyle ilgili planladığınız ve gerçek hedefleriniz arasında uyuşmazlığa neden olabilir.

Rota jetonu kullanarak rota planlama

Bir rota jetonu oluşturup bu jetonu Gezinme SDK'sı, aşağıdaki adımlarda açıklanmıştır:

1. adım: Routes API, Routes Preferred API veya Route Optimization API'sini kullanarak bir rota jetonu oluşturun

  1. Aşağıdaki yöntemlerden birini kullanarak rota jetonu isteyin:

    • Routes API: computeRoutes. Routes API'de rota jetonu isteme hakkında daha fazla bilgi için Rota hesaplama ve Rota jetonu isteme başlıklı makaleleri inceleyin.

    • Routes Preferred API: computeCustomRoutes. Routes Preferred API'de rota jetonu isteme hakkında daha fazla bilgi için Rota planlama başlıklı makaleyi inceleyin.

    • Rota Optimizasyonu API'si: optimizeTours veya batchOptimizeTours. Rota isteğinde bulunma hakkında daha fazla bilgi için jetonu hakkında daha fazla bilgi için Geçiş Çoklu Çizgileri ve Rota Jetonlar.

  2. Routes API veya Routes Preferred API'nizi ayarlayın isteyebilirsiniz.

    • travel_mode değerini DRIVING veya TWO_WHEELER olarak ayarlayın
    • routing_preference öğesini TRAFFIC_AWARE veya TRAFFIC_AWARE_OPTIMAL olarak ayarlayın
    • Via yol işaretlerini KULLANMAYIN

2. Adım: Rota jetonunu Navigasyon SDK'sına iletin

  1. Rota jetonunu depolama: Gezinme SDK'sında, rota jetonunu depolamak için bir dize oluşturun. Örneğin:

    String routeToken = "route token returned by Routes API";

    Döndürülen rota jetonu örneği:

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. Rota jetonunu Aynı hedefi belirten Navigator.setDestinations yöntemi rota jetonunu oluştururken kullandığınız ara noktalar:

    setDestinations(List destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions);

    Örneğin:

    CustomRoutesOptions customRoutesOptions =
          CustomRoutesOptions.builder()
          .setRouteToken(routeToken)
          .setTravelMode(TravelMode.DRIVING)
          .build();

Navigator.setDestinations yöntemi, isteğin durumunu döndürür. Eğer aracın konumundan belirtilen hedefe bir rota bulursa RouteStatus.OK sonucunu döndürür.

Bu yöntem hakkında daha fazla bilgi için Navigator.setDestinations sayfasına bakın.

Örnek

Aşağıdaki kod örneğinde, rota jetonu kullanılarak planlanmış bir rotanın nasıl belirtileceği gösterilmektedir.

    ArrayList <Waypoint> destinations = Lists.newArrayList();
    Waypoint waypoint1 =
       Waypoint.builder()
          .setLatLng(10, 20)
          .setTitle("title")
          .setVehicleStopover(true)
          .build();
    destinations.add(waypoint1);
    Waypoint waypoint2 =
       Waypoint.builder()
          .setPlaceId("ChIJYV-J-ziuEmsRIMyoFaMedU4")
          .setTitle("title")
          .setVehicleStopover(true)
           .build()
    destinations.add(waypoint2);

    String routeToken = "route token returned by Routes API";

    CustomRoutesOptions customRoutesOptions =
       CustomRoutesOptions.builder()
          .setRouteToken(routeToken)
          .setTravelMode(TravelMode.DRIVING)
          .build();

    // Existing flow to get a Navigator.
    NavigationApi.getNavigator(...);

    // Existing flow for requesting routes.
    ListenableResultFuture<RouteStatus> routeStatusFuture =
        navigator.setDestinations(destinations, customRoutesOptions);

    // Or with display options.
    DisplayOptions displayOptions = new DisplayOptions();

    ListenableResultFuture<RouteStatus> routeStatusFuture =
        navigator.setDestinations(destinations, customRoutesOptions, displayOptions);

Rota jetonları ile Navigation SDK'sı arasındaki etkileşim

Navigation SDK'sı tarafından oluşturulan rota ile rota jetonundaki planlanmış rotanın etkileşimi aşağıdaki gibidir:

  • Daha önce ayarlanmış tüm hedefleri geçersiz kılar.

  • Aracın başlangıç konumunu kullanır.

  • Yol ve trafik koşullarına göre ayarlanır. Görüntüleyin Planlanan bir rotanın tam olarak izlenmemesinin olası nedenleri

  • Aşağıdaki yönlendirmeyle ilgili seçenekler gereksiz olduğu için yoksayılır:

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • Takipler:

    • Yol kenarına tercihi gibi yol noktasıyla ilgili seçenekler.

    • Rota hedefleri. Navigasyon SDK'sının döndürülen rotayı ayarlaması gerekirse rota jetonunu isterken belirttiğiniz rota hedeflerini kullanır. Bu nedenle, Routes API'de belirttiğiniz yol noktasıyla ilgili seçenekleri kullanmanız gerekir.