Imprimir STL Mapa 3D da cidade de Barcelona Modelo 3D - 6257553

Things 3D Fila

Mapa 3D da cidade de Barcelona

Arte

Se você ainda não tem uma máquina para imprimir este arquivo pode comprar uma impressora 3d aqui!

Mapa 3D da cidade de Barcelona

Você pode imprimir este modelo 3d com estes filamentos ou com estas resinas 3D.

Sobre o objeto 3D Mapa 3D da cidade de Barcelona

Este é um arquivo desenvolvido e projetado com ferramenta CAD.

Se você ainda não sabe criar seu próprio modelo 3D eu te ensino neste artigo tutorial sobre Tinkercad.

Mapa 3D da cidade de Barcelona foi projetado para Impressora 3D. Script personalizado do mapbox usado e Blenderpara fazer isso.Todos os arquivos SVG estao incluidos, bem como o arquivo do projeto Blender.Aqui esta o script em python usado para gerar imagens PNG de alta resolucao das estradas e do terreno. cole seu proprio token de API do mapbox (gratuito).import asyncioimport aiohttpfrom PIL import Imagefrom io import BytesIOfrom IPython.display import display# Detalhes da API MapboxNOME_DE_USUARIO = "ryleymcc"STYLE_TERRA_AGUA = "clnj1nkob081q01p91o6rbziw"STYLE_ESTRADAS = "clnj20v7q07vz01p78d6dc69m"TOKEN_DE_ACESSO = " "NIVEL_DE_ZOOM = 14 # Ajuste conforme necessariodef latlon_to_tile(lat, lon, zoom): """Converter latitude e longitude em coordenadas de tile""" import math lat_rad = math.radians(lat) n = 2.0 ** zoom xtile = int((lon + 180.0) / 360.0 * n) ytile = int((1.0 - math.asinh(math.tan(lat_rad)) / math.pi) / 2.0 * n) return xtile, ytile# Coordenadas da caixa delimitadora minima e maximamin_lat = 41.338928 min_lon = 2.139630max_lat = 41.400877max_lon = 2.230308# Converter a caixa delimitadora em coordenadas de tilemin_x, max_y = latlon_to_tile(min_lat, min_lon, NIVEL_DE_ZOOM)max_x, min_y = latlon_to_tile(max_lat, max_lon, NIVEL_DE_ZOOM)tile_size = 512 # Tamanho padrao do tile do Mapboxcanvas_width = tile_size * (max_x - min_x + 1)canvas_height = tile_size * (max_y - min_y + 1)# Semaphore para limitar a taxa de requisicoessemaphore = asyncio.Semaphore(10) # Ajuste este valor com base em quantas requisicoes deseja permitir simultaneamenteasync def fetch_tile_async(session, style, z, x, y): url = f"https://api.mapbox.com/styles/v1/{NOME_DE_USUARIO}/{style}/tiles/{z}/{x}/{y}?access_token={TOKEN_DE_ACESSO}" async with semaphore: # Use o semaforo para limitar o numero de requisicoes simultaneas async with session.get(url) as response: if response.status == 200: content = await response.read() img = Image.open(BytesIO(content)).convert('RGBA') #display(img) return img else: print(f"Falha ao buscar o tile {z}/{x}/{y}. Status HTTP: {response.status}") # Retornar uma imagem de espaco reservado ou None return Image.new('RGBA', (tile_size, tile_size), (255, 255, 255, 0)) # Imagem de espaco reservado transparenteasync def stitch_tiles_async(style, filename): canvas = Image.new('RGBA', (canvas_width, canvas_height)) total_tiles = (max_x - min_x + 1) * (max_y - min_y + 1) processed_tiles = 0 async with aiohttp.ClientSession() as session: tasks = [] for x in range(min_x, max_x + 1): for y in range(min_y, max_y + 1): task = asyncio.ensure_future(fetch_and_paste_tile(session, canvas, style, x, y, processed_tiles, total_tiles)) tasks.append(task) processed_tiles_list = await asyncio.gather(*tasks) processed_tiles = sum(processed_tiles_list) display(canvas) # Exibir a imagem final montada canvas.save(filename) print(f"Mapa salvo como {filename}")async def fetch_and_paste_tile(session, canvas, style, x, y, processed_tiles, total_tiles): tile = await fetch_tile_async(session, style, NIVEL_DE_ZOOM, x, y) canvas.paste(tile, ((x - min_x) * tile_size, (y - min_y) * tile_size)) processed_tiles += 1 #print(f"Processados {processed_tiles}/{total_tiles} tiles...") return processed_tiles# Executar as funcoes assincronasasync def main(): await stitch_tiles_async(STYLE_TERRA_AGUA, "land_water_map.png") await stitch_tiles_async(STYLE_ESTRADAS, "roads_map.png")

