عن المشروع

MapToPoster هي أداة سطر أوامر تولد خرائط بسيطة بأسلوب الملصقات لمدن حول العالم. عند إعطاء اسم مدينة وبلد، تقوم بتحديد الإحداثيات الجغرافية، وتنزيل بيانات OpenStreetMap، وتقديم صورة PNG عالية الدقة مناسبة للطباعة أو الخلفيات. كيف تعمل: تحل الأداة الإحداثيات عبر Nominatim، وتجلب شبكات الشوارع والميزات عبر OSMnx، ثم ترسم طبقات الإخراج باستخدام matplotlib — الخلفية، والمياه، والحدائق، والطرق الملونة والمرجحة حسب نوع الطريق في OSM، مع تدرجات لونية وتسميات نصية. تُحفظ ملفات الإخراج في دليل posters/ باسم المدينة والسمة والطابع الزمني. تشمل الخيارات الرئيسية --city و --country (إلزاميان)، بالإضافة إلى --theme، و --distance (نصف قطر الخريطة بالأمتار، الافتراضي 18000)، و --width/--height بالبوصات (الافتراضي 12x16، الحد الأقصى 20)، و --latitude/--longitude لتجاوز المركز، و --country-label، و --list-themes، و --all-themes لعرض كل السمة مرة واحدة. يوفر دليل الدقة خيارات شائعة (منشور Instagram، خلفية الجوال/HD/4K، طباعة A4) بقيم بوصات عند 300 نقطة في البوصة. يدعم الدعم متعدد اللغات عرض أسماء المدن والبلدان بالنصوص الأصلية عبر --display-city و --display-country و --font-family؛ تُنزَّل الخطوط من Google Fonts وتُخزَّن محليًا. يكتشف العارض النصوص اللاتينية مقابل غير اللاتينية ويضبط تباعد الأحرف وفقًا لذلك (تباعد للأحرف اللاتينية، وتباعد طبيعي لليابانية والعربية والكورية والتايلاندية وغيرها). توجد سبعة عشر سمة في دليل themes/، بما في ذلك noir، و midnight_blue، و blueprint، و neon_cyberpunk، و warm_beige، و pastel_dream، و japanese_ink، و emerald، و forest، و ocean، و terracotta، و sunset، و autumn، و copper_patina، و monochrome_blue، و gradient_roads، و contrast_zones. تُضاف السمة المخصصة كملفات JSON تحدد ألوان الخلفية والنص والمياه والحدائق وفئات الطرق. يدعم التثبيت uv (موصى به، مع تبعيات مثبتة) أو pip مع بيئة افتراضية. يوثق ملف README أيضًا البنية الداخلية، والوظائف الرئيسية، وترتيب الرسم، وربط طرق OSM بالتسلسل الهرمي للطرق، وتحديد المواقع الطباعية، وأنماط التوسعة لطبقات خرائط جديدة أو خصائص السمة، ونصائح الأداء مثل تخزين الإحداثيات مؤقتًا واستخدام شبكات مخصصة للقيادة لتسريع العرض.