2012-07-05 10 views
9

Tengo un problema con CLGeocoder en el que cuando llamo al geocodeAddressString:withCompletionHandler solo obtengo un resultado, a pesar de saber que la cadena ingresada debe devolver más de un valor. La referencia de clase incluso indica:CLGeocoder solamente Returning One Placemark

En el caso de las solicitudes de geocodificación hacia adelante, se pueden devolver varios objetos de marca de posición si la información proporcionada arrojó varias ubicaciones posibles.

Sin embargo, mi matriz marcas de posición solamente siempre tiene un elemento en ella:

[geocoderDestination geocodeAddressString:destination completionHandler:^(NSArray *placemarks, NSError *error){ 
NSLog(@"array count:%i", [placemarks count];} 

Gracias por cualquier ayuda.


he utilizado cadenas como "Piccadilly, Reino Unido", "calle de la unión, Reino Unido", que sólo se han vuelto uno de los resultados. Ahora que lo pienso, poner UK en el extremo podría ser el factor que contribuya.

+0

puede agregar su cadena de muestra, para que otros puedan probar por sí mismos –

+0

Listo, pero creo que me he dado cuenta de mi error ahora jajaja. Pero el problema es que necesito que los resultados sean específicos del Reino Unido, y usar geocodeAddressString: inRegion: no es muy bueno ya que tiene que asignar un radio, por lo que se incluiría parte de Irlanda. – prince

+0

Bueno, esto está tomando el pelo, incluso si uso CLLocationDistance distance1 = 750; CLRegion * region = [[CLRegion alloc] initCircularRegionWithCenter: CLLocationCoordinate2DMake (53.825564, -2.421976) radius: distance1 identifier: nil]; con geocodeAddressString: inRegion: entonces me da un lugar en Australia para "Piccadilly". – prince

Respuesta

4

No sé acerca de CLGeocoder pero si su requerimiento es una búsqueda de ubicación, otra forma es utilizar el url de búsqueda de ubicación de google http://maps.google.com/maps/geo?q=london que devuelve un json que contiene la información de ubicación coincidente.

+0

Gracias, usaré eso mientras tanto, todavía no puedo hacer que esto funcione – prince

1

En lugar de UK use United Kingdom le dará algún resultado relacionado.
Intente agregar más información en su dirección.
Una cosa más UK no es un código de país válido es GB pero parece que poner GB en lugar de UK no resolvió el problema.
Además, CLGeocoder no es tan inteligente como Google Maps API en este momento porque Apple usa su propio servidor para decodificar direcciones para que pueda usar los servicios de Google.