Pergunta

estou usando o geocodeAddressString:completionHandler: método, que retorna uma matriz de CLPlacemarks.Preciso obter latitude, longitude, nome mnemônico e raio.Embora seja fácil obter os 3 primeiros:

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

Não sei como obter o raio agora, pois placemark.region.radius está obsoleto.Alguma idéia do que usar agora?Não consigo encontrar nada interessante o suficiente na documentação.

Foi útil?

Solução

A nota de depreciação é para radius em CLRegion e diz para usar CLCircularRegion em vez de.

Observe que CLCircularRegion é uma subclasse de CLRegion.
CLCircularRegion tem as mesmas propriedades que CLRegion tinha (incluindo radius).

Isso importa se você é quem está criando um CLRegion com a intenção de usar seu radius propriedade.


No entanto, aqui, é o próprio SDK (especificamente o geocodeAddressString método) que tem que se preocupar com isso e lidar com isso.

No iOS 7, esse método realmente lida com isso retornando um CLCircularRegion para o marcador region propriedade.

Essencialmente, você não precisa fazer ou alterar nada aqui, pois os nomes das propriedades são idênticos.

Este código funcionará do iOS 4 ao iOS 7:

NSLog(@"radius=%f", placemark.region.radius);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top