1. Produkter
  2.   Bild
  3.   Node.js
  4.   StaticMaps
 
  

Bibliotek med öppen källkod för skapande av statiska kartor i Node.js

Det ledande Node.js-biblioteket gör det möjligt att generera statiska kartor samt spåra platser, visa geografiska data, tillhandahålla visuell kontext och mer via Open Source JS API.

Som mjukvaruutvecklare är du ständigt på jakt efter innovativa verktyg och tekniker för att effektivisera ditt arbetsflöde och förverkliga dina idéer. I världen av kartläggning och geospatial utveckling är ett sådant verktyg som har vunnit betydande dragkraft StaticMaps, ett bibliotek med öppen källkod utvecklat av Stephan Georg. Det är ett Node.js-bibliotek med öppen källkod designat för att hjälpa mjukvaruutvecklare att enkelt generera statiska kartbilder. Oavsett om du bygger en applikation som behöver kartor för att spåra platser, visa geografiska data eller helt enkelt tillhandahålla visuell kontext, erbjuder StaticMaps ett enkelt men kraftfullt sätt att skapa högkvalitativa, anpassningsbara kartor utan att kräva interaktiva kartbibliotek som Broschyr eller Google Maps. Med enkel integration och kraftfulla anpassningsalternativ är det ett värdefullt verktyg för utvecklare som letar efter effektiv geografisk visualisering.

I kärnan genererar StaticMaps kartbilder baserat på parametrar som tillhandahålls av användaren, såsom plats, zoomnivå, markörer och till och med linjer för rutter. Till skillnad från dynamiska, interaktiva kartor skapar den icke-interaktiva bilder som kan bäddas in i webbapplikationer eller exporteras för annan användning. Detta gör biblioteket idealiskt för användningsfall där interaktiva kartor är onödiga och du vill spara på bandbredd, API-anrop och komplexitet. Biblioteket fungerar med OpenStreetMap (OSM)-plattor, vilket gör det både med öppen källkod och gratis att använda, utan att lita på proprietära system eller kostsamma API:er. Med sin omfattande dokumentation och anpassningsbara alternativ är StaticMaps ett utmärkt val för utvecklare som vill ta sina kartläggnings- och geospatiala applikationer till nästa nivå.

Previous Next

Komma igång med StaticMaps

Det rekommenderade sättet att installera StaticMaps är att använda NPM. Använd följande kommando för en smidig installation.

Installera StaticMaps via NPM

npm i staticmaps 

Anpassningsbar kartgenerering i Node.js

En av de primära egenskaperna hos StaticMaps-biblioteket med öppen källkod är dess förmåga att generera mycket anpassningsbara kartor inuti Node.js-applikationer. Mjukvaruutvecklare kan specificera bildens dimensioner, mittkoordinater, zoomnivåer, kakellager och mycket mer. Dessa parametrar ger utvecklare finkornig kontroll över kartans utseende. I följande kodexempel är kartan centrerad kring Berlin, Tyskland, med en zoomnivå på 12 och en bildstorlek på 800x600 pixlar. Du kan enkelt justera dessa parametrar baserat på din applikations behov.

Hur genererar man grundläggande karta i Node.js-appar?

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));

Markörer för pekande platser i Node.js

StaticMaps ger möjlighet att lägga till markörer på en karta. Markörer är användbara för att markera specifika platser, till exempel intressanta platser, användarplatser eller andra viktiga platser. StaticMaps-biblioteket med öppen källkod gör det enkelt för mjukvaruutvecklare att lägga till markörer för att peka ut en specifik plats i sina Node.js-applikationer. Följande exempel visar hur du lägger till anpassad markör (med hjälp av en extern bild) till en plats på kartan. Du kan ange storlek och position för markören, samt använda olika ikoner för olika platser.

Hur lägger man till markör på en karta för punktposition i Node.js Apps?

// 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));

Stöd för flera utdataformat

StaticMaps-biblioteket stöder främst PNG som utdataformat, men det underliggande bildgenereringsbiblioteket (Sharp) låter dig konvertera bilder till olika andra populära filformat som JPEG, GIF eller till och med PDF. Detta kan vara praktiskt när du integrerar kartor i olika typer av dokument eller media. Att växla mellan format är enkelt, eftersom du bara behöver ändra filtillägget när du sparar kartan. Här är ett exempel som visar hur man uppnår det i Node.js-applikationer.

Hur sparar man karta i JPEG-format via JavaScript API?

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

Polylinjer för att rita rutter eller gränser

Polylinjer är viktiga för att visualisera stigar eller gränser på en karta. Du kan använda StaticMaps för att rita polylinjer, vilket gör det till ett utmärkt val för applikationer som visar rutter, som leveranstjänster eller appar för träningsspårning. Följande exempel visar att en röd polylinje dras mellan flera koordinater för att representera en rutt. Du kan enkelt justera färgen och bredden på polylinjen för att passa din applikations stil.

Hur lägger man till polylinjer på en karta i Node.js-miljön?

// 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));
 Svenska