Você está na página 1de 16

Geolocalizacin

y mapas
Master en Ingeniera Inform1ca Programacin en el entorno Apple-iOS

En esta presentacin
Geolocalizacin con Core Loca1on
Ges1n de mapas con Map Kit

Geolocalizacin (1)
Core Loca)on es un framework

que permite acceder a la


informacin de geolocalizacin
del GPS asis1do (que combina
GPS, redes Wi-Fi y Torres de
telefona)

La librera

CoreLoca)on.Framework debe
incluirse en la conguracin del
proyecto (Build Phases)
3

Geolocalizacin : info.plist

Si una App necesita que el disposi1vo tenga capacidad de geolocalizacin


debe incluir la clave Required Device Capabili)es con los valores gps y/o
loca)on-services

Para poder usar los sevicios de geolocalizacin en background debe


incluir el valor localiza1on en la clave Required Background Modes

Hay que incluir las claves NSLoca1onWhenInUseUsageDescrip1on o


NSLoca1onAlwaysUsageDescrip1on, segn se vaya a requerir
autorizacin cuando la aplicacin est en foreground o siempre. Estas
claves llevan asociado el mensaje que se va a mostrar para pedir la
autorizacin

Geolocalizacin (2)

Para recibir informacin de geolocalizacin, hay


que instanciar un objeto de la clase
CLLoca)onManager e implementar el protocolo
CLLoca)onManagerDelegate

Antes de empezar la geolocalizacin es obligatorio


cerciorarse de que la aplicacin est autorizada.

En iOS 8, hay que invocar, dependiendo del caso,


los mtodos requestWhenInUseAuthoriza)on o
requestAlwaysAuthoriza)on
5

Servicios de geolocalizacin
La geolocalizacin puede hacerse usando standard

loca)on services o signicant loca)on change services

Standard loca)on services es congurable con un nivel

de precisin determinado
Signicant loca)on change services solo actualiza la

informacin cuando hay cambios signica1vos (al


menos 500 metros) el la ubicacin del disposi1vo
6

Map Kit

Map Kit Framework proporciona


una interfaz para insertar mapas
en las vistas

Tambin ofrece la posibilidad de


hacer anotaciones en los mapas,
sobreponer capas, buscar
localizaciones y trazar rutas

La librera MapKit.Framework
debe incluirse en la conguracin
del proyecto (Build Phases)
7

MKMapView y MkMapviewDelegate

Los objetos de la clase


MKMapView representan vistas
dnde mostrar mapas y ges1onar su
contenido. Se puede mostrar un
mapa o una vista de satlite
(propiedad mapType)

El protcolo
MKMapViewDelegate proporciona
un conjunto de mtodos opcionales
para recibir informacin relacionada
con la actualizacin de los mapas

Regin visible
La regin visible del mapa se determina mediante la

propiedad region (clase MKCoordinateRegion) que


se caracteriza por las coordenadas de su punto
central y la extensin norte-sur y este-oeste

Alterna1vamente, tambin se representa por la

propiedad visibleMapRect (clase MKMapRect)


9

Localizacin del usuario y POI


Los mapas pueden mantener informacin sobre la

localizacin del usuario (propiedad userLoca)on) y


mostrarla (propiedad showsUserLoca)on). La propiedad
userLoca)onVisible indica si est realmente visible

Tambin se puede mostrar informacin sobre puntos de

inters (propiedad showsPointsOfInterest) o edicios


(propiedad showsBuildings)
10

Anotaciones

Se pueden aadir y quitar anotaciones a un


mapa. La propiedad annota)ons man1ene un
array con todas las anotaciones

La informacin de una anotacin 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
mtodo delegado mapView:viewForAnnota)on:

11

Capas sobrepuestas (overlays)

Se pueden aadir y quitar capas sobrepuestas un


mapa. La propiedad overlays man1ene un array
con todas las capas sobrepuestas

La informacin 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
mtodo delegado mapView:rendererForOverlay:
12

Bsquedas locales
Usando objetos de la clase MKLocalSearch se pueden realizar

bsquedas

Los parmetros de la bsqueda se especican, en lenguaje

natural, con un objeto de la clase MKLocalSearhRequest

La respuesta se ob1ene en un bloque de terminacin por

medio de un parmetro 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 parmetros de la ruta se especican 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 terminacin por


medio de un parmetro de la clase MKDirec)onsResponse,
que con1ene un array de objetos MKRoute, que incluye la
geometra de la ruta, adems de otra informacin de inters

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

Geolocalizacin y mapas
Master en Ingeniera Inform1ca Programacin en el entorno Apple-iOS