Lojas no Mapa: Geo-Localizações, Cores por Tipo e Pesquisa de Proximidade

NOVO

As lojas dos jogadores agora aparecem como pins coloridos no mapa-múndi 2D. Cada loja possui uma localização geográfica e um tipo — para que você possa ver num relance onde estão lojas de ferragens, alimentos, academias e outros negócios ao redor do mundo.

Ainda melhor: agora você pode pesquisar lojas perto da sua localização por raio. Procurando uma academia num raio de 50 km? Basta digitar a distância, escolher uma categoria e clicar em pesquisar.

Tipos de Loja e Cores

Cada proprietário de loja escolhe um tipo ao criar ou editar sua loja. Cada tipo tem sua própria cor e ícone no mapa:

🔧 Ferragens
🍎 Alimentos
🛠️ Serviços
💻 Digital
👕 Roupas
🎨 Arte
💪 Fitness
📚 Educação
💼 Consultoria
📍 Outros
◆ Geral

Pins no Mapa

Ao abrir o mapa-múndi, as lojas com localização definida aparecem como pins coloridos. Passe o mouse sobre um pin para ver:

  • Nome e tipo da loja
  • Breve descrição
  • Moeda (CC ou KC)
  • Número de produtos

Clique num pin para ir diretamente àquela loja e navegar pelos seus produtos.

Os pins usam a mesma projeção geoNaturalEarth1 das formas de países pré-renderizadas, portanto alinham-se perfeitamente com o mapa. Eles são redimensionados automaticamente ao ampliar ou reduzir o zoom.

Pesquisa de Proximidade

No painel de lojas, você encontrará uma nova barra de pesquisa ”📍 Perto de mim”:

  1. Escolha uma categoria — por exemplo, Fitness, Alimentos, Ferragens ou “Todos os tipos”
  2. Defina o raio — em quilômetros (padrão: 50 km)
  3. Clique em Pesquisar — o sistema encontra todas as lojas daquele tipo dentro do seu raio

A pesquisa usa a localização do seu país de origem por padrão. Se o seu navegador suportar geolocalização, você também pode usar a sua posição GPS real para resultados mais precisos.

Os resultados mostram o nome de cada loja, tipo, moeda, contagem de produtos e distância em quilômetros. Clique num resultado para mudar instantaneamente para essa loja.

Nos bastidores, a pesquisa usa a fórmula de Haversine — o mesmo cálculo de distância de grande círculo usado em navegação — para computar distâncias precisas entre a sua localização e cada loja geo-localizada.

Para Proprietários de Lojas

Se você possui uma loja, agora pode definir a sua localização e tipo de loja:

  1. Abra Minha Loja no painel de lojas
  2. Clique na sua loja para ver a vista de detalhes
  3. Clique em ”📍 Definir Localização” (ou “Atualizar Localização” se já tiver uma)
  4. Clique no mini-mapa para definir a posição da sua loja
  5. Escolha um tipo de loja no seletor codificado por cores
  6. Clique em Guardar

A sua loja aparecerá imediatamente como um pin colorido no mapa-múndi, e outros jogadores podem encontrá-lo através da pesquisa de proximidade.

Também pode definir a localização e o tipo durante a criação da loja — o formulário agora inclui ambos os campos.

Como Funciona nos Bastidores

🌍 Coordenadas Geográficas na Base de Dados
A tabela shop_channels agora armazena as colunas lat, lng e shop_type. A migração é executada automaticamente no arranque do servidor — não são necessárias alterações manuais na base de dados.

📡 Dois Novos Endpoints de API
GET /shop/map-pins retorna todas as lojas ativas com coordenadas geográficas para renderização no mapa. GET /shop/nearby?lat=&lng=&radius_km=&category= realiza a pesquisa por raio com um pré-filtro de caixa delimitadora e cálculo preciso de distância Haversine.

🗺️ Correspondência de Projeção
O mapa 2D usa caminhos SVG pré-renderizados a partir de uma projeção geoNaturalEarth1. Os pins das lojas usam a mesma projeção em tempo de execução para converter lat/lng em coordenadas SVG, garantindo alinhamento perfeito com as fronteiras dos países.

O Que Vem a Seguir

Esta versão adiciona a base para o comércio com consciência geográfica no ENLIGHTENMENT. Melhorias futuras incluem:

  • Agrupamento de lojas em níveis altos de zoom (agrupar pins próximos)
  • Planeamento de rotas — ver como viajar até uma loja física
  • Avaliações e classificações de lojas
  • Lojas em destaque no mapa
  • Diretórios de lojas por região

ENLIGHTENMENT é um jogo baseado em blockchain de crescimento pessoal, exploração arquetípica e ressonância coletiva. Junte-se a nós em getplasma.org.