Rota hesaplamaları (yeni rota çizme dahil), en kısa sürede gidilebilecek rotayı varsayılan en iyi rota olarak döndürür. Ancak rota stratejisini, rota alternatiflerinden daha kısa olanı döndürülecek şekilde değiştirebilirsiniz.
Daha kısa terimi, varsayılan maliyet modelimize göre en uygun rotalar arasında en kısa olan rotayı ifade eder. Daha kısa rota, mutlak en kısa rota olmayabilir. Çünkü bu seçenek kötü bir alternatif olabilir. Örneğin, mutlak en kısa rota 10 km ise ve bu rotada gezinmek 50 dakika sürüyorsa ve başka bir rota 15 km ise ancak bu rotada gezinmek yalnızca 20 dakika sürüyorsa ikinci seçenek idealdir. Çünkü beş km azaltmak için 30 dakika harcamak iyi bir denge değildir.
Bir gezi için rota stratejisini belirledikten sonra, gezi tamamlanana kadar bu strateji değişmez. Mevcut bir gezinin rota stratejisini değiştirmek için varış noktalarını temizlemeniz ve yeni rota stratejisiyle tekrar sıfırlamanız gerekir.
Yönlendirme stratejisini belirleme
setDestinations() yöntemini çağırırken RoutingOptions.routingStrategy parametresini 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ı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, geziyi 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 tercihi altında, rota boyunca gösterilen açıklama metinlerinde mesafe ayrıntıları gösterilir. Ancak bunun yerine TVS açıklama metinlerini kullanabilirsiniz.
Rota açıklama metni biçimini yapılandırma
NavigationView (veya NavigationFragment) içinde setRouteCalloutInfoFormat yöntemini çağırarak 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 stratejisi kullanılırken kalan süreyi gösterir. Daha kısa rota 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);