Baixar

O arquivo chamado "Mapa 3D da cidade de Barcelona" é um projeto interessante que combina as capacidades do Mapbox e do Blender para criar uma representação tridimensional da cidade. Aqui está uma descrição mais detalhada dos elementos e do processo envolvido na criação desse modelo 3D:

### Recapitulação do Projeto

1. **Nome do Projeto**: Mapa 3D da cidade de Barcelona
2. **Descrição**: O autor utilizou um script personalizado escrito em Python para integrar dados geoespaciais do Mapbox com a modelagem 3D no Blender. O resultado é um modelo 3D que pode ser impresso em 3D, oferecendo uma representação física do layout urbano de Barcelona.

### Estrutura do Código

O código apresentado é um script Python que utiliza bibliotecas como `asyncio`, `aiohttp` e `PIL` (Python Imaging Library) para baixar e processar tiles do Mapbox.

1. **API do Mapbox**: O script faz uso da API do Mapbox, e requer que o usuário insira seu próprio token de acesso (que pode ser obtido gratuitamente).

2. **Configuração de Coordenadas**: As coordenadas mínimas e máximas que delimitam a área do mapa a ser gerada são definidas, permitindo que o script converta essas coordenadas em tiles para a visualização.

3. **Funções Principais**:
- `latlon_to_tile`: Converte coordenadas de latitude e longitude para coordenadas de tiles do Mapbox.
- `fetch_tile_async`: Função assíncrona que obtém cada tile da API do Mapbox, garantindo que as solicitações sejam gerenciadas de forma eficiente.
- `stitch_tiles_async`: Monta todos os tiles baixados em uma única imagem, salvando-a como um arquivo PNG.
- `fetch_and_paste_tile`: Busca cada tile individualmente e o integra na imagem final.

4. **Execução Assíncrona**: O uso do `asyncio` permite que o script seja executado de forma assíncrona, melhorando o desempenho ao buscar múltiplos tiles simultaneamente.

### Output

O resultado deste processo são duas imagens PNG de alta resolução:
- **Mapa de Terra e Água**: Representa a área de Barcelona focando em características naturais e estruturas de água.
- **Mapa de Estradas**: Mostra a infraestrutura viária da cidade.

### Arquivos Incluídos

O arquivo contém:
- Todos os arquivos SVG necessários para criar o modelo 3D.
- O projeto do Blender, que permite que os usuários vejam e editem o modelo 3D.
- O script Python para a geração das imagens.

### Usos Potenciais

Esse modelo 3D da cidade pode ser utilizado em diversos contextos, como:
- **Educação**: Para ensinar sobre urbanização e geografia.
- **Planejamento Urbano**: Para visualizar como diferentes áreas se conectam.
- **Impressão 3D**: Para criar maquetes físicas da cidade de Barcelona, úteis em exposições ou como souvenirs.

Esse projeto combina tecnologia de mapeamento moderno e modelagem 3D, proporcionando uma rica experiência visual e funcionalidade prática. É um excelente exemplo de como dados geoespaciais podem ser transformados em artefatos físicos e visuais interativos.

Não deixe de imprimir e compartilhar este modelo 3d. Não deixe sua impressora 3D parada. Mas se você não tem uma impressora 3D ainda, escolha a sua agora.