MapView regionThatFits, установленный с использованием горизонтальной точности - PullRequest
1 голос
/ 02 мая 2011

Я ищу способ преобразования метров в область просмотра карты.

CLLocation 's horizontalAccuracy - это двойное число, представляющее точность в метрах. regionThatFits: принимает MKCoordinateRegion, который имеет span с longitudeDelta и latitudeDelta. Как я могу преобразовать метры в долготу / широту?

1 Ответ

2 голосов
/ 02 мая 2011

Нашел ответ.Кажется, что 1 градус широты равен примерно 111 километрам или 111120 метрам

- (MKCoordinateRegion)regionForAccuracyOfLocation:(CLLocation *)location
{
    CLLocationDegrees spanInDegrees = (CLLocationDegrees) (location.horizontalAccuracy / 222240);

    MKCoordinateSpan span = MKCoordinateSpanMake(spanInDegrees, spanInDegrees) ;
    CLLocationCoordinate2D coordinate = location.coordinate;
    MKCoordinateRegion region = MKCoordinateRegionMake(coordinate, span);

    return region;
}
...