Simple Interactive Map self-updates
Plugin interactivo para WordPress que muestra mapas SVG con divisiones, puntos relevantes, información multimedia y tours.
by PRYW · github.com/pryw00/simple-interactive-map · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/pryw00/simple-interactive-map/archive/refs/heads/main.zipShips its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.
Simple Interactive Map - Plugin WordPress
Plugin de WordPress para crear mapas SVG interactivos con divisiones, puntos relevantes, videos de fondo y enlaces a posts.
- Versión actual: 1.4.6 (ver
simple-interactive-map.php) - Text domain:
simple-interactive-map - Repositorio: https://github.com/Pryw00/simple-interactive-map (antes
simple-iteractive-map)
Los valores de ejemplo del plugin (mini mapa "Ibarra", división
angochagua) provienen del proyecto para el cantón Ibarra.
📋 Características
- 🗺️ Mapa SVG Interactivo: Visualización de mapas divididos en secciones personalizables
- 🎯 Puntos Relevantes: Marcadores dentro de cada división con información adicional
- 🎬 Videos de Fondo: Video complementario para cada división y punto
- 📱 Responsive: Diseño adaptable a dispositivos móviles
- 🎨 Personalizable: Colores y estilos configurables
- ♿ Accesible: Soporte para navegación por teclado y lectores de pantalla
- 🌐 Multilingüe: Listo para traducción
🚀 Instalación
Desde un archivo ZIP
- Comprime la carpeta
simple-interactive-map(sin.git) ensimple-interactive-map.zip - En WordPress ve a Plugins > Añadir nuevo > Subir plugin, selecciona el ZIP y actívalo
- Ve a Interactive Map > Configuración para configurar el mapa
Instalación manual
- Descarga el plugin (
git clone https://github.com/Pryw00/simple-interactive-map.git) y sube la carpetasimple-interactive-mapa/wp-content/plugins/ - Activa el plugin desde el menú 'Plugins' en WordPress
- Ve a Interactive Map > Configuración para configurar el mapa
🚀 Cómo usar el plugin
1. Crear y configurar mapas
- Ve a Interactive Map > Mapas y crea un nuevo mapa. Cada mapa puede tener su propio SVG, colores y video de fondo.
- Sube un archivo SVG o pega el código SVG en el campo correspondiente. Asegúrate de que cada división tenga un ID único (ejemplo:
id="division1"). - Personaliza los colores de hover y selección, y el video de fondo predeterminado para ese mapa.
2. Crear divisiones para cada mapa
- Ve a Interactive Map > Divisiones.
- Selecciona el mapa en el selector superior.
- Haz clic en "Añadir Nueva División" o usa "Detectar Automáticamente" para crear divisiones a partir de los paths del SVG.
- Completa los campos requeridos para cada división.
3. Crear puntos relevantes (opcional)
- Ve a Interactive Map > Puntos Relevantes.
- Selecciona el mapa en el selector superior.
- Haz clic en "Añadir Nuevo Punto" y completa los campos (división, nombre, descripción, posición, video, enlace, icono).
4. Insertar el mapa en una página
Usa el shortcode:
[simple_interactive_map id="X"]
Donde X es el ID del mapa que quieres mostrar (lo puedes ver en la lista de mapas o en el selector de divisiones/puntos).
Puedes tener varios mapas en la misma página, cada uno con su propio shortcode e interactividad independiente.
📖 Uso
1. Configuración Inicial
Configurar el SVG del Mapa
- Ve a Interactive Map > Configuración
- Pega el código SVG de tu mapa en el campo "Contenido SVG del Mapa"
- Asegúrate de que cada división tenga un ID único (ejemplo:
id="angochagua",id="ibarra") - Configura el video de fondo predeterminado
- Personaliza los colores de hover y selección
- Guarda los cambios
Crear Divisiones
- Ve a Interactive Map > Divisiones
- Haz clic en "Añadir Nueva División"
- Completa los campos:
- Nombre: Nombre visible de la división (ej: "Angochagua")
- SVG Path ID: ID del path en el SVG (ej: "angochagua")
- Descripción: Texto descriptivo que aparecerá en el panel lateral
- URL del Video de Fondo: Video que se mostrará al seleccionar esta división
- Post Asociado: Post de WordPress que se enlazará con el botón "Vamos!"
- Orden de Visualización: Número para ordenar las divisiones
- Guarda la división
Crear Puntos Relevantes (Opcional)
- Ve a Interactive Map > Puntos Relevantes
- Haz clic en "Añadir Nuevo Punto"
- Completa los campos:
- División: Selecciona a qué división pertenece
- Nombre: Nombre del punto
- Descripción: Información sobre el punto
- Posición X e Y: Coordenadas en porcentaje (0-100%)
- URL del Video: Video asociado al punto
- Enlace: URL opcional para más información
- Tipo de Icono: Estilo visual del marcador (predeterminado, marcador, estrella, pin, o SVG personalizado)
- SVG Personalizado: Si seleccionas "SVG Personalizado" como tipo de icono, puedes seleccionar o subir un archivo SVG desde la biblioteca de medios que se mostrará como marcador del punto
- Guarda el punto
2. Insertar el Mapa
Usa el shortcode en cualquier página o entrada:
[simple_interactive_map]
Parámetros opcionales:
[simple_interactive_map width="100%" height="auto"]
🎨 Estructura del Plugin
simple-interactive-map/
├── simple-interactive-map.php # Archivo principal
├── includes/ # Clases principales
│ ├── class-simple-interactive-map.php
│ ├── class-loader.php
│ ├── class-activator.php
│ ├── class-deactivator.php
│ └── class-updater.php # Migraciones / auto-reparación de tablas
├── assets/
│ ├── example-map.svg
│ └── fonts/
├── admin/ # Backend (Panel de administración)
│ ├── class-admin.php
│ ├── css/
│ │ └── admin.css
│ ├── js/
│ │ └── admin.js
│ └── partials/
│ ├── settings-page.php
│ ├── maps-page.php
│ ├── divisions-page.php
│ └── points-page.php
└── public/ # Frontend (Visualización pública)
├── class-public.php
├── css/
│ └── public.css
└── js/
└── public.js
🔧 Requisitos del Sistema
- WordPress 6.0 o superior
- PHP 7.4 o superior
- MySQL 5.7 o superior
💾 Base de Datos
El plugin crea dos tablas personalizadas:
wp_sim_divisions
Almacena las divisiones del mapa:
id: ID úniconame: Nombre de la divisiónsvg_path_id: ID del path SVGdescription: Descripciónvideo_url: URL del videopost_id: ID del post asociadodisplay_order: Orden de visualización
wp_sim_points
Almacena los puntos relevantes:
id: ID únicodivision_id: ID de la división padrename: Nombre del puntodescription: Descripciónposition_x: Posición horizontal (%)position_y: Posición vertical (%)video_url: URL del videolink_url: Enlace externoicon_type: Tipo de icono (default, marker, star, pin, custom)custom_svg: URL del archivo SVG personalizado para el iconodisplay_order: Orden de visualización
🎯 Funcionalidades Principales
Frontend
Mapa Interactivo
- Hover sobre divisiones con efecto visual
- Click para seleccionar y ver información
- Mini mapa de referencia en la esquina superior derecha
- Video de fondo dinámico
Panel de Información
- Se desliza desde la izquierda al seleccionar una división
- Muestra nombre, descripción y botón "Vamos!"
- Enlaza al post de tours asociado
Puntos Relevantes
- Marcadores animados sobre el mapa
- Modal con información al hacer clic
- Video de fondo específico para cada punto
Backend
Panel de Configuración
- Subir/editar SVG del mapa
- Configurar videos predeterminados
- Personalizar colores
Gestión de Divisiones
- CRUD completo (Crear, Leer, Actualizar, Eliminar)
- Interfaz intuitiva con modales
- Selector de videos desde biblioteca de medios
Gestión de Puntos
- Asociar puntos a divisiones
- Posicionamiento mediante coordenadas porcentuales
- Múltiples tipos de iconos
🔐 Seguridad
- Validación y sanitización de todos los inputs
- Verificación de nonces en todas las peticiones AJAX
- Comprobación de capacidades de usuario
- Sanitización de SVG para prevenir XSS
🌍 Internacionalización
El plugin está preparado para traducción con:
- Text Domain:
simple-interactive-map - Domain Path:
/languages
Todas las cadenas de texto están envueltas en funciones de traducción:
__()para traducciones_e()para echo de traduccionesesc_html__()yesc_attr__()para traducciones con escape
🎨 Personalización
CSS Personalizado
Puedes agregar CSS personalizado en tu tema:
/* Cambiar el color del mini mapa */
.sim-minimap {
background: #your-color;
}
/* Personalizar botones */
.sim-btn-primary {
background: #your-color;
}
JavaScript Personalizado
Accede a las funciones del mapa:
// Seleccionar una división programáticamente
window.simMap.selectDivision("division-id", "svg-path-id");
// Cerrar el panel de información
window.simMap.closeInfoPanel();
// Cerrar modales
window.simMap.closeModal();
🐛 Solución de Problemas
El mapa no se muestra
- Verifica que el SVG esté correctamente configurado
- Asegúrate de que cada división tenga un ID único
- Revisa la consola del navegador para errores JavaScript
Los videos no se reproducen
- Verifica que las URLs sean correctas y accesibles
- Asegúrate de que los videos estén en formato MP4
- Comprueba que los videos estén optimizados para web
Las divisiones no son clickeables
- Verifica que el SVG Path ID coincida exactamente con el ID en el SVG
- Asegúrate de que el SVG tenga elementos
<path>con IDs únicos - Comprueba que no haya errores de JavaScript en la consola
📝 Changelog
El detalle siguiente llega hasta v1.1.0. Hitos posteriores (según el historial de Git):
- 1.4.6 (2026-02-10) — Versión actual; ajustes de estilos y ancho máximo del diálogo (1.4.5).
- 1.4.0 (2026-02-10) — Sistema de auto-reparación de tablas de base de datos; opciones de fondo para puntos relevantes.
- 2026-02-09 — Imagen y color de fondo para el mapa interactivo.
- 1.1.2 (2026-01-27) — La URL del SVG usa HTTPS cuando la página está en HTTPS.
Versión 1.1.0
- Agregada capacidad de usar archivos SVG personalizados para puntos relevantes desde la biblioteca de medios
- Reducción del tamaño de puntos relevantes en 40% para mejor visualización
- Mejoras en la interfaz de administración para puntos relevantes
- Soporte nativo para subir archivos SVG a WordPress
- Actualización automática de base de datos para instalaciones existentes
Versión 1.0.0
- Lanzamiento inicial
- Mapa SVG interactivo
- Panel de administración completo
- Gestión de divisiones y puntos relevantes
- Integración con videos de fondo
- Diseño responsive
👨💻 Desarrollo
Estructura de Clases
Backend separado del Frontend:
Simple_Interactive_Map_Admin: Gestiona toda la funcionalidad del panel de administraciónSimple_Interactive_Map_Public: Gestiona la visualización y funcionalidad pública
Sistema de Hooks:
Simple_Interactive_Map_Loader: Registra todos los hooks de WordPress
AJAX Endpoints
Admin
sim_save_division: Guardar divisiónsim_delete_division: Eliminar divisiónsim_save_point: Guardar puntosim_delete_point: Eliminar punto
Public
sim_get_division_data: Obtener datos de divisiónsim_get_point_data: Obtener datos de punto
📄 Licencia
GPL-2.0+
🤝 Soporte
Para reportar bugs o solicitar nuevas funcionalidades, abre un issue en https://github.com/Pryw00/simple-interactive-map/issues
🛠️ Empaquetado
No hay proceso de compilación. Para generar el ZIP instalable:
# desde la carpeta padre
zip -r simple-interactive-map.zip simple-interactive-map -x "simple-interactive-map/.git/*"
📦 Repositorio
https://github.com/Pryw00/simple-interactive-map
🎉 Créditos
Desarrollado por Wilson Yépez (PRYW) — @Pryw00