Héctor Álvarez

Taller tecnologías móviles

Acceso a GPS e implementación de mapa sencillo

Esquema de la clase

  • Introducción
  • Configuración básica
  • Implementación de repositorio
  • Pantalla de mapa

Introducción

A veces necesitamos obtener datos del hardware en nuestra aplicación, como Micrófono, cámara, gps, giroscopio u otros.

En esta clase veremos cómo implementar de manera básica la obtención de datos desde el módulo GPS y mostrar la ubicación en un mapa.

Primero debenos incluir algunas dependencias y dar permiso a la aplicación para el acceso a estos módulos como GPS.

También utilizaremos un endpoint para mantener la ubicación guardada.

Configuración básica

En esta clase es necesario que agreguemos a nuestras dependencias los siguientes paquetes:
geolocator
flutter_map

Descargaremos una imagen de pin para agregarla a los assets.

Agregamos un marcador (imagen png) a los assets y finalmente agregamos los permisos de acceso a GPS.

Dependencias en pubspec.yaml

Agregamos las dependencias geolocator y flutter_map.

Modificar pages

Modificar resources

Agregar permisos

Necesitamos agregar la solicitud de permisos de *LOCATION, estos se agregan en los archivos Android manifest de las carpetas debug, main y profile, debemos agregarlas dentro del cuerpo principal.

Implementación de repositorio

Ahora, crearemos una entidad position la cual usaremos para obtener y actualizar la posición y guardarla en el servidor.

Crearemos los mpetodos para crear, obtener y actualizar a través de una API.

Position entity

Position repository

Create position usecase

Get me position usecase

update position usecase

Data remote position repository

Pantallas con mapa

Implementaremos la pantalla de mapa, con flutter_map y geolocation.

Implementaremos un botón para actualizar la posición del puntero; la primera vez necesitará que des permiso.

Utilizaremos openstreetmap y una imagen como marcador gráfico para mostrar la ubicación que está seteada en la base de datos de la API.

Map presenter

Crear Map controller

Crear Map view

Modificar Home controller