Tiendas en el Mapa: Geo-Localizaciones, Colores por Tipo y Búsqueda Cercana

NUEVO

Las tiendas de los jugadores ahora aparecen como pines de colores en el mapa mundial 2D. Cada tienda tiene una ubicación geográfica y un tipo — para que puedas ver de un vistazo dónde se encuentran las ferreterías, tiendas de comida, gimnasios y otros negocios alrededor del mundo.

Mejor aún: ahora puedes buscar tiendas cerca de tu ubicación por radio. ¿Buscas un gimnasio a menos de 50 km? Solo escribe la distancia, elige una categoría y pulsa buscar.

Tipos de Tienda y Colores

Cada propietario de tienda elige un tipo al crear o editar su tienda. Cada tipo tiene su propio color e icono en el mapa:

🔧 Hardware
🍎 Comida
🛠️ Servicios
💾 Digital
👕 Ropa
🎨 Arte
💪 Fitness
📚 Educación
💼 Consultoría
📍 Otro
◆ General

Pines en el Mapa

Cuando abres el mapa mundial, las tiendas con una ubicación establecida aparecen como pines de colores. Pasa el cursor sobre un pin para ver:

  • Nombre y tipo de tienda
  • Breve descripción
  • Moneda (CC o KC)
  • Número de productos

Haz clic en un pin para ir directamente a esa tienda y explorar sus productos.

Los pines usan la misma proyección geoNaturalEarth1 que las formas pre-renderizadas de los países, por lo que se alinean perfectamente con el mapa. Escalan automáticamente cuando haces zoom in o out.

Búsqueda Cercana

En el panel de tiendas, encontrarás una nueva barra de búsqueda ”📍 Cerca de mí”:

  1. Elige una categoría — p. ej., Fitness, Comida, Hardware, o “Todos los tipos”
  2. Define el radio — en kilómetros (por defecto: 50 km)
  3. Haz clic en Buscar — el sistema encuentra todas las tiendas de ese tipo dentro de tu radio

La búsqueda usa la ubicación de tu país de origen por defecto. Si tu navegador es compatible con la geolocalización, también puedes usar tu posición GPS real para obtener resultados más precisos.

Los resultados muestran el nombre de cada tienda, tipo, moneda, número de productos y distancia en kilómetros. Haz clic en un resultado para cambiar a esa tienda al instante.

Tras bambalinas, la búsqueda usa la fórmula de Haversine — el mismo cálculo de distancia de círculo máximo usado en navegación — para calcular distancias precisas entre tu ubicación y cada tienda geo-localizada.

Para Propietarios de Tiendas

Si eres propietario de una tienda, ahora puedes establecer tu ubicación y tipo de tienda:

  1. Abre Mi Tienda en el panel de tiendas
  2. Haz clic en tu tienda para ver la vista de detalle
  3. Haz clic en ”📍 Establecer Ubicación” (o “Actualizar Ubicación” si ya tienes una)
  4. Haz clic en el mini-mapa para establecer la posición de tu tienda
  5. Elige un tipo de tienda en el selector codificado por colores
  6. Haz clic en Guardar

Tu tienda aparecerá inmediatamente como un pin de colores en el mapa mundial, y otros jugadores pueden encontrarte mediante la búsqueda cercana.

También puedes establecer la ubicación y el tipo durante la creación de la tienda — el formulario ahora incluye ambos campos.

Cómo Funciona por Dentro

🌍 Geo-Coordenadas en la Base de Datos
La tabla shop_channels ahora almacena las columnas lat, lng, y shop_type. La migración se ejecuta automáticamente al iniciar el servidor — no se necesitan cambios manuales en la base de datos.

📡 Dos Nuevos Endpoints de API
GET /shop/map-pins devuelve todas las tiendas activas con coordenadas geográficas para el renderizado del mapa. GET /shop/nearby?lat=&lng=&radius_km=&category= realiza la búsqueda por radio con un pre-filtro de bounding-box y un cálculo preciso de distancia mediante la fórmula de Haversine.

🗺️ Coincidencia de Proyección
El mapa 2D usa rutas SVG pre-renderizadas a partir de una proyección geoNaturalEarth1. Los pines de las tiendas usan la misma proyección en tiempo de ejecución para convertir lat/lng a coordenadas SVG, garantizando una alineación perfecta con las fronteras de los países.

Lo Que Viene Después

Esta versión añade la base para el comercio geo-consciente en ENLIGHTENMENT. Las futuras mejoras incluyen:

  • Agrupación de tiendas en niveles de zoom altos (agrupar pines cercanos)
  • Planificación de rutas — ver cómo viajar a una tienda física
  • Reseñas y valoraciones de tiendas
  • Tiendas destacadas en el mapa
  • Directorios de tiendas por región

ENLIGHTENMENT es un juego basado en blockchain de crecimiento personal, exploración arquetípica y resonancia colectiva. Únete en getplasma.org.