Yönlendirme tercihlerini ayarlama

Rota hesaplamaları (yeni rota çizme dahil), navigasyon için en kısa süreyi alan rotayı varsayılan en iyi rota olarak döndürür. Ancak rota alternatiflerinden daha kısa olanın döndürülmesi için rota stratejisini değiştirebilirsiniz.

Daha kısa terimi, varsayılan maliyet modelimize göre en uygun rota 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 tercih değildir.

Bir gezi için rota stratejisini ayarladıktan sonra, gezi 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 üzere getRouteInfoForDestination() yöntemini çağırarak hem varsayılan en iyi rota hem de mutlak daha kısa rota için rota ayrıntılarını alın. Ayrıntılar arasında süre ve hedef ara noktaya olan mesafe yer alır.

Bu ayrıntılar, geri çağırmadaki GMSNavigationRouteInfo öğesinden alınır.

Örnek

Aşağıdaki kod örneğinde, iki rota 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 belirleme

setDestinations() yöntemini çağırırken GMSNavigationRoutingOptions kullanarak ve routingStrategy değerini ayarlayarak yönlendirme stratejisini yapılandırabilirsiniz.

routingStrategy, aşağıdaki numaralandırma 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 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 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 etmek isterseniz avoidsFerries değerini false olarak ayarlayarak bu rota tercihini, geziyi feribot segmentlerine gösterecek ş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 stratejisinde, rota boyunca gösterilen açıklama metinlerinde mesafe bilgileri yer alır. Ancak bunun yerine TVS açıklama metinlerini kullanabilirsiniz.

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

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

Numaralandırma DeğeriAçıklama
GMSNavigationRouteCalloutFormatDefault 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.
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;