Marcadores avanzados en mapas con Extensions for Leaflet Map

Jesús Yesares-García

12 de mayo de 2026
destacada marcadores avanzados leaflet map

En el artículo anterior vimos cómo personalizar marcadores con Leaflet Map: iconos propios, tooltips, popups con HTML y marcadores con Font Awesome usando [leaflet-extramarker].

En este artículo vamos a dar un paso más con el plugin Extensions for Leaflet Map: clustering para mapas con muchos puntos, listas de marcadores navegables y marcadores desde archivos GeoJSON.

Si todavía no tienes el plugin instalado, ve a Plugins > Añadir nuevo, busca Extensions for Leaflet Map e instálalo. Necesitas tener Leaflet Map instalado y activo previamente.

Clustering con [cluster]

Cuando tienes muchos marcadores en el mapa, el clustering es una técnica que permite agrupar los puntos cercanos en un único elemento que muestra el número de marcadores que contiene. Al hacer zoom, los clusters se separan hasta mostrar los marcadores individuales.

01 clustering agrupados
Clusters de marcadores agrupados

Imagina que tienes que mostrar ocho monumentos de Granada en tu mapa. ¿Qué pasará cuando el usuario se aleje tanto que se vea un único punto? Especialmente, si tenemos otro grupo de monumentos en otra ciudad, este problema hará que no sepamos cuántos puntos de interés hay en cada una de las ciudades y, mucho menos, que podamos distinguirlos entre sí. Pues para facilitar esta información se utiliza esta técnica. Veamos este ejemplo:

[leaflet-map zoom=14 lat=37.18 lng=-3.59]

[leaflet-marker lat=37.1760 lng=-3.5880 title="Alhambra"]Alhambra[/leaflet-marker]
[leaflet-marker lat=37.1767 lng=-3.5994 title="Catedral de Granada"]Catedral de Granada[/leaflet-marker]
[leaflet-marker lat=37.1771 lng=-3.5902 title="Museo de la Alhambra"]Museo de la Alhambra[/leaflet-marker]
[leaflet-marker lat=37.1804 lng=-3.5862 title="Jardines del Generalife"]Jardines del Generalife[/leaflet-marker]
[leaflet-marker lat=37.1805 lng=-3.5918 title="Palacio de Carlos V"]Palacio de Carlos V[/leaflet-marker]
[leaflet-marker lat=37.1811 lng=-3.5975 title="Monasterio de San Jerónimo"]Monasterio de San Jerónimo[/leaflet-marker]
[leaflet-marker lat=37.1823 lng=-3.5889 title="Museo Arqueológico"]Museo Arqueológico de Granada[/leaflet-marker]
[leaflet-marker lat=37.1779 lng=-3.5943 title="Capilla Real"]Capilla Real[/leaflet-marker]

[cluster]
02 clustering zoom
Comportamiento de los clusters de marcadores al hacer zoom

El shortcode [cluster] va siempre al final, después de todos los marcadores. Éste será el que de la orden de agruparlos en cuanto no sea eficiente mostrarlos a la vez.

Controlar el radio del cluster

Este shortcode ([cluster]) tiene un parámetro (maxClusterRadius) que permite controlar el radio del cluster:

[cluster maxClusterRadius=40]

Con maxClusterRadius=40 los clusters son más pequeños y se separan antes al hacer zoom. El valor por defecto es 80.

03 clustering cambio radio cluster
Vemos cómo los marcadores se desagregan antes al reducir el radio de cluster.

Desactivar el clustering a partir de un nivel de zoom

También podríamos desactivar el clustering a partir de un nivel determinado de zoom:

[cluster disableClusteringAtZoom=15]

En este caso, a partir del zoom 15 los marcadores se muestran individualmente aunque estén cerca.

cluster disable clustering at zoom
Al añadir disableClusteringAtZoom con el valor 15, al llegar a este valor, deja de funcionar la agrupación de marcadores.

Otros parámetros

Otros parámetros que podríamos utilizar para mejorar nuestros clusters serían los siguientes:

  • showCoverageOnHover: muestra el área que cubre el cluster al pasar el ratón (1/0, por defecto 1). Puede ser útil, aunque también puede confundir un poco porque se ve como una especie de polígono, que representa los límites que circunscriben a los marcadores.
  • zoomToBoundsOnClick: hace zoom al área del cluster al hacer clic (1/0, por defecto 1).
  • spiderfyOnMaxZoom: en el zoom máximo, despliega los marcadores en espiral para ver todos (1/0, por defecto 1)

💡 [cluster] también funciona con [leaflet-gpx], [leaflet-kml] y [leaflet-geojson], no solo con [leaflet-marker].

Estrategias de despliegue con [placementstrategies]

Puede ocurrir que varios marcadores se encuentren exactamente en el mismo punto geográfico. En este caso, el clustering estándar los solaparía aunque hagas zoom al máximo. Para darle solución a este problema, [placementstrategies] controla cómo se distribuyen visualmente esos marcadores cuando se despliega el cluster.

