【问题标题】:ios sdk maneuver instructionsForLanguage:language unitSystem array emptyios sdk 操作指令ForLanguage:language unitSystem array empty
【发布时间】:2021-10-05 18:38:02
【问题描述】:

我正在开发 Cordova HERE 地图插件以在应用程序中获取路线计算数据。我正在为 ios 添加功能。 我想获取路线的机动指令,以下是我的代码,用于获取计算路线的机动指令。


NSString * language = [[NSLocale preferredLanguages] firstObject]; // getting lang code en

 NSArray* inst= [route instructionsForLanguage:language unitSystem:NMARouteInstructionsUnitSystemMetric];

但我不知道它为什么返回空数组。请任何知道如何获得机动指令的人帮助它。

【问题讨论】:

    标签: ios cordova plugins navigation turn-by-turn


    【解决方案1】:

    发生这种情况是因为 NSLocale preferredLanguages 可以为您提供语言代码而不是语言和国家/地区代码,例如

    [NSLocale preferredLanguages] // -> tr
    

    根据HERE maps documentation函数期望语言代码,如en-US

    语言应该是符合 IETF BCP-47 标准的有效代码(参见 http://tools.ietf.org/html/bcp47)。

    所以为了让你更容易,需要获取语言代码。

    NSLocale *locale = [NSLocale currentLocale];
    NSString *language = [NSString stringWithFormat: "%@-%@", [locale languageCode], [locale countryCode]]; // -> tr-TR
    

    【讨论】:

    • 感谢@Oleg 的帮助。但这并不能解决我的问题。我已经从相关添加的代码中获取语言代码为“en”,还尝试了您的代码为我获取相同的语言代码“en”,它返回空数组。所以我做了一件事,我将语言代码的值硬编码为“en-US”,它对我有用。再次感谢您的帮助。
    • 那么让我更新我的答案,因为这里的地图似乎需要同时具有代码和国家代码。
    • 嗨@oleg。你知道如何在 ios sdk 中实现 NMAMapDataPrefetcherListener。我创建了单独的问题 stackoverflow.com/questions/68621844/… 。如果你知道什么,请帮助我。
    猜你喜欢
    • 1970-01-01
    • 2014-09-11
    • 2012-01-01
    • 1970-01-01
    • 2011-03-16
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多