Yönlendirme tercihlerini ayarlama

Rota hesaplamaları (yeniden rota oluşturma dahil), varsayılan en iyi rota olarak gezinmesi en az zaman alan rotayı 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 optimum rotalar arasında en kısa olan rotayı ifade eder. Daha kısa rota, kötü bir alternatif olabileceği için mutlak en kısa rota olmayabilir. Örneğin, mutlak en kısa rota 10 km, navigasyonu 50 dakika sürüyorsa ve başka bir rota 15 km sürüyorsa yalnızca 20 dakika sürüyorsa ikinci seçenek en iyisidir çünkü beş kilometreyi azaltmak için 30 dakika harcamak iyi bir denge değildir.

Bir gezi için rota stratejisi belirlendikten sonra, gezi tamamlanana kadar stratejide değişiklik yapılmaz. 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ı alınıyor

Belirli bir ara nokta için hangi rota stratejisinin en uygun seçenek olduğunu belirlemek amacıyla, hem varsayılan en iyi rota hem de mutlak daha kısa rotayla ilgili rota ayrıntılarını almak için getRouteInfo() yöntemini çağırın. Ayrıntılar arasında süre ve bir hedef ara noktaya olan 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ği, iki rota stratejisi için rota ayrıntılarının nasıl alınacağını gösterir.

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

Yönlendirme stratejisini ayarlama

setDestinations() çağırırken RoutingOptions.routingStrategy 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ı, 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 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 eklemeyi tercih ederseniz avoidFerries öğesini false olarak ayarlayarak bu rota tercihini düzenleyerek gezinin feribot segmentlerine gösterilmesini sağlayabilirsiniz.

Ö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 üzerindeki açıklama metinleri mesafe ayrıntılarını gösterir. Ancak bunun yerine TVS açıklama metinlerini kullanabilirsiniz.

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

NavigationView içinde (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ğ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);