- दुनिया भर के शहरों के नक्शों को मिनिमल आर्ट पोस्टर के रूप में बनाने वाला Python-आधारित ओपन सोर्स टूल
- OpenStreetMap(OSMnx) डेटा का उपयोग करके सड़कों, जलमार्गों, पार्कों जैसी भौगोलिक विशेषताओं को विज़ुअलाइज़ करता है, और matplotlib से रेंडर करता है
- 17 तरह के थीम स्टाइल (जैसे: neon_cyberpunk, blueprint, japanese_ink) देता है, और JSON फ़ाइलों के जरिए कस्टम थीम जोड़ने की सुविधा भी है
- कमांड लाइन से शहर का नाम, देश का नाम, radius और theme देकर अपने-आप पोस्टर बनाता और सेव करता है
- डिज़ाइन और डेटा विज़ुअलाइज़ेशन के संयोजन के जरिए डेवलपर और डिज़ाइनर शहरों की संरचना को कलात्मक तरीके से एक्सप्लोर कर सकते हैं
परियोजना अवलोकन
- MapToPoster एक Python स्क्रिप्ट है जो उपयोगकर्ता द्वारा चुने गए शहर के नक्शे के आधार पर मिनिमल डिज़ाइन पोस्टर बनाती है
- बना हुआ पोस्टर अपने-आप
posters/ डायरेक्टरी में सेव हो जाता है
- MIT लाइसेंस के तहत जारी होने के कारण इसे स्वतंत्र रूप से संशोधित और वितरित किया जा सकता है
- रिपॉज़िटरी पर लगभग 2.7k Star और 164 Fork हैं
मुख्य फीचर
- कमांड-लाइन इंटरफ़ेस (CLI) के जरिए शहर का नाम (
--city), देश का नाम (--country), theme (--theme), दूरी (--distance) देकर पोस्टर बनाया जा सकता है
--list-themes विकल्प से उपलब्ध सभी themes की सूची देखी जा सकती है
- दूरी (
distance) के मान के अनुसार शहर के आकार के हिसाब से उपयुक्त radius तय किया जा सकता है
- 4,000–6,000m: छोटे शहर
- 8,000–12,000m: मध्यम आकार के शहर
- 15,000–20,000m: महानगर
थीम संरचना
themes/ डायरेक्टरी में 17 theme JSON फ़ाइलें शामिल हैं
- उदाहरण: noir, blueprint, neon_cyberpunk, warm_beige, forest, terracotta आदि
- हर theme में background color, road color, water, park आदि के color properties तय किए जाते हैं
- उपयोगकर्ता JSON फ़ॉर्मैट में नई theme सीधे जोड़ सकते हैं
- उदाहरण:
"bg": "#FFFFFF", "road_primary": "#1A1A1A" आदि
उपयोग उदाहरण
- अलग-अलग शहरों और themes के संयोजन से पोस्टर बनाए जा सकते हैं
python create_map_poster.py -c "Tokyo" -C "Japan" -t japanese_ink -d 15000
python create_map_poster.py -c "Barcelona" -C "Spain" -t warm_beige -d 8000
python create_map_poster.py -c "Dubai" -C "UAE" -t midnight_blue -d 15000
- उदाहरण पोस्टरों में San Francisco, Venice, Marrakech, Singapore जैसे शहर शामिल हैं
आंतरिक संरचना और आर्किटेक्चर
- मुख्य घटक हैं CLI Parser, Geocoding(Nominatim), Data Fetching(OSMnx), Rendering(matplotlib)
- रेंडरिंग क्रम (z-order): background → water → park → road → gradient → text
- प्रमुख फ़ंक्शन
get_coordinates(): शहर के नाम से latitude/longitude प्राप्त करना
create_poster(): पूरा rendering pipeline
get_edge_colors_by_type(): सड़क के प्रकार के अनुसार रंग तय करना
get_edge_widths_by_type(): सड़क की महत्ता के अनुसार चौड़ाई तय करना
load_theme(): JSON theme लोड करना
विस्तार और कस्टमाइज़ेशन
- नई map layer (जैसे: railway) जोड़ने के लिए
create_poster() के भीतर OSMnx डेटा लाकर रेंडर किया जा सकता है
- नई theme property जोड़ने पर JSON और code (
load_theme()) दोनों में उसकी परिभाषा देनी होगी
- टेक्स्ट प्लेसमेंट नियम
- शहर का नाम: y=0.14
- देश का नाम: y=0.10
- निर्देशांक: y=0.07
- स्रोत उल्लेख: y=0.02
परफ़ॉर्मेंस ऑप्टिमाइज़ेशन टिप्स
dist मान 20km से अधिक होने पर डाउनलोड गति धीमी हो सकती है और memory उपयोग बढ़ सकता है
- coordinate caching से Nominatim request limit से बचा जा सकता है
network_type='drive' सेट करने पर rendering speed बेहतर होती है
- तेज़ preview के लिए
dpi को 150 तक कम किया जा सकता है
टेक स्टैक और लाइसेंस
- Python 100% में लिखा गया है
- मुख्य लाइब्रेरी: OSMnx, matplotlib, argparse
- MIT License के तहत वितरित, व्यावसायिक उपयोग और संशोधन संभव
सारांश
- MapToPoster एक code-आधारित city-map art tool है, जो data visualization और design को जोड़ने वाला ओपन सोर्स प्रोजेक्ट है
- डेवलपर, डिज़ाइनर और data visualization विशेषज्ञों के लिए शहरों की संरचना को कलात्मक रूप में समझने का उपयोगी टूल
अभी कोई टिप्पणी नहीं है.