1. Productos
  2.   Imagen
  3.   Node.js
  4.   StaticMaps
 
  

Biblioteca de código abierto para la creación de mapas estáticos en Node.js

La biblioteca líder Node.js permite generar mapas estáticos, así como rastrear ubicaciones, mostrar datos geográficos, proporcionar contexto visual y más a través de la API JS de código abierto.

Como desarrollador de software, siempre estás buscando herramientas y tecnologías innovadoras para optimizar tu flujo de trabajo y hacer realidad tus ideas. En el mundo de la cartografía y el desarrollo geoespacial, una de esas herramientas que ha ganado una tracción significativa es StaticMaps, una biblioteca de código abierto desarrollada por Stephan Georg. Es una biblioteca de código abierto Node.js diseñada para ayudar a los desarrolladores de software a generar fácilmente imágenes de mapas estáticos. Ya sea que estés creando una aplicación que necesita mapas para rastrear ubicaciones, mostrar datos geográficos o simplemente proporcionar un contexto visual, StaticMaps proporciona una forma simple pero poderosa de crear mapas personalizables de alta calidad sin necesidad de bibliotecas de mapas interactivos como Leaflet o Google Maps. Con una integración simple y potentes opciones de personalización, es una herramienta valiosa para los desarrolladores que buscan una visualización geográfica eficiente.

En esencia, StaticMaps genera imágenes de mapas en función de los parámetros proporcionados por el usuario, como la ubicación, el nivel de zoom, los marcadores e incluso las líneas para las rutas. A diferencia de los mapas interactivos y dinámicos, crea imágenes no interactivas que se pueden incorporar en aplicaciones web o exportar para otros usos. Esto hace que la biblioteca sea ideal para casos de uso en los que los mapas interactivos no son necesarios y se desea ahorrar ancho de banda, llamadas a API y complejidad. La biblioteca funciona con mosaicos de OpenStreetMap (OSM), lo que la convierte en una biblioteca de código abierto y de uso gratuito, sin depender de sistemas propietarios o API costosas. Con su amplia documentación y opciones personalizables, StaticMaps es una excelente opción para los desarrolladores que buscan llevar sus aplicaciones geoespaciales y de mapeo al siguiente nivel.

Previous Next

Introducción a StaticMaps

La forma recomendada de instalar StaticMaps es mediante NPM. Utilice el siguiente comando para una instalación sin problemas.

Instalar StaticMaps a través de NPM

npm i staticmaps 

Generación de mapas personalizables en Node.js

Una de las principales características de la biblioteca de código abierto StaticMaps es su capacidad de generar mapas altamente personalizables dentro de las aplicaciones Node.js. Los desarrolladores de software pueden especificar las dimensiones de la imagen, las coordenadas centrales, los niveles de zoom, las capas de mosaicos y mucho más. Estos parámetros brindan a los desarrolladores un control detallado sobre la apariencia del mapa. En el siguiente ejemplo de código, el mapa está centrado alrededor de Berlín, Alemania, con un nivel de zoom de 12 y un tamaño de imagen de 800x600 píxeles. Puede ajustar fácilmente estos parámetros según las necesidades de su aplicación.

¿Cómo generar un mapa básico dentro de las aplicaciones 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 señalar ubicaciones en Node.js

StaticMaps ofrece la posibilidad de agregar marcadores a un mapa. Los marcadores son útiles para resaltar ubicaciones específicas, como puntos de interés, ubicaciones de usuarios u otros puntos importantes. La biblioteca de código abierto StaticMaps facilita a los desarrolladores de software la tarea de agregar marcadores para señalar una ubicación específica dentro de sus aplicaciones Node.js. El siguiente ejemplo demuestra cómo agregar un marcador personalizado (usando una imagen externa) a una ubicación en el mapa. Puede especificar el tamaño y la posición del marcador, así como también usar diferentes íconos para varias ubicaciones.

¿Cómo agregar un marcador a un mapa para la ubicación de un punto dentro de las aplicaciones 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));

Compatibilidad con varios formatos de salida

La biblioteca StaticMaps admite principalmente PNG como formato de salida, pero la biblioteca de generación de imágenes subyacente (Sharp) le permite convertir imágenes a varios otros formatos de archivo populares, como JPEG, GIF o incluso PDF. Esto puede resultar útil al integrar mapas en varios tipos de documentos o medios. Cambiar entre formatos es simple, ya que solo necesita cambiar la extensión del archivo al guardar el mapa. Aquí hay un ejemplo que muestra cómo lograrlo dentro de las aplicaciones Node.js.

¿Cómo guardar un mapa en formato JPEG mediante la API de JavaScript?

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

Polilíneas para dibujar rutas o límites

Las polilíneas son esenciales para visualizar rutas o límites en un mapa. Puedes usar StaticMaps para dibujar polilíneas, lo que lo convierte en una excelente opción para aplicaciones que muestran rutas, como servicios de entrega o aplicaciones de seguimiento de la actividad física. El siguiente ejemplo muestra que se dibuja una polilínea roja entre varias coordenadas para representar una ruta. Puedes ajustar fácilmente el color y el ancho de la polilínea para que se adapte al estilo de tu aplicación.

¿Cómo agregar polilíneas a un mapa dentro del entorno 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));
 Español