我尝试使用带有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
我希望你能帮助我:)!
答案 0 :(得分:0)
在我得到更好的答案之前,我找到了一个可以帮助某人的解决方法。所以这就是:
将包含最新版本的地图预先捆绑到您的应用中。这将导致SKMapVersioningManager将其currentMapVersion更改为预先绑定的地图版本1。然后使用最新版本下载所有新地图。