Geolocalización y Mapas

16
Geolocalización y mapas Master en Ingeniería Informá1ca – Programación en el entorno AppleiOS

description

Geolocalización y Mapas en IOS

Transcript of Geolocalización y Mapas

Page 1: Geolocalización y Mapas

ì  Geolocalización  y  mapas  Master  en  Ingeniería  Informá1ca  –  Programación  en  el  entorno  Apple-­‐iOS  

Page 2: Geolocalización y Mapas

En  esta  presentación  

ì  Geolocalización  con  Core  Loca1on  

ì  Ges1ón  de  mapas  con  Map  Kit  

2  

Page 3: Geolocalización y Mapas

Geolocalización  (1)  

ì  Core  Loca)on  es  un  framework  que  permite  acceder  a  la  información  de  geolocalización  del  GPS  asis1do  (que  combina  GPS,  redes  Wi-­‐Fi  y  Torres  de  telefonía)  

ì  La  librería  CoreLoca)on.Framework  debe  incluirse  en  la  configuración  del  proyecto  (Build  Phases)  

3  

Page 4: Geolocalización y Mapas

Geolocalización  :  info.plist  

ì  Si  una  App  necesita  que  el  disposi1vo  tenga  capacidad  de  geolocalización  debe  incluir  la  clave  Required  Device  Capabili)es  con  los  valores  gps  y/o  loca)on-­‐services    

ì  Para  poder  usar  los  sevicios  de  geolocalización  en  background  debe  incluir  el  valor  localiza1on  en  la  clave  Required  Background  Modes  

ì  Hay  que  incluir  las  claves  NSLoca1onWhenInUseUsageDescrip1on  o    NSLoca1onAlwaysUsageDescrip1on,  según  se  vaya  a  requerir  autorización  cuando  la  aplicación  está  en  foreground  o  siempre.  Estas  claves  llevan  asociado  el  mensaje  que  se  va  a  mostrar  para  pedir  la  autorización            

4  

Page 5: Geolocalización y Mapas

Geolocalización  (2)  

ì  Para  recibir  información  de  geolocalización,  hay  que  instanciar  un  objeto  de  la  clase  CLLoca)onManager  e  implementar  el  protocolo  CLLoca)onManagerDelegate  

ì  Antes  de  empezar  la  geolocalización  es  obligatorio  cerciorarse  de  que  la  aplicación  está  autorizada.  

ì  En  iOS  8,  hay  que  invocar,  dependiendo  del  caso,  los  métodos  requestWhenInUseAuthoriza)on  o  requestAlwaysAuthoriza)on  

5  

Page 6: Geolocalización y Mapas

Servicios  de  geolocalización  

ì  La  geolocalización  puede  hacerse  usando  standard  loca)on  services  o  significant  loca)on  change    services  

ì  Standard  loca)on  services  es  configurable  con  un  nivel  de  precisión  determinado  

ì  Significant  loca)on  change    services  solo  actualiza  la  información  cuando  hay  cambios  significa1vos  (al  menos  500  metros)  el  la  ubicación  del  disposi1vo  

6  

Page 7: Geolocalización y Mapas

Map  Kit  

ì  Map  Kit  Framework  proporciona  una  interfaz  para  insertar  mapas  en  las  vistas  

ì  También  ofrece  la  posibilidad  de  hacer  anotaciones  en  los  mapas,  sobreponer  capas,  buscar  localizaciones  y  trazar  rutas  

ì  La  librería  MapKit.Framework  debe  incluirse  en  la  configuración  del  proyecto  (Build  Phases)  

7  

Page 8: Geolocalización y Mapas

MKMapView  y  MkMapviewDelegate  

ì  Los  objetos  de  la  clase  MKMapView  representan  vistas  dónde  mostrar  mapas  y  ges1onar  su  contenido.  Se  puede  mostrar  un  mapa  o  una  vista  de  satélite  (propiedad  mapType)    

ì  El  protócolo  MKMapViewDelegate  proporciona  un  conjunto  de  métodos  opcionales  para  recibir  información  relacionada  con  la  actualización  de  los  mapas  

8  

Page 9: Geolocalización y Mapas

Región  visible  

ì  La  región  visible  del  mapa  se  determina  mediante  la  propiedad  region  (clase  MKCoordinateRegion)  que  se  caracteriza  por  las  coordenadas  de  su  punto  central  y  la  extensión  norte-­‐sur  y  este-­‐oeste  

