更新地图skobbler进程

时间:2017-01-16 10:49:20

标签: ios swift skmaps

我尝试使用带有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.但是没有检测到,并且没有触发协议检测到NewAvailableMapVersion。

我还尝试在设置mapsVersioningManager委托后立即放置此行:

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

但是地图版仍然是20150413。

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

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

仍然没有。

以绝望的方式,我还尝试在SKMaps.bundle中添加一个新行,在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/

我希望你能帮助我:)!

1 个答案:

答案 0 :(得分:0)

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

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