Преобразование значения пролета в метры при просмотре карты

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

Мне нужно, чтобы обратная функция 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 в итоге .. Винсент

21
задан vdaubry 10 March 2011 в 22:14
поделиться