Yönlendirme tercihlerini ayarlama

Rota hesaplamaları (yeniden rota çizme dahil), gezinmek için en az zamanı alan rotayı varsayılan en iyi rota olarak döndürür. Ancak, yönlendirme stratejisini, rota alternatiflerinden daha kısa olanı döndürecek şekilde değiştirebilirsiniz.

Daha kısa terimi, varsayılan maliyet modelimize göre en uygun rotalar arasındaki en kısa rotayı ifade eder. Daha kısa rota, kötü bir alternatif olabileceğinden kesinlikle en kısa rota olmayabilir. Örneğin, en kısa rota 10 km ve 50 dakika sürüyorsa, 15 km'lik başka bir rota ise yalnızca 20 dakika sürüyorsa ikinci seçenek en uygun olanıdır. Çünkü 5 km daha az yol gitmek için 30 dakika daha fazla zaman harcamak iyi bir tercih değildir.

Bir gezi için yönlendirme stratejisini ayarladığınızda, gezi tamamlanana kadar bu strateji değişmez. Mevcut bir gezi için yönlendirme stratejisini değiştirmek istiyorsanız hedefleri temizlemeniz ve yeni yönlendirme stratejisiyle tekrar ayarlamanız gerekir.

Rota ayrıntılarını alma

Belirli bir ara nokta için hangi rota stratejisinin en uygun seçim olduğunu belirlemek üzere getRouteInfo() numaralı telefonu arayarak hem varsayılan en iyi rota hem de mutlak olarak daha kısa rota için rota ayrıntılarını edinin. Ayrıntılar arasında süre ve hedef ara noktasına olan mesafe yer alır.

Bu ayrıntılar RouteInfo kaynağından alınır ve ListenableResultFuture içinde döndürülür.

Örnek

Aşağıdaki kod örneğinde, iki yönlendirme stratejisinin her biri için rota ayrıntılarının nasıl alınacağı gösterilmektedir.

ListenableResultFuture<RouteInfo> routeInfoFuture =
        navigator.getRouteInfo(waypoint, routingOptions);

Yönlendirme stratejisini ayarlama

setDestinations() işlevini çağırdığınızda RoutingOptions.routingStrategy değerini ayarlayarak yönlendirme stratejisini yapılandırabilirsiniz.

RoutingOptions.routingStrategy aşağıdaki numaralandırma değerlerinden birini alır:

Numaralandırma DeğeriAçıklama
RoutingStrategy.DEFAULT_BEST Rotaları, Navigation SDK'nın varsayılan maliyet modeline göre sıralar. Bu, varsayılan yönlendirme stratejisidir.
RoutingStrategy.SHORTER Rotaları mesafeye göre sıralar. En yüksek sıralamaya sahip rota, döndürülen rotalar arasında en kısa olanıdır.

Örnek

Aşağıdaki kod örneğinde, daha kısa rota tercihinin nasıl ayarlanacağı gösterilmektedir.

RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);

Feribot içeren rotalar

NavSDK, varsayılan olarak feribot içeren rotaları hariç tutar. Rotalarınıza feribot seçeneklerini dahil etmeyi tercih ediyorsanız avoidFerries değerini false olarak ayarlayarak bu yönlendirme tercihini, yolculuğu feribot segmentlerine gösterecek şekilde düzenleyebilirsiniz.

Örnek

RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);

Rota açıklama metni biçimi

Daha kısa rota tercihinde, rota üzerindeki açıklama metinlerinde mesafe ayrıntıları gösterilir. Ancak bunun yerine tahmini varış zamanı açıklama metinlerini kullanabilirsiniz.

Rota açıklama metni biçimini yapılandırma

setRouteCalloutInfoFormat in NavigationView (veya NavigationFragment) çağrısını yaparak rota açıklama metni biçimini değiştirebilirsiniz. setRouteCalloutInfoFormat aşağıdaki numaralandırma değerlerinden birini alır:

Numaralandırma DeğeriAçıklama
RouteCalloutInfoFormat.DEFAULT Varsayılan en iyi rota yönlendirme stratejisi kullanılırken kalan süreyi gösterir. Daha kısa rota yönlendirme stratejisi kullanılırken kalan mesafeyi gösterir.
RouteCalloutInfoFormat.TIME Kalan süreyi gösterir.
RouteCalloutInfoFormat.DISTANCE Kalan mesafeyi gösterir.

Örnek

Aşağıdaki kod örneğinde, rota açıklama metni biçiminin nasıl yapılandırılacağı gösterilmektedir.

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);