geolocalización y mapas
DESCRIPTION
Geolocalización y Mapas en IOSTRANSCRIPT
ì Geolocalización y mapas Master en Ingeniería Informá1ca – Programación en el entorno Apple-‐iOS
En esta presentación
ì Geolocalización con Core Loca1on
ì Ges1ón de mapas con Map Kit
2
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
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
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
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
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
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
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
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
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
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
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
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
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
ì Geolocalización y mapas Master en Ingeniería Informá1ca – Programación en el entorno Apple-‐iOS