Sobre o projeto

O MapToPoster é uma ferramenta de linha de comando que gera mapas minimalistas em estilo de pôster de cidades ao redor do mundo. Dado o nome de uma cidade e de um país, ele geocodifica a localização, baixa dados do OpenStreetMap e renderiza um PNG em alta resolução adequado para impressão ou papéis de parede. Como funciona: o script resolve as coordenadas via Nominatim, busca redes de ruas e elementos por meio do OSMnx e então desenha uma saída em camadas com matplotlib — fundo, água, parques, ruas coloridas e ponderadas por tipo de via do OSM, transições em gradiente e rótulos de texto. Os arquivos de saída são salvos em um diretório posters/ nomeado por cidade, tema e carimbo de data/hora. As principais opções incluem --city e --country (obrigatórias), além de --theme, --distance (raio do mapa em metros, padrão 18000), --width/--height em polegadas (padrão 12x16, máximo 20), --latitude/--longitude para substituir o centro, --country-label, --list-themes e --all-themes para renderizar todos os temas de uma vez. Um guia de resolução mapeia alvos comuns (post do Instagram, papel de parede para celular/HD/4K, impressão A4) para valores em polegadas a 300 DPI. O suporte multilíngue permite aos usuários exibir nomes de cidades e países em seus alfabetos nativos por meio de --display-city, --display-country e --font-family; as fontes são baixadas do Google Fonts e armazenadas em cache localmente. O renderizador detecta alfabetos latinos versus não latinos e ajusta o espaçamento entre letras de acordo (letras latinas espaçadas, espaçamento natural para japonês, árabe, coreano, tailandês e outros). Dezessete temas são fornecidos no diretório themes/, incluindo noir, midnight_blue, blueprint, neon_cyberpunk, warm_beige, pastel_dream, japanese_ink, emerald, forest, ocean, terracotta, sunset, autumn, copper_patina, monochrome_blue, gradient_roads e contrast_zones. Temas personalizados são adicionados como arquivos JSON que definem cores de fundo, texto, água, parques e por classe de via. A instalação oferece suporte a uv (recomendado, com dependências bloqueadas) ou pip mais um ambiente virtual. O README também documenta a arquitetura interna, funções principais, ordem z de renderização, mapeamento de vias do OSM para a hierarquia de ruas, posicionamento tipográfico, padrões de extensão para novas camadas de mapa ou propriedades de tema, e dicas de desempenho, como armazenar coordenadas em cache e usar redes apenas de vias para renderizações mais rápidas.