curso programacion iphone

CoreLocation y CoreLocationManager

La framework CoreLocation nos permite obtener datos de posicionamiento del dispositivo; sin embargo, los datos que nos da son de latitud y longitud (y algo más). Si sólo queremos mostrar la posición en un mapa, con eso y la framework MapKit tenemos más que suficiente. No obstante, si lo que queremos es la dirección de la posición estaríamos apañados, si no fuese por CLGeocoder.

CLGeocoder al rescate: Geocodificación inversa

La clase CLGeocoder nos permiter hacer geocodificación directe e inversa (forward geocoding & reverse geocoding):

 

Geocodificación Inversa

Los dos tipos de geocodificación

En este caso nos interesa la geocodificación inversa: a partir de unas coordenadas que obtendremos de un CLLocationManager, queremos saber la dirección a la que corresponden.

El método que tenemos que llamar es reverseGeocodeLocation:completionHandler:. Acepta dos parámetros, uno la CLLocation (es decir, las coordenadas) y un bloque que se ejecutará cuando reciba los datos de la red. Ten en cuenta que aunque el método retorna de inmediato, hace una conexión en segundo plano con algún servicio online. Por eso hace falta pasarle un bloque para que lo ejecute cuando el servicio online le haya devuelto la dirección.

 

Aplicación de geocodificación de ejemplo: AndeEstoy.app

La aplicación es muy sencilla, tiene un botón que realiza la geocodificación inversa:

Geolocalización Inversa

Antes de iniciar la geocodificación inversa

Geolocalización Inversa

En este momento se inicia la geocodificación inversa: se está conectando a un servicio web

Geolocalización Inversa

Se ha obtenido una dirección para la longitud y latitud que el hemos pasado. Esto viene en un objeto de tipo CLPlacemark del cual extraemos los componentes de la dirección.

 

 

El código más importante del proyecto de ejemplo es el addressFromLocation:

 

 

El código completo está en este zip(AndeEstoy) (gitHub me anda dando problemas).

Tagged with:  

2 Responses to Obtener la dirección de una posición en longitud y latitud: geocodificación inversa

  1. [...] Obtener la dirección de una posición en longitud y latitud: geocodificación inversa [...]

  2. Manuel Sánchez says:

    Muchas gracias Fernando. Me ha venido de lujo. Estamos en contacto!!!!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>