1

我正在寻找一个委托方法,当有一个新的建议(比如“现在左转”)时会触发它,并以文本形式返回我的建议。我在但是当我测试它时找到了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 个条目)。

4

1 回答 1

0

演示应用程序中,有一个使用 navigationType 模拟导航路线的演示(请参阅路由和导航演示),您可以在其中查看导航期间调用的所有回调。

现在在回调中,您不会以文本形式获得当前/下一个建议,而只能以视觉形式(作为 openGL 生成的图片)和音频形式(作为音频建议)。在 SDK 的未来更新(可能是 6 月)中,还会有文本建议,例如:

void)routingService:(SKRoutingService *)routingService didChangeCurrentAdviceInstruction:(NSString *)currentAdviceInstruction nextAdviceInstruction:(NSString *)nextAdviceInstruction; 

对于当前版本,可以在计算路线后检索路线方向列表(例如http://developer.skobbler.com/getting-started/ios#sec15),您可以在其中看到“adviceInstructions”形式的细绳。

但是,在实际导航期间,将向用户呈现比仅在路由方向中找到的信息更多的信息。

于 2014-05-19T06:20:51.523 回答