如何使用Mabox和Swift检索已下载的离线地图包的列表?

时间:2019-05-19 01:22:38

标签: swift mapbox mapbox-gl

我想使用Swift和Mapbox将离线地图功能添加到iOS应用程序构建中。 documentation and examples很不错,可以下载地图区域包,但是很难弄清楚如何检索脱机包列表。他们的文档here提供了有关如何接收的以下说明:

“要检测共享的脱机存储对象何时完成其packs属性的加载,请在packs密钥路径上观察KVO更改通知。初始加载会导致NSKeyValueChangeSetting更改。”

但是我很难找到关于这意味着什么的任何例子或解释。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

可以使用MGLOfflineStorage类的.packs属性来检索所有已知脱机包的数组。像这样:

MGLOfflineStorage.shared.packs

要访问这些包,您只需要遍历数组或传递特定的索引并从包中检索您感兴趣的任何信息。

有一个很好的示例,使用此数组在SDK的open source test app中的设备上创建完整的脱机包的表格视图(注意:此示例用Obj-C编写)。


⚠️免责声明:我目前在Mabpox⚠️

工作

答案 1 :(得分:0)

我终于能够解决。要观察使用Swift进行的包检索,可以使用以下代码:

MGLOfflineStorage.shared.observe(\.packs, options: [.new, .old]){ object, change in
    var offlinePacksArr : [MGLOfflinePack] = object.packs // Access to packs array here
}