Agregar marcadores personalizados en Mapbox

En este tutorial te mostraré como construir un mapa web interactivo usando marcadores personalizados de la librería Mapbox GL JS, mediante el uso de JavaScript. Aprenderás cómo cargar datos con GeoJSON en línea y agregarlos a tus  mapas dinámicamente utilizando marcadores HTML. Finalmente, agregarás ventanas emergentes cuando se  haga clic en un marcador.

 

Empezando

Para este proyecto, te recomiendo que creas un directorio o carpeta llamada “mapbox-marcadores”,
para alojar tus archivos del proyecto dentro de dicho directorio.

Para continuar con este tutotial necesitaras:

  • Un token de acceso. desde tu cuenta de mapbox. Lo puedes conseguir desde tu cuenta de mapbox
  • Un editor de texto, puesto que escribiremos código HTML, CSS y JavaScript
  • Imagen personalizada del marcador. En este tutorial  se utiliza una imagen dentro de cada marcador HTML personalizado para mostrar la ubicación de las oficinas. Deberás descargar el archivo PNG para usarlo como su icono personalizado y guardarlo en la misma carpeta de tu proyecto.

Descargar imagen

Crear un mapa con  Mapbox GL JS

¡Ahora estás listo para usar Mapbox GL JS! Para comenzar, crea un nuevo archivo HTML y lo nombras index.html y escribe el código siguiente para inicializar un mapa Mapbox GL JS.

Como puede ver en el código de arriba, el mapa requiere varios opciones:

  1. Container: Es el id del elemento <div>, que es donde se debe mostrar el mapa.
  2. Style: la url que contiene los estilos CSS del mapa, para este caso se esta usando los estilos de la librería mapbox: “mapbox://styles/mapbox/light-v10”.
  3. Center: el punto central inicial del mapa en formato [longitud, latitud].
  4. Zoom: el nivel de zoom inicial del mapa.

Cargar los datos con GeoJSON

Carga tus datos agregando GeoJSON  a tu archivo HTML. Este GeoJSON se usará para determinar dónde aparecerán tus marcadores en el mapa.

Copia y pega lo siguiente después del código que inicializa el mapa, pero despues de la etiqueta “<script>”. Este código declara una variable geojson que se establece igual a los datos de GeoJSON.

Agregar marcadores HTML

Ahora que hemos cargado los datos, agrega código para crear un elemento  HTML para cada marcador y vincularlo  a las características de GeoJSON utilizando el método de marcador Mapbox GL JS. Se Utilizará la imagen que descargó al inicio de este tutorial, la cual se debe guardar en la carpeta del proyecto.

Cuando agregues un marcador utilizando el método Marker, tu estarás creando un div vacío a cada punto en tu GeoJSON.

Agregar marcadores al mapa usando JavaScript

A continuación, agrega el código JavaScript necesario para crear los marcadores y agregarlos al mapa. Copia y pegue el siguiente código dentro de tu etiqueta de <script> después del final de su declaración de objeto de mapa pero antes de la etiqueta </script> “etiqueta de cierre”.

Guarda el archivo y actualiza tu navegador. Deberías ver el mapa que se muestra con sus marcadores HTML personalizados.

Producto final

El mapa final que vamos a construir se verá así:

Hemos creado un mapa utilizando marcadores interactivos con datos y estilos personalizados utilizando la librería Mapbox GL JS.


VER DEMO DESCARGAR ARCHIVOS