Yönlendirme tercihlerini ayarlama

Rota hesaplamaları (yeniden rota oluşturma dahil), varsayılan en iyi rota olarak gitmenin en az süre aldığı rotayı döndürür. Ancak, rota alternatifleri arasından en kısa olanın döndürülmesi için yönlendirme stratejisini değiştirebilirsiniz.

Daha kısa terimi, varsayılan maliyet modelimize göre optimum rotalar arasında en kısa olan rota anlamına gelir. Daha kısa rota, kötü bir alternatif olabileceğinden mutlak en kısa rota olmayabilir. Örneğin, en kısa rota 10 km uzunluğundaysa ve 50 dakika sürüyorsa, 15 km uzunluğunda olan ve 20 dakika süren rota daha iyi bir seçenektir. Çünkü 5 km kısaltmak için 30 dakika harcamak iyi bir takas değildir.

Bir gezi için rota stratejisini ayarladıktan sonra, gezi tamamlanana kadar bu strateji değişmez. Mevcut bir seyahatin rota stratejisini değiştirmek için hedefleri temizlemeniz ve yeni rota stratejisiyle tekrar sıfırlamanız gerekir.

Rota ayrıntılarını alma

Belirli bir yol noktası için en uygun rota stratejisinin hangisi olduğunu belirlemek üzere getRouteInfo() işlevini çağırarak hem varsayılan en iyi rotanın hem de mutlak olarak en kısa rotanın rota ayrıntılarını alın. Ayrıntılar arasında süre ve hedef yol noktası arasındaki mesafe yer alır.

Bu ayrıntılar RouteInfo kaynağından gelir ve ListenableResultFuture olarak 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()'u aradığınızda RoutingOptions.routingStrategy ayarlayarak yönlendirme stratejisini yapılandırabilirsiniz.

RoutingOptions.routingStrategy, aşağıdaki listeleme değerlerinden birini alır:

Numaralandırma değeriAçıklama
RoutingStrategy.DEFAULT_BEST Rotaları Navigasyon SDK'sı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 puana sahip rota, döndürülenler 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 rota tercihini, seyahat için feribot segmentlerini gösterecek şekilde ayarlayabilirsiniz.

Ö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. Bunun yerine ETA açıklama metinlerini kullanabilirsiniz.

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

NavigationView içinde (veya NavigationFragment içinde) setRouteCalloutInfoFormat işlevini çağırarak rota açıklama metni biçimini değiştirebilirsiniz. setRouteCalloutInfoFormat, aşağıdaki listeleme değerlerinden birini alır:

Numaralandırma değeriAçıklama
RouteCalloutInfoFormat.DEFAULT Varsayılan en iyi rota yönlendirme stratejisi kullanıldığında kalan süreyi gösterir. Daha kısa rota yönlendirme stratejisi kullanıldığında 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);