Всякий раз, когда пользователь увеличивает или уменьшает масштаб карты, мне нужно знать, сколько метров в настоящее время представлено на карте (ширина или высота).
Мне нужна обратная функция 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 в результате.
Спасибо за вашу помощь, Винсент