Вопрос

Я использую geocodeAddressString:completionHandler: метод, который возвращает массив CLPlacemarks.Я должен получить широту, долготу, мнемоническое название и радиус.В то время как получить первые 3 легко:

double lat = placemark.location.coordinate.latitude;
double lng = placemark.location.coordinate.longitude;
NSString *name = [NSString stringWithFormat:@"%@", ABCreateStringWithAddressDictionary(placemark.addressDictionary, NO)]

Я не знаю, как получить радиус сейчас, так как placemark.region.radius является устаревшим.Есть идеи, что использовать сейчас вместо этого?Я не могу найти ничего достаточно интересного в документации.

Это было полезно?

Решение

Примечание об отказе предназначено для radius в CLRegion и там написано использовать CLCircularRegion вместо.

Обратите внимание, что CLCircularRegion является подклассом CLRegion.
CLCircularRegion обладает теми же свойствами, что CLRegion имел (включая radius).

Это имеет значение, если ты являются ли те, кто создает CLRegion с намерением использовать его radius собственность.


Однако здесь речь идет о самом SDK (в частности, о geocodeAddressString метод), который должен беспокоиться об этом и справляться с этим.

В iOS 7 этот метод действительно обрабатывает это, возвращая CLCircularRegion для метки region собственность.

По сути, вам не нужно ничего делать или изменять здесь, поскольку имена свойств идентичны.

Этот код будет работать с iOS 4 по iOS 7:

NSLog(@"radius=%f", placemark.region.radius);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top