iOS 7中的MKTileOverlay与mbtiles数据库

时间:2014-07-19 17:45:02

标签: ios ios7 mapkit mbtiles mktileoverlay

有没有办法可以直接使用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

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

1 个答案:

答案 0 :(得分:0)

你可以看看这个项目是如何做到的......

https://github.com/t2wu/OSMMapKit

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