2

有没有一种方法可以直接将 mbtiles 数据库与 MKTileOverlay 一起使用,而无需使用 MapBox 或其他任何第三方框架?

现在,我将图块存储在文件夹结构中,我使用的代码如下:

NSString *tileDirectory = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Tiles"];
NSString *tileDirectoryURL = [NSURL fileURLWithPath:tileDirectory isDirectory:YES];
NSString *tileURL = [NSString stringWithFormat:@"%@Z{z}/{y}_{x}.png", tileDirectoryURL];
tileOverlay = [[MKTileOverlay alloc] initWithURLTemplate:tileURL];
[tileOverlay setGeometryFlipped:YES];
[mainMapView addOverlay:tileOverlay];

但现在我想要一个tiles.mbtiles sqlite 数据库而不是文件夹中的文件。

请建议我该怎么做。如果我选择使用 sqlite 数据库,如何初始化 MKTileOverlay 对象。我将如何放置 {x},{y},{z}。

我浏览了 MKTileOverlay 的文档,发现:

- (void)loadTileAtPath:(MKTileOverlayPath)path result:(void (^)(NSData *tileData, NSError *error))result

可以使用,但我无法理解如何使用它?如果有人可以请给ma一个简短的例子,那将非常有帮助。

4

1 回答 1

0

你可以看看这个项目是怎么做的……</p>

https://github.com/t2wu/OSMMapKit

它似乎还没有完成,但它应该让你走上正确的道路。

于 2014-11-27T12:22:59.080 回答