В приложении на основе местоположения мы используем MKMapPoints для хранения местоположений, например, текущего местоположения пользователя.
Когда мы пытаемся использовать это местоположение в MKMapView, чтобы установить регион, который первоначально отображается (увеличенный для пользователя), мы конвертируем его в CLLocationCoordinate2D
Для этого есть метод согласования: namenly: MKCoordinateForMapPoint, но во время тестирования это дает странные результаты.
MKMapPoint mapPoint = MKMapPointMake(51.96, 6.3); // My area ;)
CLLocationCoordinate2D automagicCoordinate = MKCoordinateForMapPoint(mapPoint);
CLLocationCoordinate2D manualCoordinate = CLLocationCoordinate2DMake(mapPoint.x, mapPoint.y);
Я бы ожидал, что как autogicCoordinate, так и manualCoordinate будут совершенно одинаковыми.
но когда я проверяю это в отладчике, я получаю следующий результат:
automagicCoordinate.latitude = (CLLocationDegrees) 85.05
automagicCoordinate.longitude = (CLLocationDegrees) -179.99
manualCoordinate.latitude = (CLLocationDegrees) 51.96
manualCoordinate.longitude = (CLLocationDegrees) 6.3
Почему координата, созданная методом, неверна?