У меня есть вопросы относительно функциональности skmap sdk.SKMaps и ViaPoints/WayPoints
После создания маршрута и начала процесса навигации есть ли в любом случае захват /viapoint
, к которому вы в данный момент находитесь? После расчета маршрута кажется routeInformation.viaPointsOnRoute
пуст. calculateRoute(route)
автоматически генерирует список viaPoints
? В Справочнике по протоколу SKNavigationDelegate
Я вижу следующие функции событий:
– routingService:didEnterViaPointArea:
– routingService:didReachViaPointWithIndex:
– routingService:didExitViaPointArea:
Однако эти методы никогда, кажется, называется. Не уверены, вызваны ли они только если ViaPoints
программно добавлены.
Также, когда routeService запускает методы currentAdvice и nextAdvice, местоположение SKRouteAvice также является пустым.
Есть ли кто-нибудь, кто-нибудь может предоставить мне простой пример того, как создавать и фиксировать текущую позицию waypoint
и следующую позицию waypoint
во время навигации? По сути, я пытаюсь вычислить направление от текущего местоположения до следующего waypoint
.
Ниже грубый пример моего маршрута и навигации код инициации:
//Created Route
let route: SKRouteSettings = SKRouteSettings()
route.routeMode = SKRouteMode.Pedestrian
route.startCoordinate = coordinateCurrent!
route.destinationCoordinate = coordinateDestination!
route.shouldBeRendered = true
SKRoutingService.sharedInstance().calculateRoute(r oute)
//Start Navigation
let navSettings: SKNavigationSettings = SKNavigationSettings()
navSettings.navigationType = SKNavigationType.Simulation
navSettings.distanceFormat = SKDistanceFormat.MilesFeet
navSettings.viaPointNotificationDistance=1
self.mapView!.settings.displayMode = SKMapDisplayMode.Mode3D
navSettings.transportMode = SKTransportMode.Pedestrian
SKRoutingService.sharedInstance().startNavigationW ithSettings(navSettings)
//Start Postioner Service
SKPositionerService.sharedInstance().delegate = self
SKPositionerService.sharedInstance().startLocation Update()
routeInfo.viaPointsOnRoute
func routingService(routingService: SKRoutingService!, didChangeNextAdvice nextAdvice: SKRouteAdvice, isLastAdvice:Bool)
{
log(String(nextAdvice.location))
}
func routingService(routingService: SKRoutingService!, didChangeCurrentAdvice currentAdvice: SKRouteAdvice, isLastAdvice:Bool)
{
log(String(currentAdvice.location))
}
func routingService(routingService: SKRoutingService!,
didUpdateViaPointsInformation viaPoints: [AnyObject]!)
{
log("VIA INFO: " + String(viaPoints))
}
func routingService(routingService: SKRoutingService!,
didEnterViaPointArea index: Int32)
{
log("ENTER VIA: " + String(index))
}
func routingService(routingService: SKRoutingService!,
didExitViaPointArea index: Int32)
{
log("EXIT VIA: " + String(index))
}
Спасибо за ваше время!