将MKTileOverlayPath转换为MKMapRect?

时间:2014-06-13 15:37:44

标签: ios objective-c mapkit mkmapsnapshotter mktileoverlay

我使用的方法是:

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

MKTileOverlayPath给了我一个x,y和z。我试图采用这条路径拍摄这个区域的Apple Maps版本的快照,以便我可以对图像应用滤镜。

我正在使用MKMapSnapshotter,但是不知道用什么值来绘制这个区域的苹果地图表示。

MKMapSnapshotOptions *options = [[MKMapSnapshotOptions alloc] init];
options.scale = [[UIScreen mainScreen] scale];
options.showsBuildings = NO;
options.showsPointsOfInterest = NO;
options.mapType = MKMapTypeStandard;

MKMapSnapshotter *snapshotter = [[MKMapSnapshotter alloc] initWithOptions:options];
[snapshotter startWithCompletionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
    if (error || !snapshot) {
        NSLog(@"snapshotter error: %@", error);
        return;
    }
}];

或许还有另一种从这个区域拍摄地图图像的方法。

1 个答案:

答案 0 :(得分:0)

x/y/z和坐标之间的转换在这里完成:

https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

使用它来确定(间接)和MKMapRect捕获,设置地图视图,然后使用MKMapSnapshotter抓取要处理的图像。