【问题标题】:Skobbler current street name,currentAdviceInstruction and audio advices not workingSkobbler 当前街道名称、currentAdviceInstruction 和音频建议不起作用
【发布时间】:2015-03-04 09:31:09
【问题描述】:

我目前正在开发转弯导航应用程序并使用 API Skobbler,我设法进行了集成,但是当我进行实时测试时,我注意到我没有从回调中获取信息,例如:

-(void)routingService:(SKRoutingService *)routingService didUpdateFilteredAudioAdvices:(NSArray *)audioAdvices{

 NSLog(@"audio advices: %@",audioAdvices);

} -(void)routingService:(SKRoutingService *)routingService didChangeCurrentStreetName:(NSString *)currentStreetName streetType:(SKStreetType)streetType countryCode:(NSString *)countryCode{

NSLog(@"street name: %@,%d,%@",currentStreetName,streetType,countryCode );
// NSLog(@"routing service array: %@",routingService.visualAdviceConfigurations);

} -(void)routingService:(SKRoutingService *)routingService didChangeCurrentAdviceImage:(UIImage *)adviceImage withLastAdvice:(BOOL)isLastAdvice{

NSLog(@"image changed");
}
- (void)routingService:(SKRoutingService *)routingService didChangeCurrentAdviceInstruction:(NSString *)currentAdviceInstruction nextAdviceInstruction:(NSString *)nextAdviceInstruction{

NSLog(@"current instruction: %@",currentAdviceInstruction);

}

我得到的唯一回调是:

  • (void)routingService:(SKRoutingService *)routingService didChangeCurrentSpeed:(double)speed{

    NSLog(@"speed: %f",speed);

} - (void)routingService:(SKRoutingService *)routingService didChangeDistanceToDestination:(int)distance withFormattedDistance:(NSString *)formattedDistance{

NSLog(@"distance: %@",formattedDistance);

}

感谢您的帮助。

【问题讨论】:

  • 请提供您用于启动导航服务的代码(您是在路线上导航还是只是免费驾驶?)
  • 我在一条路线上导航,我就是这样做的:SKRouteSettings* route = [[SKRouteSettings alloc]init]; route.startCoordinate=CLLocationCoordinate2DMake(userLocation.coordinate.latitude,userLocation.coordinate.longitude); route.destinationCoordinate=CLLocationCoordinate2DMake(48.8215965,2.3715504); [[SKRoutingService sharedInstance] calculateRoute:route];
  • 你能在演示项目中重现这种行为吗?例如,我正在查看 RoutingViewController 并在导航期间获得所有正确的回调。

标签: ios skmaps


【解决方案1】:

- (void)routingService:(SKRoutingService *)routingService didFinishRouteCalculationWithInfo:(SKRouteInformation*)routeInformation{ NSLog(@"Route is calculated."); [routingService zoomToRouteWithInsets:UIEdgeInsetsZero]; // zooming to currrent route //NSArray *adviceList = [routingService routeAdviceListWithDistanceFormat:SKDistanceFormatMetric]; // array of SKRouteAdvice NSLog(@"routing distance : %d",routeInformation.distance); NSLog(@"routing time : %d",routeInformation.estimatedTime); SKNavigationSettings* navSettings = [SKNavigationSettings navigationSettings]; navSettings.navigationType=SKNavigationTypeReal; navSettings.distanceFormat=SKDistanceFormatMetric; [SKRoutingService sharedInstance].mapView.settings.displayMode = SKMapDisplayMode3D; [[SKRoutingService sharedInstance]startNavigationWithSettings:navSettings]; }这就是我开始导航的方式:

【讨论】:

  • 备注 - 导航类型设置为真实 - 这意味着您实际上需要开始在路线上移动才能触发回调 - 如果您想运行模拟,请使用 navSettings。 navigationType=SKNavigationTypeSimulation;
  • 在我们的演示应用程序中使用提供的代码 sn-p 可以工作。请查看dropbox.com/s/cgfannynp7bhbid/RoutingViewController.m?dl=0 的课程并在演示应用程序中替换它。回调也出现在模拟和真实驾驶情况下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多