Rota hesaplamaları (yeniden yönlendirme 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 rota anlamına gelir. 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 idealdir. Çünkü 5 km'lik bir mesafeyi kısaltmak için 30 dakika 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 rota stratejisini değiştirmek istiyorsanız hedefleri temizlemeniz ve yeni rota stratejisiyle tekrar ayarlamanız gerekir.
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ğeri | Açı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ısası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 ayarını false olarak belirleyerek bu yönlendirme tercihini, yolculuğu feribot segmentlerine 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. 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ı yaparak rota açıklama metni biçimini değiştirebilirsiniz. setRouteCalloutInfoFormat
aşağıdaki numaralandırma değerlerinden birini alır:
| Numaralandırma Değeri | Açı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);