ì  Alterna1vamente,  también  se  representa  por  la  propiedad  visibleMapRect  (clase  MKMapRect)  

9  

Page 10: Geolocalización y Mapas

Localización  del  usuario  y  POI  

ì  Los  mapas  pueden  mantener  información  sobre  la  localización  del  usuario  (propiedad  userLoca)on)  y  mostrarla  (propiedad  showsUserLoca)on).  La  propiedad  userLoca)onVisible  indica  si  está  realmente  visible  

ì  También  se  puede  mostrar  información  sobre  puntos  de  interés  (propiedad  showsPointsOfInterest)  o  edificios  (propiedad  showsBuildings)  

10  

Page 11: Geolocalización y Mapas

Anotaciones  

ì  Se  pueden  añadir  y  quitar  anotaciones  a  un  mapa.  La  propiedad  annota)ons  man1ene  un  array  con  todas  las  anotaciones  

ì  La  información  de  una  anotación  es  un  objeto  que  cumple  el  protocolo  MKAnnota)on  

ì  En  el  mapa  se  muestran  con  un  objeto  de  una  subclase  de  MKAnnota)onView,  por  medio  del  método  delegado  mapView:viewForAnnota)on:  

11  

Page 12: Geolocalización y Mapas

Capas  sobrepuestas  (overlays)  

ì  Se  pueden  añadir  y  quitar  capas  sobrepuestas  un  mapa.  La  propiedad  overlays  man1ene  un  array  con  todas  las  capas  sobrepuestas  

ì  La  información  de  una  capa  sobrepuesta  es  un  objeto  que  cumple  el  protocolo  MKOverlay,  que  a  su  vez  hereda  de  MKAnnota)on  

ì  En  el  mapa  se  muestran  con  un  objeto  de  una  subclase  de  MKOverlayRenderer,  por  medio  del  método  delegado  mapView:rendererForOverlay:  

12  

Page 13: Geolocalización y Mapas

Búsquedas  locales  

ì  Usando  objetos  de  la  clase  MKLocalSearch  se  pueden  realizar  búsquedas  

ì  Los  parámetros  de  la  búsqueda  se  especifican,  en  lenguaje  natural,  con  un  objeto  de  la  clase  MKLocalSearhRequest  

ì  La  respuesta  se  ob1ene  en  un  bloque  de  terminación  por  medio  de  un  parámetro  de  la  clase  MKLocalSearchResponse,  que  con1ene  un  array  de  objetos  MKMapItem  

13  

Page 14: Geolocalización y Mapas

Rutas  

ì  Usando  un  objeto  de  la  clase  MKDirec)ons  se  puede  obtener  una  ruta  entre  dos  puntos  

ì  Los  parámetros  de  la  ruta  se  especifican  con  un  objeto  de  la  clase  MKDirec)onsRequest  en  el  que  se  establecen  un  origen  y  un  des1no  como  objetos  MKMapItem  

ì  La  respuesta  se  ob1ene  en  un  bloque  de  terminación  por  medio  de  un  parámetro  de  la  clase  MKDirec)onsResponse,  que  con1ene  un  array  de  objetos  MKRoute,  que  incluye  la  geometría  de  la  ruta,  además  de  otra  información  de  interés  

14  

Page 15: Geolocalización y Mapas

Lecturas  recomendadas  

ì  Loca0on  and  Maps  Programming  Guide  (hPps://developer.apple.com/library/ios/documenta)on/UserExperience/Conceptual/Loca)onAwarenessPG/Introduc)on/Introduc)on.html#//apple_ref/doc/uid/TP40009497-­‐CH1-­‐SW1)  

ì  Core  Loca0on  Framework  Reference  (hPps://developer.apple.com/library/ios/documenta)on/CoreLoca)on/Reference/CoreLoca)on_Framework/)  

ì  MapKit  Framework  Reference  (hPps://developer.apple.com/library/ios/documenta)on/MapKit/Reference/MapKit_Framework_Reference/)  

15  

Page 16: Geolocalización y Mapas

ì  Geolocalización  y  mapas  Master  en  Ingeniería  Informá1ca  –  Programación  en  el  entorno  Apple-­‐iOS