为了离线使用 mapbox,我创建了一个 mymap.mbtiles 文件,我的应用程序将使用它来显示 map 。用户可以按下一个按钮,相应的 .mbtiles 文件将被下载并保存在文档目录中。
但是我的应用程序在这一行崩溃了:
RMMBTilesSource *offlineSource = [[RMMBTilesSource alloc] initWithTileSetResource:@"MYMAP" ofType:@"mbtiles"];
_mapView = [[RMMapView alloc] initWithFrame:self.view.bounds andTilesource:offlineSource];
错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
喜欢this问题。
这曾经工作正常,但在我更新到更新版本的 MapBox 期间的某个地方发生了这个错误。
该链接中问题的答案是您的 .mbtiles 文件需要成为项目目标的一部分并添加到包中。下载文件并保存到文档目录还不够吗?如果不是,我该如何修复它,以便可以下载 .mbtiles 文件,而不是由开发人员预先导入。
最佳答案
不要使用用于捆绑资源的 -initWithTileSetResource:ofType:
,而是尝试使用 -initWithTileSetURL:
并指向文档目录中的文件。
关于ios - 尝试导入 MBTiles 时 MapBox 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22642318/