Swift 4.2

й раз, когда пользователь увеличивает или уменьшает карту, мне нужно знать, сколько метров в настоящее время представлено на карте (ширина или высота).

Что мне нужно, это обратная функцияMKCoordinateRegionMakeWithDistance рассчитать расстояние, представленное текущим отрезком карты.

Я пробовал следующий код, но я получаю неправильные результаты:

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
    MKMapRect mRect = self.map.visibleMapRect;
    MKMapPoint northMapPoint = MKMapPointMake(MKMapRectGetMidX(mRect), MKMapRectGetMinY(mRect));
    MKMapPoint southMapPoint = MKMapPointMake(MKMapRectGetMidX(mRect), MKMapRectGetMaxY(mRect));

    self.currentDist = MKMetersBetweenMapPoints(northMapPoint, southMapPoint);
}

Если я установлю область карты на 1500 метров, я получу что-то вроде 1800 в результате ..

Спасибо за вашу помощь, Винсент

Ответы на вопрос(6)

Ваш ответ на вопрос