Para poder llegar a construir nuestro Buscador Avanzado debimos realizar varias tareas.
Arreglar el geoposicionamiento de algunos cajeros proporcionados por Cajamar.
En las oficinas se puede realizar cualquier operación menos las de contactless.
En todos los cajeros se puede consultar saldo y sacar dinero.
Los cajeros tienen un horario de 24 horas.
Las oficinas pueden tener varios horarios.
Usando Web scraping descargamos 7974 cajeros de CaixaBank, 5689 cajeros de BBVA, 7.075 cajeros del Grupo Santander.
Usando la API MapBox obtuvimos los nombres de las vías y los municipios.
Con la API MapBox pudimos tener en cuenta la geometría de las rutas y hacer cálculos de tiempo y distancias usando tres medios de desplazamiento( en coche, en bicicleta y a pie) tomando la ubicación del usuario como punto de origen y el cajero al que quiere ir como destino. También resultó realmente útil a la hora de poder darle al usuario la recomendación del cajero más cercano.
Todo el trabajo se ve transformado en un buscador avanzado, que no solamente muestra al usuario los cajeros cercanos a él, sino que además le recomienda cuál es la mejor opción para realizar sus operaciones.
La primera vez que se abre el buscador se mostrarán los datos filtrados por el día y hora actual. Automáticamente se pedirá la autorización del usuario para determinar su ubicación:
Al dar clic en el botón se envían los parámetros de búsqueda seleccionados por el usuario y se muestran todos los cajeros y oficinas que cumplen con dichos requisitos. Se marcan en el mapa según el icono correspondiente resaltando la mejor opción para el usuario con un icono diferente. La mejor opción será la oficina o cajero más cercana teniendo en cuenta la geometría de la ruta
Si ninguno de los registros cumple con los criterios de búsqueda se muestra una alerta informando al usuario que no hay registros
Al dar clic en el botón se envían los parámetros de búsqueda seleccionados por el usuario y solo se muestra aquel que sea más económico, más cercano (teniendo en cuenta la geometría de la ruta) o el mejor según los dos parámetros.
También se muestra automáticamente la ruta desde la ubicación del usuario hasta la mejor opción.
Solo se pueden crear rutas a partir de la ubicación del usuario, si le ha dado bloquear en el momento que se solicita su ubicación, no se mostrarán rutas por no haber un punto de partida de la ruta.
Representa la fecha y la hora en la que se desea realizar la operación.
Aunque el objetivo es que sea en tiempo real, hemos decidido dejar este control para que se puedan simular búsquedas teniendo en cuenta que la fecha mínima a introducir es 1/11/2017 y la máxima 31/10/2018, por ser las fechas de las que disponemos de datos de ocupación de las oficinas y de estado de los cajeros.
Para simular un escenario real, por defecto aparecerá la fecha actual un año antes.