Yönlendirme tercihlerini ayarlama

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 optimum 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 50 dakika sürüyorsa, 15 km uzunluğunda olan ve 20 dakika süren rota daha iyi bir seçenektir. Çünkü 5 km kısaltmak için 30 dakika harcamak iyi bir takas değildir.

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 getRouteInfoForDestination() 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, geri çağırma işlevindeki GMSNavigationRouteInfo parametresinden gelir.

Ö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.

Swift

let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
                                      routingOptions: routingOptions) { routeInfo in
  ...
}

Objective-C

GMSNavigationRoutingOptions *routingOptions =
    [[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
                   withRoutingOptions:routingOptions
                             callback:^(GMSNavigationRouteInfo *routeInfo){...}];

Yönlendirme stratejisini ayarlama

Yönlendirme stratejisini GMSNavigationRoutingOptions kullanarak yapılandırabilir ve setDestinations()'yi çağırırken routingStrategy değerini ayarlayabilirsiniz.

routingStrategy aşağıdaki listeleme değerlerinden birini alır:

Numaralandırma değeriAçıklama
GMSNavigationRoutingStrategyDefaultBest Rotaları Navigasyon SDK'sının varsayılan maliyet modeline göre sıralar. Bu, varsayılan yönlendirme stratejisidir.
GMSNavigationRoutingStrategyShorter 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 yönlendirme stratejisinin nasıl ayarlanacağı gösterilmektedir.

Swift

let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
                           routingOptions: routingOptions) { routeStatus in
  ...
}

Objective-C

GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
            routingOptions:routingOptions
                  callback:^(GMSRouteStatus routeStatus){...}];

Feribot içeren rotalar

iOS için Navigasyon SDK'sı varsayılan olarak feribot içeren rotaları hariç tutar. Rotalarınıza feribot seçeneklerini dahil etmeyi tercih ediyorsanız avoidsFerries değerini false olarak ayarlayarak bu rota tercihini, yolculuğun feribot segmentlerini içerecek şekilde ayarlayabilirsiniz.

Örnek

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

Rota açıklama metni biçimi

Daha kısa rota yönlendirme stratejisinde, rotadaki 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

routeCalloutFormat değerini GMSMapView olarak ayarlayarak rota açıklama metni biçimini değiştirebilirsiniz. routeCalloutFormat, aşağıdaki listeleme değerlerinden birini alır:

Numaralandırma değeriAçıklama
GMSNavigationRouteCalloutFormatDefault 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
GMSNavigationRouteCalloutFormatTime Kalan süreyi gösterir.
GMSNavigationRouteCalloutFormatDistance 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.

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;