Como usar el GPS en vuestras aplicaciones
12 October 2008

Imagino que muchos de vosotros ya conocéis el funcionamiento del GPS gracias al framework de CoreLocation, pero para otros muchos que se incorporan al mundillo del desarrollo de aplicaciones para iPhone, vamos a explicarlo.
En primer lugar, es necesario, q en nuestro proyecto incluyamos el framework CoreLocation que anteriormente hemos comentado, y para ello os recuerdo el artículo donde ya explicamos como hacerlo.
El funcionamiento de la detección del punto donde nos encontramos, gracias al GPS, se hace mediante la clase CLLocationManager:
[cpp]
CLLocationManager* locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = [[UIApplication sharedApplication] delegate];
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
locationManager.distanceFilter = 100;
[locationManager startUpdatingLocation];
[/cpp]
desiredAccuracy y distanceFilter definen el filtro de localización, así para localizar solamente el punto aproximado donde nos encontramos se recomienda el uso de kCLLocationAccuracyBest, que aunque no es tan exacto, consume mucha menos memoria y recursos.
Mediante el uso de delegate, indicamos que clase será la encargada de recibir las notificaciones una vez que el GPS detecte nuestra posición. En ese ejemplo, hemos delegado esa funcionalidad a nuestra clase delegate principal de nuestra aplicación. Por lo tanto, dicha clase deberá contener la definición de CLLocationManagerDelegate de la siguiente manera:
[cpp]@interface ProjectAppDelegate : NSObject
Dicha definición nos permitirá que los eventos o notificaciones de nuestro objeto CLLocationManager, sean enviadas y gestionadas por nuestra clase.
Para finalizar, el método encargado de recibir esas notificaciones, el cual estará en nuestra clase delegate (pues a ella le indicamos que recibiría las notificaciones ) será:
[cpp]
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
[manager stopUpdatingLocation];
mylat=newLocation.coordinate.latitude;
mylong=newLocation.coordinate.longitude;
}
[/cpp]
donde gracias al objeto newLocation, que nos llega como parámetro, nos indicará la longitud y latitud de nuestra posición actual.

Comentarios recientes
Muy bueno. Podrás subir el código del proyecto? Sería de gran ayuda.
Muy buenas a todos, en primer lugar dar la enorabuena a todos por poder hacer factible esta web. Me pongo en contacto con vosotros por que tengo que instaurar el gps en mi aplicación, esta tiene que darme las cordenadas y poder mandarlas por el 3g y ya esta, lo que pasa es que estoy atrapado y necesito ayuda. Os dejo mi email davidmarher@gmail.com Un saludo.
Estoy muy interesado en saber como optener las coordenadas a partir del gps, ya que pretendo implementar un proyecto de la universidad y cro que sera llamativo hacerlo con un iPhone, es problema es que lo maximo que he hecho para el iPhone es un "Hello world" jeje Me seria de gran ayuda un codigo de ejemplo. Gracias
Esa captura en concreto no es de una aplicación mía, pero estaré encantado de compartir con ustedes un ejemplo real. En breve lo prepararé y lo subiré.
Estupendo !!! Una cosa, la captura del articulo es una aplicación basada en google map realizada por ti?, podrías compartir el código? Gracias,
Genial. No parece nada dificil. Saludos.
Deja un comentario