Maplair 4.0: فورک جدید Leaflet منتشر شد
خلاصهٔ کاملتر
تیم Maplair نسخهٔ 4.0.0 رو منتشر کرده که اولین نسخهٔ پایدار این پروژهست. Maplair یه فورک از Leaflet هست، کتابخونهٔ متنباز نقشهٔ تعاملی که Volodymyr Agafonkin سال ۲۰۱۰ ساخت. این پروژه روی کارهای Leaflet 2.0 بنا شده، یعنی رفتن به ES module، کلاسهای استاندارد جاوااسکریپت و Pointer Events، و بعضی تغییراتی رو هم که برای Leaflet پیشنهاد شده بود ولی اونجا قبول نشد آورده. شمارهٔ نسخه از ۴ شروع شده که با Leaflet 2.x و 3.x قاطی نشه.
مهمترین خبر اینه که قابلیتهایی که قبلا پلاگین میخواستن حالا داخلیان: FullscreenControl، SearchControl (با geocoder دلخواه یا Nominatim)، MiniMapControl، SideBySideControl برای مقایسهٔ دو لایه، LegendControl و Classification برای دستهبندی عوارض بر اساس مقدار، ContextMenu، HeatLayer و چرخش نقشه با گزینهٔ bearing. همهٔ اینا tree-shakable هستن، یعنی باندلر فقط چیزی که import کردی رو نگه میداره. مثلا یه نقشه با یه لایهٔ tile حدود ۳۴ کیلوبایت gzip میشه، تقریبا نصف کل کتابخونه (۶۳ کیلوبایت).
بقیهٔ بهبودها هم قابل توجهن. ترجمهٔ متنهای داخلی با API جدید I18n اومده و چند زبان اروپایی از اول داخلشه. برای نقشههای پرمارکر، گزینهٔ markerCulling مارکرهایی که خیلی دور از دید هستن رو از صفحه برمیداره و اضافه کردن لایههای زیاد دیگه کندی درجهٔ دو نداره. پکیج type declaration داره، رنگها و فونتها CSS variable شدن تا تمدادن ساده باشه، و دسترسپذیری هم بهتر شده؛ مثلا کنترلها حالا المنت button هستن.
مهاجرت از Leaflet 1.9.4 ساده نیست. Maplair فقط named export داره و دیگه global L نداره (جز تو فایل maplair-global.js)، factory functionها حذف شدن و باید از constructor استفاده کنی:
import {MaplairMap, TileLayer, Marker} from 'maplair';
const map = new MaplairMap('map').setView([51.505, -0.09], 13);
new Marker([51.5, -0.09]).addTo(map);همهٔ کلاسهای CSS از leaflet-* به maplair-* تغییر اسم دادن، Class.extend() و initialize() جاشون رو به کلاسهای استاندارد و constructor() دادن، و رویدادهای mouse و touch با Pointer Events عوض شدن. یعنی بیشتر پلاگینهای Leaflet بدون تغییر روی Maplair کار نمیکنن. Internet Explorer هم دیگه پشتیبانی نمیشه و هدف مرورگرهای Baseline Widely available هستن.
نکات کلیدی:
- Maplair 4.0.0 اولین نسخهٔ پایدار فورک Leaflet هست و نسخهش از ۴ شروع شده تا با Leaflet 2.x و 3.x قاطی نشه
- کنترلهای داخلی جدید: Fullscreen، Search، MiniMap، SideBySide، Legend، ContextMenu و HeatLayer
- نقشهٔ ساده با یه لایهٔ tile حدود ۳۴ کیلوبایت gzip هست، در برابر ۶۳ کیلوبایت کل کتابخونه
- فقط named export و ES module؛ factoryهایی مثل L.marker() حذف شدن و جاشون new Marker() اومده
- کلاسهای CSS به maplair-* تغییر کردن و بیشتر پلاگینهای Leaflet بدون تغییر کار نمیکنن