Veamos un ejemplo que quizá se entienda un poco mejor:

[leaflet-map zoom=14 lat=37.18 lng=-3.59]

[leaflet-marker lat=37.1760 lng=-3.5880 title="Marcador 1"]Marcador 1[/leaflet-marker]
[leaflet-marker lat=37.1760 lng=-3.5880 title="Marcador 2"]Marcador 2[/leaflet-marker]
[leaflet-marker lat=37.1760 lng=-3.5880 title="Marcador 3"]Marcador 3[/leaflet-marker]
[leaflet-marker lat=37.1760 lng=-3.5880 title="Marcador 4"]Marcador 4[/leaflet-marker]
[leaflet-marker lat=37.1760 lng=-3.5880 title="Marcador 5"]Marcador 5[/leaflet-marker]
[leaflet-marker lat=37.1760 lng=-3.5880 title="Marcador 6"]Marcador 6[/leaflet-marker]
[leaflet-marker lat=37.1760 lng=-3.5880 title="Marcador 7"]Marcador 7[/leaflet-marker]
[leaflet-marker lat=37.1760 lng=-3.5880 title="Marcador 8"]Marcador 8[/leaflet-marker]
[leaflet-marker lat=37.1760 lng=-3.5880 title="Marcador 9"]Marcador 9[/leaflet-marker]

[placementstrategies elementsPlacementStrategy="default" maxClusterRadius=40]

Como podemos ver, todos los marcadores están ubicados justo en el mismo punto. Esto hace que solo se pueda ver uno. Al establecer la estrategia de ubicación con placementstrategies, aparece un cluster con todos los marcadores agrupados.

placementstrategies agrupado
Cluster de marcadores agrupado.

Pero, al hacer clic, los marcadores se desplegarán con la estrategia que hayamos elegido. En este ejemplo hemos elegido la estrategia por defecto, que es una especie de espiral. Esto no quiere decir que los marcadores estén ubicados formando esa espiral, sino que es una forma de verlo más «amigable».

placementstrategies desagrupado
Cluster de marcadores desagrupado en espiral.

Este comando también lo puedes utilizar con [leaflet-extramarker].

Como siempre, los valores por defecto de cada parámetro los podrás configurar en Ajustes > Leaflet Map > Extensions for Leaflet Map y podrás sobreescribirlos en el shortcode de cada mapa.

Marcadores desde GeoJSON con [geojsonmarker]

Añadir marcadores con [leaflet-marker] o con [leaflet-extramarker] está muy bien para cuatro o cinco marcadores, diez echándole paciencia. Pero si has trabajado alguna vez con un GIS, sabrás lo cómodo que es generar datos desde este tipo de software, gestionarlos y exportarlos posteriormente a formatos compatibles como es el formato GeoJSON.

Pero no te preocupes, si no has tenido nunca contacto con un GIS, o ni siquiera sabes de lo que te estoy hablando, hay alternativas muy cómodas. Antes de nada, que sugiero que leas este artículo para saber qué es un GIS. Y, si no necesitas una herramienta tan avanzada, te puede servir geojson.io, una herramienta online que nos permite pintar puntos, polígonos, etc, asociarles datos a cada uno de ellos tal y como haríamos con un GIS, y generar un GeoJSON que podremos importar a nuestro WordPress para mostrar datos más complejos.

Por tanto, como decíamos, si tienes datos en formato GeoJSON, [geojsonmarker] permite diferenciar visualmente los marcadores según las propiedades de cada feature, sin definir cada punto con un shortcode independiente. Lo cual nos ahorra muchos dolores de cabeza.

Para seguir este ejemplo, sube el archivo monumentos-granada.geojson a tu WordPress (en Medios > Añadir nuevo) y copia la URL que te asigna.

⚠️ Seguramente tendrás que usar un plugin para permitir subir nuevos tipos de archivo como WP Add Mime Types.

El archivo tiene ocho monumentos incluidos con una propiedad Tipo que toma los valores: monumento, iglesia, museo y jardin. Esto nos va a permitir diferenciar los marcadores por tipos, de la siguiente forma:

[leaflet-map fitbounds]

[leaflet-geojson src="https://tudominio.com/wp-content/uploads/monumentos-granada.geojson"]{name}[/leaflet-geojson]

[geojsonmarker property=Tipo auto]
marcadores geojson 1
Marcadores agrupados con el filtro de categorías activado.

Con auto, el plugin asigna colores diferentes a cada valor de la propiedad Tipo sin que tengas que definirlos. Funciona hasta 16 valores distintos para marcadores estándar y 14 para ExtraMarkers.

Pero ahora veamos un ejemplo con los colores definidos manualmente:

[leaflet-map fitbounds]

[leaflet-geojson src="https://guorpre.com/wp-content/uploads/2026/04/monumentos-granada.geojson"]{Texto}[/leaflet-geojson]

[geojsonmarker property=Tipo values="Monumento,Iglesia,Museo,Jardín" iconprops="red,blue,green,orange" groups="Monumento,Iglesia, Museo,Jardín" icondefault=blue]
marcadores geojson 2
Mapa con el filtro de categorías activado.

