Utilizando los iconos de Bootstrap en Leaflet

bootstrap-en-leaflet

Bootstrap es un conjunto de herramientas de código abierto para el diseño de sitios y aplicaciones web.

Bootstrap Icons

Contiene plantillas de diseño con tipografía, formularios, botones, cuadros, menús de navegación y otros elementos de diseño basado en HTML y CSS, así como, extensiones de JavaScript adicionales.

Es el proyecto más popular en GitHub y hace que el desarrollo de las aplicaciones web sea más rápido y fácil. Se creó para personas con todos los niveles de destrezas, dispositivos de todo tipo y proyectos de todos los tamaños.

En esta ocasión lo que nos interesa de Bootstrap es su colección de iconos, que utilizaremos para personalizar los marcadores de Leaflet:

glyphicons

Para poder insertar los iconos que nos proporciona Bootstrap en el mapa nos serviremos del plugin Leaflet.awesome-markers. Veamos cómo hacerlo.

Incluyendo Bootstrap en Leaflet

En primer lugar debemos insertar en nuestro código las referencias a  Bootstrap. Esto lo podemos hacer de dos formas :

  1. Descargando el código CSS y JavaScript, para lo cual deberemos acudir a la página de Bootstrap http://getbootstrap.com/
  1. Utilizar la CDN de Bootstrap. La empresa NetDNA aloja de forma gratuita en su CDN (Content Delivery Network) una copia de los archivos CSS y JavaScript de Bootstrap. Este será el método que utilizaremos.
<!-- Bootstrap --> 
<code class="language-html" data-lang="html"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<code class="language-css" data-lang="css">@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css");

Incluyendo el plugin Leaflet.awesome-markers en Leaflet

Utilizar Leaflet.awesome-markers es sencillo. Basta con descargar los archivos e incluir la referencia a leaflet.awesome-markers.css y leaflet.awesome-markers.js en una página HTML de Leaflet:

<!-- Plugin Leaflet.awesome-markers --> 
<link rel="stylesheet" href="../dist/leaflet.awesome-markers.css"> 
<script src="../dist/leaflet.awesome-markers.js"></script>

Una vez creadas las referencias a  Bootstrap y a Leaflet.awesome-marker, procederemos a insertar los marcadores en nuestro mapa. Para ello utilizaremos la clase L.marker, con la que definiremos las coordenadas de los puntos y a continuación daremos las opciones de los iconos.

L.marker([40.96618, -5.66237], {icon: L.AwesomeMarkers.icon({
      icon: 'refresh', 
      prefix: 'glyphicon', 
      markerColor: 'red', 
      spin:true}) 
     }).addTo(map);

    L.marker([40.96187, -5.66814], {icon: L.AwesomeMarkers.icon({
      icon: 'bell', 
      prefix: 'glyphicon', 
      markerColor: 'red'}) 
    }).addTo(map);

    L.marker([40.96588, -5.66814], {icon: L.AwesomeMarkers.icon({
      icon: 'tree-deciduous', 
      prefix: 'glyphicon', 
      markerColor: 'purple'}) 
    }).addTo(map);

    L.marker([40.96487, -5.66407], {icon: L.AwesomeMarkers.icon({
      icon: 'leaf', 
      prefix: 'glyphicon', 
      markerColor: 'green',
      spin:true}) 
    }).addTo(map);

    L.marker([40.96785, -5.66926], {icon: L.AwesomeMarkers.icon({
      icon: 'header', 
      prefix: 'glyphicon', 
      markerColor: 'blue', 
      iconColor: 'black'}) 
    }).addTo(map);

    L.marker([40.96387, -5.66616], {icon: L.AwesomeMarkers.icon({
      icon: 'plus-sign', 
      prefix: 'glyphicon', 
      markerColor: 'orange'}) 
    }).addTo(map);

Las opciones que hemos utilizado son:

  • icon: Nombre del icono (ej: ‘bell’, ‘leaf’,…) en el catálogo de Bootstrap. El valor por defecto es ‘home’.
  • prefix: Cuando utilizamos un icono de  Bootstrap es ‘glyphicon’. Si utilizásemos un icono de font-awesome sería ‘fa’.
  • markerColor: Color del marcador. Los valores posibles son : ‘red’, ‘darkred’, ‘orange’, ‘green’, ‘darkgreen’, ‘blue’, ‘purple’, ‘darkpuple’, ‘cadetblue’. Valor por defecto: ‘blue’.
  • iconColor: Color del icono. Valores posibles: ‘white’, ‘black’ o las de los estilos css (hex, rgba etc). Valor por defecto:  ‘white’.
  • spin: Hace que el icono gire. El valor por defecto es false.

Clic en la imagen para ver en vivo.

Si quieres aprender a crear visores web con Leaflet, inscríbete ya a nuestro curso online de webmapping interactivo con Leaflet.