Пример прямого геокодирования с использованием CLGeocoder

Указания к рабочему примеру или некоторые рекомендации по использованию прямого геокодирования рядом с документацией Apple. Это довольно общий (я не могу понять)

Пожалуйста, это было бы здорово! Также кто-нибудь знает, используют ли они Google API для достижения того же или своего собственного?


person carbonr    schedule 19.03.2012    source источник
comment
stackoverflow.com/questions/1140404/, попробуй   -  person iNoob    schedule 19.03.2012
comment
уже сделал, один ответ указывает на CLGeocoder, но ничего не показывает. Решения существуют до iOS5. Теперь у нас есть геокодирование, доступное как встроенное решение.   -  person carbonr    schedule 19.03.2012


Ответы (1)


Нашел, что это работает, хотя я опубликую это здесь, если кто-то еще найдет это полезным.

CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    [geocoder geocodeAddressString:PlaceName.text completionHandler:^(NSArray *placemarks, NSError *error) {
        //Error checking

        CLPlacemark *placemark = [placemarks objectAtIndex:0];
        MKCoordinateRegion region;
        region.center.latitude = placemark.region.center.latitude;
        region.center.longitude = placemark.region.center.longitude;
        MKCoordinateSpan span;
        double radius = placemark.region.radius / 1000; // convert to km

        NSLog(@"Radius is %f", radius);
        span.latitudeDelta = radius / 112.0;

        region.span = span;

        [mapView setRegion:region animated:YES];
    }];
person carbonr    schedule 20.03.2012
comment
Согласно Справочнику по типам данных Map Kit в разделе MKCoordinateSpan Apple отмечает: один градус широты всегда составляет примерно 111 километров (69 миль). Хотя не проверял правда это или нет. - person redshift5; 17.10.2012
comment
@АляксейН. я не заметила твой комментарий. 112 не по волшебству. Если вы переведете 1 градус в км, вы получите это - person carbonr; 17.10.2012
comment
@carbonr 1° широты = 69,047 статутных миль = 60 морских миль = 111,12 км - person Aleks N.; 22.10.2012