1. Produtos
  2.   Imagem
  3.   Node.js
  4.   StaticMaps
 
  

Biblioteca de código aberto para criação de mapas estáticos em Node.js

A biblioteca líder do Node.js permite gerar mapas estáticos, bem como rastrear localizações, exibir dados geográficos, fornecer contexto visual e muito mais por meio da API JS de código aberto.

Como desenvolvedor de software, você está constantemente em busca de ferramentas e tecnologias inovadoras para otimizar seu fluxo de trabalho e dar vida às suas ideias. No mundo do mapeamento e desenvolvimento geoespacial, uma dessas ferramentas que ganhou força significativa é o StaticMaps, uma biblioteca de código aberto desenvolvida por Stephan Georg. É uma biblioteca Node.js de código aberto projetada para ajudar desenvolvedores de software a gerar facilmente imagens de mapas estáticos. Quer você esteja criando um aplicativo que precisa de mapas para rastrear locais, exibir dados geográficos ou simplesmente fornecer contexto visual, o StaticMaps fornece uma maneira simples, mas poderosa, de criar mapas personalizáveis ​​de alta qualidade sem exigir bibliotecas de mapas interativos como Leaflet ou Google Maps. Com integração simples e opções de personalização poderosas, é uma ferramenta valiosa para desenvolvedores que buscam visualização geográfica eficiente.

Em sua essência, o StaticMaps gera imagens de mapas com base em parâmetros fornecidos pelo usuário, como localização, nível de zoom, marcadores e até mesmo linhas para rotas. Ao contrário de mapas dinâmicos e interativos, ele cria imagens não interativas que podem ser incorporadas em aplicativos da web ou exportadas para outros usos. Isso torna a biblioteca ideal para casos de uso em que mapas interativos são desnecessários e você quer economizar em largura de banda, chamadas de API e complexidade. A biblioteca funciona com blocos OpenStreetMap (OSM), tornando-a de código aberto e gratuita para uso, sem dependência de sistemas proprietários ou APIs caras. Com sua extensa documentação e opções personalizáveis, o StaticMaps é uma excelente escolha para desenvolvedores que buscam levar seus aplicativos de mapeamento e geoespaciais para o próximo nível.

Previous Next

Introdução ao StaticMaps

A maneira recomendada de instalar o StaticMaps é usando o NPM. Use o comando a seguir para uma instalação tranquila.

Instalar StaticMaps via NPM

npm i staticmaps 

Geração de Mapas Personalizáveis ​​em Node.js

Um dos principais recursos da biblioteca StaticMaps de código aberto é sua capacidade de gerar mapas altamente personalizáveis ​​dentro de aplicativos Node.js. Os desenvolvedores de software podem especificar as dimensões da imagem, coordenadas centrais, níveis de zoom, camadas de blocos e muito mais. Esses parâmetros dão aos desenvolvedores controle refinado sobre a aparência do mapa. No exemplo de código a seguir, o mapa é centralizado em Berlim, Alemanha, com um nível de zoom de 12 e um tamanho de imagem de 800x600 pixels. Você pode ajustar facilmente esses parâmetros com base nas necessidades do seu aplicativo.

Como gerar um mapa básico dentro de aplicativos Node.js?

const StaticMaps = require('staticmaps');

// Create a new instance of StaticMaps with a specified width and height
const map = new StaticMaps({ width: 800, height: 600 });

// Set the map center and zoom level
map.center = [13.404954, 52.520008]; // Coordinates for Berlin
map.zoom = 12;

// Render and save the map as a PNG file
map.render()
  .then(() => map.image.save('basic_map.png'))
  .catch(err => console.error('Error generating map:', err));

Marcadores para apontar locais no Node.js

O StaticMaps fornece a capacidade de adicionar marcadores a um mapa. Os marcadores são úteis para destacar locais específicos, como pontos de interesse, locais de usuários ou outros pontos importantes. A biblioteca StaticMaps de código aberto facilita para desenvolvedores de software adicionar marcadores para apontar um local específico dentro de seus aplicativos Node.js. O exemplo a seguir demonstra como adicionar um marcador personalizado (usando uma imagem externa) a um local no mapa. Você pode especificar o tamanho e a posição do marcador, bem como usar ícones diferentes para vários locais.

Como adicionar um marcador a um mapa para localização de pontos dentro de aplicativos Node.js?

// Create a marker object
const marker = {
  coord: [13.405, 52.52], // Berlin coordinates
  img: 'https://path-to-marker-icon.com/marker.png', // Custom marker image
  height: 32,
  width: 32
};

// Add the marker to the map
map.addMarker(marker);

// Render and save the map
map.render()
  .then(() => map.image.save('map_with_marker.png'))
  .catch(err => console.log(err));

Suporte a vários formatos de saída

A biblioteca StaticMaps suporta principalmente PNG como formato de saída, mas a biblioteca de geração de imagens subjacente (Sharp) permite que você converta imagens em vários outros formatos de arquivo populares, como JPEG, GIF ou até mesmo PDF. Isso pode ser útil ao integrar mapas em vários tipos de documentos ou mídia. Alternar entre formatos é simples, pois você só precisa alterar a extensão do arquivo ao salvar o mapa. Aqui está um exemplo que mostra como fazer isso dentro de aplicativos Node.js.

Como salvar um mapa no formato JPEG via API JavaScript?

map.render()
  .then(() => map.image.save('output_map.jpg'))  // Saving as a JPEG
  .catch(err => console.log('Error saving as JPEG:', err));

Polilinhas para desenhar rotas ou limites

Polilinhas são essenciais para visualizar caminhos ou limites em um mapa. Você pode usar o StaticMaps para desenhar polilinhas, o que o torna uma ótima opção para aplicativos que exibem rotas, como serviços de entrega ou aplicativos de monitoramento de condicionamento físico. O exemplo a seguir mostra que uma polilinha vermelha é desenhada entre várias coordenadas para representar uma rota. Você pode ajustar facilmente a cor e a largura da polilinha para se adequar ao estilo do seu aplicativo.

Como adicionar polilinhas a um mapa dentro do ambiente Node.js?

// Define a polyline with multiple coordinates
const polyline = {
  coords: [
    [13.405, 52.52], // Starting point in Berlin
    [13.4, 52.51],   // Intermediate point
    [13.42, 52.49]   // Ending point
  ],
  color: '#FF0000', // Red line
  width: 3          // Line width in pixels
};

// Add the polyline to the map
map.addLine(polyline);

// Render and save the map
map.render()
  .then(() => map.image.save('map_with_polyline.png'))
  .catch(err => console.error('Error rendering polyline map:', err));
 Português