Yönlendirme tercihlerini ayarlama

Rota hesaplamaları (yeniden rota belirleme dahil), varsayılan en iyi rota olarak gezinmek için en az zamanı alan rotayı döndürür. Ancak, yönlendirme 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ındaki en kısa rota anlamına gelir. mutlak en kısa rota, kısa rota olmayabilir çünkü bu seçenek zayıf bir alternatif olabilir. Örneğin, en kısa rota 10 km ve gitmek 50 dakika sürerken başka bir rota 15 km sürüyorsa ama rotayı izlemek sadece 20 dakika sürüyorsa beş kilometreyi azaltmak için 30 dakika harcamak iyi bir denge olmadığı için ikinci tercih tercih edilir.

Bir gezi için rota stratejisi belirledikten sonra, yolculuk tamamlanana kadar bu strateji değişmez. Mevcut bir seyahatin rota stratejisini değiştirmek için varış noktalarını temizlemeniz ve yeni rota stratejisiyle tekrar sıfırlamanız gerekir.

Rota ayrıntıları alınıyor

Belirli bir ara nokta için en uygun rota stratejisinin hangisi olduğunu belirlemek amacıyla, hem varsayılan en iyi rota hem de daha kısa rota için rota ayrıntılarını almak amacıyla getRouteInfo() yöntemini çağırın. Ayrıntılar arasında süre ve hedef ara noktaya olan mesafe yer alır.

Bu ayrıntılar RouteInfo kaynağından alınır ve bir 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() numaralı telefonu aradığınızda RoutingOptions.routingStrategy ayarını yaparak yönlendirme stratejisini yapılandırabilirsiniz.

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

Sıralama 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ıralamalı rota, döndürülen rotalar arasında en kısa olandı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ızın bir parçası olarak feribot seçeneklerini dahil etmeyi tercih ederseniz avoidFerries ayarını 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 tercihinin altında, rota boyunca yer alan açıklama metinleri mesafe ayrıntılarını gösterir. Bunun yerine GMR açıklama metinlerini kullanabilirsiniz.

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

Rota açıklama metni biçimini NavigationView içinde (veya NavigationFragment içinde) setRouteCalloutInfoFormat yöntemini çağırarak değiştirebilirsiniz. setRouteCalloutInfoFormat, aşağıdaki numaralandırma değerlerinden birini alır:

Sıralama 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örüntüler.
RouteCalloutInfoFormat.TIME Kalan süreyi gösterir.
RouteCalloutInfoFormat.DISTANCE Kalan mesafeyi gösterir.

Örnek

Aşağıdaki kod örneğinde, rota çağrısı biçiminin nasıl yapılandırılacağı gösterilmektedir.

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);