Как сохранить текущий MKCoordinateRegion или уровень масштабирования?

У меня есть приложение, которое предоставляет масштабируемый MKMapView для пользователя. Я хочу иметь возможность сохранять предпочтительные для пользователя координаты и уровень масштабирования для первого отображения карты.

В настоящее время в viewDidLoad я предоставляю набор координат по умолчанию и уровень масштабирования для начального представления карты:

    zoomLocation.latitude = 55.50;
    zoomLocation.longitude = -5.50;

    // specify size of region to display
    MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 340.0*METERS_PER_MILE, 340.0*METERS_PER_MILE);

    // auto adjust region to fit screen
    MKCoordinateRegion adjustedRegion = [mapView regionThatFits:viewRegion];                

    // display the new region
    [mapView setRegion:adjustedRegion animated:YES];

То, что я пытаюсь сделать, - это когда пользователь прокручивает и масштабирует карту до своего предпочтительного вида по умолчанию, он может нажать кнопку "Установить по умолчанию" и сохранить требуемые свойства, которые будут реализованы в будущем при загрузке представления.

Чтобы сохранить координаты выбранного пользователем представления, у меня есть это:

// gets coordinates of currently viewed map image
CGPoint pointCentrePoint = CGPointMake(mapView.frame.size.width/2, mapView.frame.size.height/2);
centrePoint = [mapView convertPoint:pointCentrePoint toCoordinateFromView:mapView]; 

NSLog(@"LAT: %f LON: %f", centrePoint.latitude, centrePoint.longitude);

Я борюсь с тем, как сохранить выбранный пользователем MKCoordinateRegion или уровень масштабирования. Есть ли способ получить доступ к этому свойству для текущего представления, чтобы его можно было использовать в будущем при загрузке представления?

1 ответ

Решение

В отличие от API JavaScript Google Maps, MKMapView не имеет легкодоступного свойства "уровень масштабирования" (оно на самом деле не нужно для ваших целей).

Работа со значениями центра и диапазона в свойстве региона.

Этот вопрос дает пример того, как сохранить / загрузить регион в NSUserDefaults.

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