Download the PHP package lbcdev/filament-map-field without Composer
On this page you can find all versions of the php package lbcdev/filament-map-field. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package filament-map-field
Filament Map Field
Un paquete de Filament que proporciona componentes de campo de mapa para formularios e infolists, utilizando el componente Livewire lbcdev-map.
✨ Compatible con Filament v3 y v4 - Actualiza sin preocupaciones, sin cambios en tu código.
✨ Características
- 🗺️ MapField para formularios Filament (selección de puntos interactiva)
- 📋 MapEntry para infolists Filament (visualización de puntos)
- 📐 MapBoundsField para formularios Filament (selección de áreas rectangulares)
- 📊 MapBoundsEntry para infolists Filament (visualización de áreas)
- 🎯 Integración perfecta con el componente Livewire lbcdev-map
- 📍 Soporte para campos de latitud/longitud separados
- 🔄 Soporte para campos JSON anidados (v1.1.0+) - Usa notación de punto:
'ubicacion.latitud' - ⚡ Actualización reactiva de coordenadas
- 🎨 Compatible con el tema de Filament
- 🔧 Altamente configurable
- ✨ Compatible con Filament v3 y v4 - Sin cambios necesarios al actualizar
📋 Requisitos
- PHP 8.1+ (PHP 8.2+ recomendado para Filament v4)
- Laravel 10.x, 11.x o 12.x
- Filament 3.x o 4.x ✨
- Livewire 3.x
- lbcdev/livewire-map-component ^1.0
Nota: Este paquete es compatible con Filament v3 y v4. No necesitas hacer cambios en tu código al actualizar de Filament v3 a v4.
📦 Instalación
1. Instalar el paquete via Composer
2. Incluir Leaflet.js en tu layout
El paquete depende de lbcdev/livewire-map-component, que requiere Leaflet.js. Agrega estos scripts en el <head> de tu layout principal:
Nota: Leaflet Draw solo es necesario si vas a usar
MapBoundsFieldpara seleccionar áreas rectangulares. Si solo usasMapFieldpara puntos, no es necesario incluirlo.
Con Filament v4 puedes usar un hook para incluir los tags de Leaflet. Agrega el siguiente código a tu archivo app/Providers/Filament/AdminPanelProvider.php:
3. (Opcional) Publicar las vistas
Si deseas personalizar las vistas del componente:
Las vistas se publicarán en resources/views/vendor/filament-map-field/.
🚀 Uso
MapField en Formularios
El componente MapField permite a los usuarios seleccionar coordenadas de forma interactiva en un formulario.
Uso básico
Con todas las opciones
Modo de solo lectura
Ejemplo completo en un Resource
⚠️ Importante: Uso con Notación de Punto (JSON)
Cuando uses notación de punto para campos JSON anidados, el primer parámetro de make() debe coincidir con el campo padre:
Modelo con campo JSON:
Migración:
MapEntry en Infolists
El componente MapEntry muestra las coordenadas en un mapa de solo lectura en infolists.
Uso básico de MapEntry
Con opciones
Ejemplo completo de un Resource
MapBoundsField en Formularios
El componente MapBoundsField permite a los usuarios seleccionar áreas rectangulares de forma interactiva en un formulario.
Uso básico
Con todas las opciones
Con campos JSON anidados
Nota: Al igual que con
MapField, cuando uses notación de punto, el primer parámetro demake()debe coincidir con el campo padre JSON. Ver la sección "⚠️ Importante: Uso con Notación de Punto" arriba para más detalles.
MapBoundsEntry en Infolists
El componente MapBoundsEntry muestra áreas rectangulares en un mapa de solo lectura en infolists.
Uso básico
Con opciones
🎨 Métodos Disponibles
MapField (Forms)
| Método | Descripción | Default |
|---|---|---|
latitude(string $field) |
Campo donde se guardará la latitud. Soporta notación de punto para JSON: 'ubicacion.latitud' |
null |
longitude(string $field) |
Campo donde se guardará la longitud. Soporta notación de punto para JSON: 'ubicacion.longitud' |
null |
height(int $height) |
Altura del mapa en píxeles | 400 |
zoom(int $zoom) |
Nivel de zoom inicial (1-20) | 15 |
showPasteButton(bool $show = true) |
Mostrar botón para pegar coordenadas | false |
showLabel(bool $show = true) |
Mostrar etiqueta con coordenadas | true |
interactive(bool $interactive = true) |
Permitir interacción con el mapa | true |
readOnly(bool $condition = true) |
Hacer el mapa de solo lectura (alias de interactive(false)) |
false |
MapEntry (Infolists)
| Método | Descripción | Default |
|---|---|---|
latitude(string $field) |
Campo de donde leer la latitud. Soporta notación de punto para JSON: 'ubicacion.latitud' |
null |
longitude(string $field) |
Campo de donde leer la longitud. Soporta notación de punto para JSON: 'ubicacion.longitud' |
null |
height(int $height) |
Altura del mapa en píxeles | 300 |
zoom(int $zoom) |
Nivel de zoom inicial (1-20) | 15 |
showLabel(bool $show = true) |
Mostrar etiqueta con coordenadas | true |
MapBoundsField (Forms)
| Método | Descripción | Default |
|---|---|---|
southWestLat(string $field) |
Campo para latitud suroeste. Soporta notación de punto: 'bounds.sw_lat' |
null |
southWestLng(string $field) |
Campo para longitud suroeste. Soporta notación de punto: 'bounds.sw_lng' |
null |
northEastLat(string $field) |
Campo para latitud noreste. Soporta notación de punto: 'bounds.ne_lat' |
null |
northEastLng(string $field) |
Campo para longitud noreste. Soporta notación de punto: 'bounds.ne_lng' |
null |
height(int $height) |
Altura del mapa en píxeles | 400 |
zoom(int $zoom) |
Nivel de zoom inicial (1-20) | 13 |
showLabel(bool $show = true) |
Mostrar etiqueta con coordenadas de los límites | true |
defaultCenter(float $lat, float $lng) |
Centro por defecto del mapa | [36.9990019, -6.5478919] |
MapBoundsEntry (Infolists)
| Método | Descripción | Default |
|---|---|---|
southWestLat(string $field) |
Campo de donde leer latitud suroeste. Soporta notación de punto: 'bounds.sw_lat' |
null |
southWestLng(string $field) |
Campo de donde leer longitud suroeste. Soporta notación de punto: 'bounds.sw_lng' |
null |
northEastLat(string $field) |
Campo de donde leer latitud noreste. Soporta notación de punto: 'bounds.ne_lat' |
null |
northEastLng(string $field) |
Campo de donde leer longitud noreste. Soporta notación de punto: 'bounds.ne_lng' |
null |
height(int $height) |
Altura del mapa en píxeles | 300 |
zoom(int $zoom) |
Nivel de zoom inicial (1-20) | 13 |
showLabel(bool $show = true) |
Mostrar etiqueta con coordenadas de los límites | true |
💡 Ejemplos Avanzados
Formulario con validación
Los componentes MapField y MapBoundsField soportan el método ->required() de forma nativa. Cuando se marca un campo como requerido, automáticamente valida que todos los campos anidados (latitud, longitud, límites) tengan valores.
Nota: El método
->required()funciona tanto en modo Create como Edit. La validación se aplica automáticamente a los campos anidados configurados con notación de punto.
Múltiples mapas en un formulario
Campos JSON anidados (v1.1.0+)
El paquete soporta guardar coordenadas en campos JSON anidados usando notación de punto. Esto es útil cuando quieres almacenar las coordenadas en una estructura JSON en lugar de campos separados.
Modo 1: Campos separados (tradicional)
Modo 2: Campo JSON anidado (nuevo)
Ventajas del modo JSON
- ✅ Agrupa coordenadas relacionadas en un solo campo
- ✅ Facilita la gestión de múltiples ubicaciones
- ✅ Permite nombres de campos personalizados (latitud/longitud, lat/lng, etc.)
- ✅ 100% retrocompatible con el modo tradicional
Ejemplo completo con JSON
🔧 Personalización
Publicar y personalizar vistas
Las vistas estarán disponibles en:
resources/views/vendor/filament-map-field/forms/components/map-field.blade.phpresources/views/vendor/filament-map-field/infolists/entries/map-entry.blade.php
🔄 Compatibilidad con Filament v3 y v4
Este paquete es totalmente compatible con Filament v3 y v4 sin necesidad de cambios en tu código.
¿Qué significa esto?
- ✅ Puedes usar este paquete con Filament v3
- ✅ Puedes usar este paquete con Filament v4
- ✅ Al actualizar de Filament v3 a v4, no necesitas cambiar nada en el código que usa este paquete
- ✅ El paquete detecta automáticamente la versión de Filament y se adapta
Requisitos según la versión de Filament
Para Filament v3
- PHP 8.1+
- Laravel 10.x o 11.x
- Tailwind CSS 3.x (si usas tema personalizado)
Para Filament v4
- PHP 8.2+
- Laravel 11.28+ o 12.x
- Tailwind CSS 4.x (si usas tema personalizado)
Actualización de Filament v3 a v4
Si estás actualizando tu proyecto de Filament v3 a v4:
- Actualiza Filament siguiendo la guía oficial de actualización
-
Actualiza las dependencias:
- ¡Listo! El paquete
filament-map-fieldseguirá funcionando sin cambios
No necesitas:
- ❌ Cambiar el código de tus Resources
- ❌ Modificar las llamadas a
MapFieldoMapEntry - ❌ Actualizar la sintaxis del paquete
Nota sobre Tailwind CSS
Si usas un tema personalizado en Filament, necesitarás actualizar Tailwind CSS de v3 a v4 al migrar a Filament v4. Esto es un requisito de Filament, no de este paquete específicamente.
Consulta la guía de actualización de Tailwind CSS v4 para más detalles.
🔄 Actualización del Paquete
Actualizar a una versión específica
Para actualizar el paquete a una versión específica usando tags de GitHub:
Usar una versión específica en composer.json
Puedes especificar la versión exacta en tu composer.json:
O usar un tag específico:
Verificar la versión instalada
Limpiar caché después de actualizar
Después de actualizar, es recomendable limpiar las cachés:
🐛 Solución de Problemas
Si encuentras problemas al usar el paquete, consulta la Guía de Solución de Problemas que incluye:
- ✅ El mapa no actualiza los campos del formulario
- ✅ El mapa no se muestra
- ✅ Problemas de estilos
- ✅ Errores comunes y sus soluciones
🤝 Créditos
Este paquete utiliza:
- lbcdev/livewire-map-component - Componente Livewire de mapas
- Leaflet.js - Biblioteca de mapas interactivos
- Filament - Framework de administración para Laravel
📄 Licencia
Este paquete es software de código abierto licenciado bajo la Licencia MIT.
🐛 Soporte
Si encuentras algún problema o tienes sugerencias:
👨💻 Autor
Desarrollado por Luinux81
All versions of filament-map-field with dependencies
filament/filament Version ^3.0|^4.0
illuminate/contracts Version ^10.0|^11.0|^12.0
lbcdev/livewire-map-component Version ^1.0
spatie/laravel-package-tools Version ^1.16