我正在寻找一个委托方法,当有新建议时(例如“现在左转”)会触发该委托方法,并以文本形式返回该建议。我在didChangeAdviceID
中找到SKNavigationDelegate
委托方法,但是当我用它测试时,
navSettings.navigationType = SKNavigationTypeSimulation;
它会被advice changed: -1
触发一次,就是这样。
此外,当我尝试使用以下内容获取所有计算建议的集合时:
NSArray *adviceList = [[SKRoutingService sharedInstance] routeAdviceListWithDistanceFormat:SKDistanceFormatMetric];
for (SKRouteAdvice *advice in adviceList) {
NSLog(@"%d: %@", [advice adviceID], [advice adviceInstruction]);
}
这样我就可以通过调用索引得到当前的建议我在adviceInstruction
属性中没有得到任何东西。它只是空的。然而,id正确显示(我的测试路线有20个条目)。
答案 0 :(得分:0)
在demo app中有一个使用navigationType模拟导航路线的演示(请参阅路由和导航演示),您可以在那里查看导航期间调用的所有回调。
目前在回调中你不会以文本形式获得当前/下一个建议,但只能以视觉形式(作为openGL生成的图片)和音频形式(作为音频建议)获得。 在SDK的未来更新(可能是6月)中,还会有文本建议,例如:
void)routingService:(SKRoutingService *)routingService didChangeCurrentAdviceInstruction:(NSString *)currentAdviceInstruction nextAdviceInstruction:(NSString *)nextAdviceInstruction;
对于当前版本,一旦计算了路线(例如http://developer.skobbler.com/getting-started/ios#sec15),就可以检索路线方向列表,并且您可以以字符串的形式看到“adviceInstructions”。
但是,在实际导航过程中,会向用户显示的信息不仅仅是路线指示中的信息。