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 yönlendirme stratejisini, rota alternatifleri arasından en kısa olanın döndürülmesini sağlayacak şekilde değiştirebilirsiniz.
Daha kısa terimi, varsayılan maliyet modelimize göre en uygun rotalar arasında en kısa olan rota anlamına gelir. Daha kısa rota, iyi bir alternatif olmayabileceği için mutlak en kısa rota olmayabilir. Örneğin, en kısa rota 10 km uzunluğundaysa ve bu rotanın 50 dakika sürdüğünü varsayalım. Bir diğer rota ise 15 km uzunluğundaysa ancak 20 dakika sürmektedir. Bu durumda, 5 km kısaltmak için 30 dakika harcamak iyi bir takas olmadığından ikinci rota en uygun seçenektir.
Bir seyahat için rota stratejisini belirledikten sonra, seyahat tamamlanana kadar bu strateji değişmez. Mevcut bir seyahatin yönlendirme stratejisini değiştirmek için hedefleri temizlemeniz ve yeni yönlendirme 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
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 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ğeri | Açı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çenekleri eklemeyi tercih ediyorsanız avoidFerries
değerini false
olarak ayarlayarak bu yönlendirme tercihini, yolculuğun feribot segmentlerini içerecek ş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 listelenen değerlerden birini alır:
Numaralandırma Değeri | Açı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);