MKMapView: Как установить диапазон области в зависимости от точности?

Я внедряю картографическое приложение на iPhone. Я хочу, чтобы карта увеличивала текущее местоположение пользователя. Я хотел бы приблизить масштаб в зависимости от точности (имитируя работу приложения «Карты»).

Я реализую этот метод:

    - (void)locationManager:(CLLocationManager *)manager 
didUpdateToLocation:(CLLocation *)newLocation 
fromLocation:(CLLocation *)oldLocation {

Проблема, с которой я сталкиваюсь, заключается в том, что CLLocation предоставляет мне точность с помощью свойств horizontalAccuracy и verticalAccuracy, что в конечном итоге означает метры. Однако для центрирования карты я использую это:

MKCoordinateRegion region;
MKCoordinateSpan span;
region.center = newLocation.coordinate; 
span.latitudeDelta=.005;  //THIS IS HARDCODED
span.longitudeDelta=.005; //THIS IS HARDCODED   
region.span = span;

[mapView setRegion:region animated:YES];

Я ищу способ вычислить latitudeDelta (представленное в градусах) на основе horizontalAccuracy (представленного в метрах).

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

Любые идеи?

Спасибо. Гонсо


person gonso    schedule 11.02.2010    source источник


Ответы (2)


Нет необходимости делать расчеты. Просто используйте MKCoordinateRegionMakeWithDistance().

person Ole Begemann    schedule 11.02.2010

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

MKCoordinateRegion region = {{0,0},{.5,.5}}; 
region.center.latitude = doubleLattitude; //user defined
region.center.longitude = doubleLongitude;//user defined
[mapView setRegion:region animated:YES]; 
person Nishant    schedule 22.06.2012