Está en la página 1de 19

Curso de Iniciación a la

Programación del iPhone


SDK con Objective-C
Geolocalización

Moncada, a 9 de Julio de 2010


Introducción

Muchas aplicaciones usan geolocalización

En iPhone OS
- Core Location Framework
- MapKit Framework

Hay que tener cuidado con el consumo de batería

Triangulación celular < Wifi < GPS


Core Location Framework

CLLocationManager
Punto de entrada al servicio
Localización y precisión
CLLocation
Objeto representa un punto y vector
CLLocationManagerDelegate (Protocolo)
didUpdateToLocation:fromLocation
didUpdateHeading
didFailLoadWithError
CLLocation

Estructura

CLLocationCoordinate2D coordinate;

CLLocationDistance altitude;

CLLocationAccuracy horizontalAccuracy;

CLLocationAccuracy verticalAccuracy;

CLLocationDirection course;

CLLocationSpeed speed;

-(NSDAte*)timestamp;

-distanceFromLocation:(CLLocation*)location
CLLocationManager

Estructura

CLLocation *location;

Id <CLLocationManagerDelegate> delegate;

CLLocationDistance distanceFilter;

CLLocationAccuracy desiredAccuracy;

-(void)startUpdatingLocation

-(void)stopUpdatingLocation

-(void)startUpdatingHeading

-(void)stopUpdatingHeading
CLLocationManagerDelegate

Método cuando cambia la localización


- didUpdateToLocation:fromLocation;

Método cuando cambia la orientación


- didUpdateHeading;

Método para manejar los errores


- didFailWithError;
MapKit Framework

API para mostrar mapas


Clases para traducir coordenadas en direcciones (reverse-
geocoding)
Soporta anotaciones sobre el mapa
MapKit Framework
Estructura MapKit Framework

Clases:
MKMapView
MKAnnotationView
MKPlaceMark
MKUserLocation
MKReverseGeocoder
Protocolos
MKAnnotation Protocol
MKMapViewDelegate
MKReverseGeocoderDelegate
MKMapView

Es la vista que se encarga de mostrar el mapa y las anotaciones

Configuración inicial del mapa


Región visible del mapa (punto central + span)
Span: Cuánto se ve del mapa

Anotaciones de la vista
Objeto que cumple protocolo MKAnnotation
Mapa tiene NSArray objetos anotación
MKMapView

Es la vista que se encarga de mostrar el mapa y las anotaciones


Configuración inicial del mapa
Región visible del mapa (punto central + span)
Span: Cuánto se ve del mapa
Anotaciones de la vista
Objeto que cumple protocolo MKAnnotation
Mapa tiene NSArray objetos anotación
MKMapView

Propiedades
MKCoordinateRegion region;
CLLocationCoordinate2D centerCoordinate;
MKMapType mapType;
NSArray *annotations;
MKUserLocation userLocation;
id <MKMapViewDelegate> delegate;
MKMapViewDelegate

Métodos sobre la carga de estado:


mapViewWillStartLoadingMap
mapViewDidFinishLoadingMap
mapViewDidFailLoadingMap:withError
Métodos sobre cambio de región:
regionWillChangeAnimated
regionDidChangeAnimated
Métodos para anotaciones:
viewForAnnotation
didAddAnnotationViews
annotationView:calloutAccessoryControlTapped
MKAnnotation

Es un protocolo, NO una clase


El objeto que quiera cumplir el protocolo:
@property CLLocationCoordinate2D coordinate;
@property NSString *title;
@property NSString *subtitle;
MKUserLocation

Caso especial de MKAnnotation


Representa la localización del dispositivo
Estructura:
- @property BOOL updating (getter = isUpdating);
- @property CLLocation *location;
- @property NSString *title;
- @property NSString *subtitle;
MKAnnotationView

- Vista para cada anotación


MKPinAnnotationView

- Reusable (como UITableViewCell)

- Callouts o 'bocadillos'
MKPlacemark

- Cumple protocolo MKAnnotation


- Clase para almacenar una relación entre coordenadas y
direcciones legibles

- initWithCoordinate:addressDictionary
- Estructura
Objetos NSString para almacenar calle, localidad, país...
MKReverseGeocoder

Usa un servicio de red para convertir entre coordenadas y dirección


legible (Google)

Necesita conexión a internet

Devuelve objeto MKPlacemark

Protocolo MKReverseGeocoderDelegate
- didFindPlacemark:(MKPlacemark *)placemark
Bibliografía

“Core Location Framework Reference”

“MapKit Framework Reference”

“Location Awareness Programming Guide”

http://developer.apple.com

También podría gustarte