کتابخانه منبع باز برای ایجاد نقشه های استاتیک در Node.js

کتابخانه پیشرو Node.js امکان تولید نقشه‌های Static و همچنین ردیابی مکان‌ها، نمایش داده‌های جغرافیایی، ارائه متن بصری و موارد دیگر را از طریق منبع باز JS API فراهم می‌کند.

به‌عنوان یک توسعه‌دهنده نرم‌افزار، دائماً به دنبال ابزارها و فن‌آوری‌های نوآورانه هستید تا گردش کار خود را ساده کنید و ایده‌های خود را زنده کنید. در دنیای نقشه برداری و توسعه جغرافیایی، یکی از این ابزارها که جذابیت قابل توجهی پیدا کرده است StaticMaps است، یک کتابخانه منبع باز که توسط Stephan Georg توسعه یافته است. این یک کتابخانه منبع باز Node.js است که برای کمک به توسعه دهندگان نرم افزار به راحتی تصاویر نقشه ایستا را تولید می کند. چه در حال ساختن برنامه‌ای هستید که به نقشه‌ها برای ردیابی مکان‌ها، نمایش داده‌های جغرافیایی یا صرفاً ارائه زمینه بصری نیاز دارد، StaticMaps یک راه ساده اما قدرتمند برای ایجاد نقشه‌های با کیفیت بالا و قابل تنظیم بدون نیاز به کتابخانه‌های نقشه تعاملی مانند Leaflet یا Google Maps ارائه می‌کند. با یکپارچه سازی ساده و گزینه های سفارشی سازی قدرتمند، ابزار ارزشمندی برای توسعه دهندگانی است که به دنبال تجسم جغرافیایی کارآمد هستند.

در هسته خود، StaticMaps تصاویر نقشه را بر اساس پارامترهای ارائه شده توسط کاربر، مانند مکان، سطح زوم، نشانگرها و حتی خطوط مسیرها تولید می کند. برخلاف نقشه‌های پویا و تعاملی، تصاویر غیر تعاملی ایجاد می‌کند که می‌توانند در برنامه‌های وب جاسازی شوند یا برای کاربردهای دیگر صادر شوند. این باعث می‌شود که کتابخانه برای مواردی که نقشه‌های تعاملی غیرضروری هستند و می‌خواهید در پهنای باند، تماس‌های API و پیچیدگی صرفه‌جویی کنید، ایده‌آل باشد. این کتابخانه با کاشی‌های OpenStreetMap (OSM) کار می‌کند، و آن را هم منبع باز و هم رایگان برای استفاده، بدون اتکا به سیستم‌های اختصاصی یا APIهای پرهزینه می‌سازد. StaticMaps با اسناد گسترده و گزینه های قابل تنظیم خود، یک انتخاب عالی برای توسعه دهندگانی است که به دنبال ارتقای برنامه های نقشه برداری و جغرافیایی خود به سطح بعدی هستند.

Previous Next

شروع به کار با StaticMaps

روش توصیه شده برای نصب StaticMaps استفاده از NPM است. لطفا از دستور زیر برای نصب راحت استفاده کنید.

StaticMaps را از طریق NPM نصب کنید

npm i staticmaps 

تولید نقشه قابل تنظیم در Node.js

یکی از ویژگی های اصلی کتابخانه StaticMaps منبع باز، توانایی آن در تولید نقشه های بسیار قابل تنظیم در برنامه های Node.js است. توسعه دهندگان نرم افزار می توانند ابعاد تصویر، مختصات مرکز، سطوح زوم، لایه های کاشی و موارد دیگر را مشخص کنند. این پارامترها به توسعه دهندگان کنترل دقیقی بر ظاهر نقشه می دهد. در مثال کد زیر، نقشه در مرکز برلین، آلمان، با سطح زوم 12 و اندازه تصویر 800x600 پیکسل است. شما به راحتی می توانید این پارامترها را بر اساس نیازهای برنامه خود تنظیم کنید.

چگونه می توان Basic Map را در برنامه های 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));

نشانگرها برای نشان دادن مکان ها در Node.js

StaticMaps توانایی اضافه کردن نشانگرها به نقشه را فراهم می کند. نشانگرها برای برجسته کردن مکان‌های خاص، مانند نقاط مورد علاقه، مکان‌های کاربر یا سایر نقاط مهم مفید هستند. کتابخانه StaticMaps منبع باز این امکان را برای توسعه دهندگان نرم افزار فراهم می کند تا نشانگرهایی را برای نشان دادن یک مکان خاص در داخل برنامه های Node.js خود اضافه کنند. مثال زیر نحوه افزودن نشانگر سفارشی (با استفاده از یک تصویر خارجی) را به یک مکان روی نقشه نشان می دهد. می توانید اندازه و موقعیت نشانگر را مشخص کنید و همچنین از نمادهای مختلف برای مکان های مختلف استفاده کنید.

چگونه نشانگر را به نقشه برای موقعیت مکانی در داخل برنامه‌های 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));

پشتیبانی از فرمت های خروجی چندگانه

کتابخانه StaticMaps در درجه اول از PNG به عنوان فرمت خروجی پشتیبانی می کند، اما کتابخانه تولید تصویر زیربنایی (شارپ) به شما امکان می دهد تصاویر را به فرمت های مختلف فایل محبوب دیگر مانند JPEG، GIF یا حتی PDF تبدیل کنید. این می تواند هنگام ادغام نقشه ها در انواع مختلف اسناد یا رسانه مفید باشد. جابه‌جایی بین فرمت‌ها ساده است، زیرا هنگام ذخیره نقشه فقط باید پسوند فایل را تغییر دهید. در اینجا یک مثال است که نشان می دهد چگونه می توان به آن در داخل برنامه های Node.js دست یافت.

چگونه نقشه را با فرمت JPEG از طریق JavaScript API ذخیره کنیم؟

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

چند خطوط برای ترسیم مسیرها یا مرزها

چند خطوط برای تجسم مسیرها یا مرزها روی نقشه ضروری هستند. شما می‌توانید از StaticMaps برای ترسیم چند خطوط استفاده کنید، و آن را برای برنامه‌هایی که مسیرها را نشان می‌دهند، مانند خدمات تحویل یا برنامه‌های ردیابی تناسب اندام، انتخابی عالی است. مثال زیر نشان می دهد که یک چند خط قرمز بین چند مختصات برای نشان دادن یک مسیر رسم شده است. شما به راحتی می توانید رنگ و عرض چند خط را مطابق با سبک برنامه خود تنظیم کنید.

چگونه Polylines را در داخل Node.js Environment به نقشه اضافه کنیم؟

// 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));
 فارسی