Si queremos controlar los grupos y mostrar u ocultar categorías, haremos lo siguiente:

[leaflet-map fitbounds]

[leaflet-geojson src="https://tudominio.com/wp-content/uploads/monumentos-granada.geojson"]{name}[/leaflet-geojson]

[geojsonmarker property=tipo values="monumento,iglesia,museo,jardin" iconprops="red,blue,green,orange" icondefault=blue groups="Monumentos,Iglesias,Museos,Jardines" visible=1,1,1,1 position=topright]

Con groups aparece un control en el mapa que permite al usuario mostrar u ocultar cada categoría. visible define cuáles están visibles al cargar (1 visible, 0 oculto).

marcadores geojson 3
En este caso, se han seleccionado algunas categorías y el resto quedan agrupadas como «otras».

Tienes un montón de puntos en el GeoJSON y quieres añadir clustering. Pues es tan fácil como seguir los pasos que ya vimos anteriormente para los marcadores habituales.

[leaflet-map fitbounds]

[leaflet-geojson src="https://tudominio.com/wp-content/uploads/monumentos-granada.geojson"]{name}[/leaflet-geojson]

[geojsonmarker property=tipo auto maxClusterRadius=60]
marcadores geojson 4
Aquí directamente queda el grupo que muestra el resto de categorías agrupadas.

Los parámetros de [cluster] los puedes añadir perfectamente al shortcode [geojsonmarker].

Lista de marcadores con [listmarker]

El comando [listmarker] genera un panel junto al mapa con los títulos de los marcadores. Al hacer clic en un elemento de la lista, el mapa se centra en ese marcador y abre su popup, lo cual puede ayudar a que el usuario no se pierda en el mapa. Aunque no conviene utilizarlo si la lista es extremadamente larga.

⚠️ El parámetro title es obligatorio en [leaflet-marker] y [leaflet-extramarker] para que el marcador aparezca en la lista. Sin title, el marcador no se incluye.

Veamos un ejemplo de cómo funciona [listmarker]:

[leaflet-map zoom=14 lat=37.18 lng=-3.59]

[leaflet-marker lat=37.1760 lng=-3.5880 title="Alhambra"]Alhambra[/leaflet-marker]
[leaflet-marker lat=37.1767 lng=-3.5994 title="Catedral de Granada"]Catedral de Granada[/leaflet-marker]
[leaflet-marker lat=37.1771 lng=-3.5902 title="Museo de la Alhambra"]Museo de la Alhambra[/leaflet-marker]
[leaflet-marker lat=37.1804 lng=-3.5862 title="Jardines del Generalife"]Jardines del Generalife[/leaflet-marker]

[listmarker]
listmarker 01
Lista de marcadores activa

Ahora imagina que queremos mostrar la lista colapsada por defecto y el hover activado. Solo tendrás que añadir estos dos atributos a [listmarker]:

[listmarker collapse=true hover=true]

Con hover=true, al pasar el ratón por un elemento de la lista el mapa resalta ese marcador sin necesidad de hacer clic.

listmarker 02
Lista de marcadores collapsada.

Si usas [cluster], ten en cuenta que el shortcode debe ir después de [listmarker]:

[leaflet-map zoom=14 lat=37.18 lng=-3.59]

[leaflet-marker lat=37.1760 lng=-3.5880 title="Alhambra"]Alhambra[/leaflet-marker]
[leaflet-marker lat=37.1767 lng=-3.5994 title="Catedral de Granada"]Catedral de Granada[/leaflet-marker]
[leaflet-marker lat=37.1771 lng=-3.5902 title="Museo de la Alhambra"]Museo de la Alhambra[/leaflet-marker]
[leaflet-marker lat=37.1804 lng=-3.5862 title="Jardines del Generalife"]Jardines del Generalife[/leaflet-marker]

[listmarker update=true]
[cluster]
listmarker 03
Lista de marcadores con los marcadores agrupados.

Con update=true (valor por defecto), la lista muestra solo los marcadores visibles en el viewport actual. Al hacer zoom o mover el mapa, la lista se actualiza.

Si estás utilizando GeoJSON, tendrás que especificar qué propiedad del archivo se usa como nombre en la lista:

[leaflet-map fitbounds]

[leaflet-geojson src="https://tudominio.com/wp-content/uploads/monumentos-granada.geojson"]{name}[/leaflet-geojson]

[listmarker propertyname=name]

Conclusión

Como has podido comprobar tanto en el anterior artículo como en éste, con Leaflet Map y Extensions for Leaflet Map tienes cubiertos prácticamente todos los escenarios habituales de marcadores para WordPress.

Ahora puedes llenar tus mapas de marcadores como un profesional. A lo loco…

Implementador WordPress, analista GIS y miembro de la comunidad WordPress España.

Deja un comentario

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. Para más información consulta nuestro <a href="/aviso-legal-y-proteccion-de-datos/">Aviso legal y protección de datos</a>