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