我尝试找出如何使用带有iOS swift的v2.5.1使用Skobbler SKMaps框架更新地图。

如此处建议的那样:http://developer.skobbler.com/getting-started/ios#sec33,我在AppDelegate中正确配置了mapsVersioningManager委托。

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    let initSettings: SKMapsInitSettings = SKMapsInitSettings()

    SKMapsService.sharedInstance().initializeSKMaps(withAPIKey: API_KEY, settings: initSettings)
    SKMapsService.sharedInstance().mapsVersioningManager.delegate = self
    return true
}


所以在我的日志中,我有以下几行:

"Map version file download finished."
"current map version : 20150413"


我知道有一个新的地图版本文件可用,该文件是20160426。但未检测到该文件,并且未触发协议detectedNewAvailableMapVersion。

在设置mapsVersioningManager委托之后,我还尝试将这一行放在右边:

SKMapsService.sharedInstance().mapsVersioningManager.update(toVersion: "20160426")


但是地图版本仍然是20150413。

然后在MAPJSONParser Model类中,我修改了这样的代码

SKMapsService.sharedInstance().packagesManager.mapsJSONURL(forVersion: "20160426")


依然没有。

我还以一种绝望的方式尝试在SKMaps.b中添加新行,将PreInstalledMaps“ version3_public_sdk_iOS_2_5_1.txt”中的文件打包


  20160426 9874 http://tor.skobbler.net RSngx 20_5 NBngx 20_5
  
  http://traffic.skobbler.net/Traffic/2.0/NgTraffic/
  
  http://traffic.skobbler.net/Traffic/2.0/NgIncidents/


我希望你能帮助我:)!

最佳答案

在找到更好的答案之前,我找到了可以帮助某人的解决方法。所以这里是:

将最新版本的地图预先捆绑到您的应用中。这将导致SKMapVersioningManager将其currentMapVersion更改为预先捆绑的地图版本一。然后,将使用最新版本下载所有新地图。

关于ios - 更新 map Skobbler流程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41674625/

10-10 09:57