Преобразовать MKTileOverlayPath в MKMapRect?

Я использую метод:

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

MKTileOverlayPath дает мне x, y и z. Я пытаюсь пойти по этому пути и сделать снимок того, что представляет собой версия этой области для Apple Maps, чтобы я мог применить фильтр к изображению.

Я использую MKMapSnapshotter как таковой, но не знаю, какие значения дать ему, чтобы нарисовать отображение этой области на картах Apple.

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 ответ

Преобразование между x/y/z и координаты делается здесь:

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

Используйте это, чтобы определить (косвенно) и MKMapRect чтобы сделать снимок, настройте вид карты, а затем используйте MKMapSnapshotter захватить изображение для обработки.

Другие вопросы по тегам