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 rota arasında en kısa olan rota anlamına gelir. 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 en iyi rota stratejisinin hangisi 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 getRouteInfoForDestination()
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, geri aramada GMSNavigationRouteInfo
tarafından sağlanı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.
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 ve setDestinations()
öğesini çağırırken routingStrategy
ayarlayarak yapılandırabilirsiniz.
routingStrategy
, şu numaralandırma değerlerinden birini alır:
Numaralandırma Değeri | Açıklama |
---|---|
GMSNavigationRoutingStrategyDefaultBest | Rotaları, Gezinme SDK'sı 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ği, daha kısa rota yönlendirme stratejisinin nasıl ayarlanacağını gösterir.
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 ederseniz avoidsFerries
öğesini false
olarak ayarlayarak bu rota tercihini düzenleyerek gezinin feribot segmentlerine gösterilmesini sağlayabilirsiniz.
Örnek
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
Rota açıklama metni biçimi
Daha kısa olan rota yönlendirme stratejisi altında, rota boyunca yer alan 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
Rota açıklama metni biçimini GMSMapView
içinde routeCalloutFormat
ayarlayarak değiştirebilirsiniz. routeCalloutFormat
, aşağıdaki numaralandırma değerlerinden birini alır:
Numaralandırma Değeri | Açıklama |
---|---|
GMSNavigationRouteCalloutFormatDefault | 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 |
GMSNavigationRouteCalloutFormatTime | Kalan süreyi gösterir. |
GMSNavigationRouteCalloutFormatDistance | DKalan 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;