Crear un localizador de tiendas utilizando Mapbox GL JS, PHP y MySQL

En este tutorial te mostraré cómo Crear un localizador de tiendas utilizando Mapbox GL JS, PHP y MySQL. Podrás explorar todas las ubicaciones desde una barra lateral y seleccionar una tienda específica para ver más información de dicha tienda. Al seleccionar los datos podrás ver un marcador en el mapa y se resaltará la tienda seleccionada en la barra lateral.

Para este ejemplo he tomado la ubicación de las tiendas de Almacenes Vidrí El Salvador. Tienen un número considerable de sucursales, es por ello que usaremos la data de ellos.

Este tutorial te muestra cómo usar Mapbox GL JS para construir un mapa web interactivo. Si eres nuevo en Mapbox GL JS, es posible que primero necesites leer la documentación sobre las aplicaciones web de Mapbox.

A continuación se muestra como quedará nuestra aplicación ya finalizada:



Empezando

Para este proyecto, te recomiendo que crees una carpeta en tu servidor local llamada “localizador” para alojar los archivos de tu proyecto.

Hay algunos recursos que necesitará antes de comenzar:

  • Un token de acceso a tu cuenta. Utilizarás un token de acceso para asociar un mapa con tu cuenta. tu token de acceso puedes conseguirlo en tu cuenta de mapbox.
  • Mapbox GL JS. La biblioteca JavaScript de Mapbox que usa WebGL para representar mapas interactivos usando los estilos de Mapbox GL.
  • Un editor de texto. Después de todo, escribirás código PHP, HTML, CSS y JavaScript.
  • Un servidor web local, recomiendo XAMPP, pero puedes usar el que tu consideres necesario.
  • Un gestor de base datos MySQL. Durante el tutorial se ha recolectado algunas de las ubicaciones de Almacenes Vidrí y recuperamos los datos usando JSON.
  • Marcador de mapa personalizado. Utilizarás una imagen para tu marcador de mapa. Guarda la imagen siguiente en tu carpeta del proyecto.

Descargar marcador personalizado

Agregar estructura

En tu carpeta de proyecto, crea un archivo index.html. Configura el documento agregando Mapbox GL JS y CSS a su cabeza, el código de la estructura html del archivo se muestra a continuación.

Creando el  archivo CSS

Ahora vamos a crear una carpeta llamada css y dentro de dicha carpeta un archivo, el cual nombraremos style.css

El archivo anterior se encagará de darle un aspecto profesional al listado de tiendas.

Añadiendo código JavaScript

Luego vamos a crear otra carpeta siempre en el directorio root del proyecto, a dicha carpeta la vamos a nombrar js y dentro de ella creamos un archivo llamado script.js. El código es el siguiente.

El archivo que hicimos en el paso anterior, contiene una seria de funciones avanzadas que se encarga de pintar los datos en el mapa, mostrar el lista de tiendas encontradas. El listado de tiendas se obtiene haciendo una llamada via jquery ajax  a un archivo que nombraremos stores.php.

Agregar marcadores mediante PHP y MySQL

Crear un archivo en la carpeta root del proyecto y lo llamaremos stores.php.

Este archivo recién creado, se encarga de conectarse a la base de datos y hacer una consulta a la base de datos para devolver mediante json un listado de las sucursales o tiendas encontradas en la base de datos, para que de ese modo se pueda crear el listado  de tiendas en el mapa con su respectiva ubicación.

Creando nuestra base de datos

Ahora vamos a abrir nuestro gestor de base de datos mysql y vamos a crear una base de datos en blanco, para este ejemplo la llamaremos store_locator, una vez se ha creado la base de datos debemos seleccionarla y ejecutar el código sql siguiente:

La consulta SQL se encarga de crear una tabla llamada stores y también le inserta los datos de prueba.

Hemos creado un mapa utilizando marcadores interactivos con datos y estilos personalizados utilizando la librería Mapbox GL JS. No olvides que puedes descargar los archivos fuentes y hacer tus pruebas.

VER DEMOSTRACIÓN DESCARGAR ARCHIVOS