Ninja Learn | نینجا لرن
1.26K subscribers
102 photos
38 videos
11 files
314 links
یادگیری برنامه نویسی به سبک نینجا 🥷
اینجا چیزایی یاد میگیری که فقط نینجاهای وب‌ بلدن 🤫

📄 Send me post: https://t.iss.one/NoronChat_bot?start=sec-fdggghgebe

👥 ɢʀᴏᴜᴘ: https://t.iss.one/+td1EcO_YfSphNTlk
Download Telegram
برید فالو کنید بنده را
🔥4👎1🤣1🫡1
اگه از قدیمی ها باشید یادتونه ما یه پروژه ای زدیم به اسم hey403
که برای dns management بودش
که خب دیگه توسعش رو از یه جا به بعد ادامه ندادیم
تازگیا چکش کردم دیدم بازخورد خوبی داشته و ۲۳ هزار تا دانلود داشته

خواستم بگم که دوستانی که دنبال اینن رو یه پروژه اوپن سورس کانتربیوت کنن و یا یه پروژه خاص به رزومشون اضافه کنن گزینه خیلی خوبیه
پتانسیل های زیادیم داره برای فیچر
اگه دوست داشتید میتونید روش کانتر بیوت کنید و پول ریکوست بفرستید اگه فیچراتون خوب بود مرجشون میکنم
حالا حتما لازم نیست فیچر اضافه کنید میتونید پروژه رو تر تمیز تر کنید یا ci cd رو بهتر کنید یا ...
فقط قبلش بامن هماهنگ کنید که به مشکلی نخورید

https://github.com/Diramid/hey403
🫡5
خبرخوشم اینه قراره براتون پخت و پز کنم منتظر باشید
🔥9
دیگران: چرا از گروه های برنامه نویسی دوری کردی؟

من:
🤣18
OSRM ماشین مسیریابی متن‌باز برای دنیای واقعی 🌍

اگه تو حوزه توسعه اپلیکیشن‌های نقشه، مسیریابی یا لجستیک کار می‌کنین، حتماً اسم
OSRM (Open Source Routing Machine) رو شنیدین. این ابزار یه موتور مسیریابی قدرتمند و متن‌بازه که بر اساس داده‌های OpenStreetMap کار می‌کنه و می‌تونه مسیریابی سریع و دقیق رو برای اپ‌های موبایل، وب یا حتی سیستم‌های بزرگ فراهم کنه.(به تازگی توی یکی از پروژه هام استفادش کردم و عالی بود)
تو این پست قراره یه نگاه تقریباً کامل به OSRM بندازیم.

🧠 اول از همه OSRM چیه؟

OSRM مخفف Open Source Routing Machine، یه موتور مسیریابی متن‌بازه که با
‏ C++ نوشته شده و برای محاسبه کوتاه‌ترین مسیرها تو شبکه‌های جاده‌ای طراحی شده. این ابزار از داده‌های OpenStreetMap (OSM) استفاده می‌کنه – یه نقشه متن‌باز جهانی که توسط جامعه ساخته می‌شه – و می‌تونه مسیریابی برای ماشین، دوچرخه، پیاده یا حتی وسایل نقلیه خاص رو انجام بده.

پروژه OSRM از سال ۲۰۱۰ توسط Dennis Luxen شروع شد و حالا توسط جامعه‌ای از توسعه‌دهنده‌ها (از جمله تیم Mapbox) نگهداری می‌شه. هدف اصلیش؟ ارائه مسیریابی سریع، دقیق و قابل سفارشی‌سازی بدون وابستگی به سرویس‌های تجاری مثل Google Maps.
‏OSRM نه‌تنها مسیریابی ساده انجام می‌ده، بلکه قابلیت‌هایی مثل map matching (مطابقت مسیر با جاده) و حل مسئله TSP رو هم داره.

📚 چطور کار می‌کنه؟

‏OSRM دو بخش اصلی داره:
پیش‌پردازش (Preprocessing) و سرویس‌دهی (Serving).

1⃣ پیش‌پردازش:
آماده‌سازی داده‌ها 🛠️
داده‌های OSM (فایل‌های .osm.pbf) رو می‌گیره و به یه گراف بهینه‌شده تبدیل می‌کنه.

از الگوریتم‌های پیشرفته‌ای مثل Contraction Hierarchies (CH) یا Multi-Level Dijkstra (MLD) استفاده می‌کنه. CH برای ماتریس‌های فاصله بزرگ عالیه، و MLD (پیشنهادی برای بیشتر موارد) تعادل خوبی بین سرعت و دقت برقرار می‌کنه.

مراحل پیش‌پردازش:
Extract:
داده‌های OSM رو به گراف خام تبدیل می‌کنه.

Partition/Customize:
گراف رو بهینه می‌کنه (مثل ساخت ایندکس‌ها برای سرعت).

Contract:
برای CH، گراف رو فشرده می‌کنه تا جستجو سریع‌تر بشه.

2⃣ سرویس‌دهی محاسبه مسیر 🗺️
سرور HTTP/JSON ارائه می‌ده که می‌تونین ازش برای محاسبه مسیر، تخمین زمان، یا حتی تولید tileهای نقشه با metadata مسیریابی استفاده کنین.

🚀 ویژگی‌های کلیدی OSRM


1⃣ الگوریتم‌های مسیریابی پیشرفته 🧮

Contraction Hierarchies (CH):
برای ماتریس‌های فاصله بزرگ (مثل محاسبه فاصله بین ۱۰۰۰ نقطه) عالیه. سرعت محاسبه رو به میلی‌ثانیه می‌رسونه.

Multi-Level Dijkstra (MLD):
تعادل خوبی بین دقت و سرعت داره و برای مسیریابی روزمره پیشنهاد می‌شه.

Map Matching:
مسیرهای GPS نویزی (مثل داده‌های موبایل) رو با جاده‌های واقعی مطابقت می‌ده – عالی برای اپ‌های ناوبری.

2⃣ پروفایل‌های سفارشی 🚗🚲
می‌تونین پروفایل‌های مختلف بسازین:
‏car (ماشین)، bike (دوچرخه)، foot (پیاده) یا حتی وسایل نقلیه سنگین.
هر پروفایل قوانین خاص خودش رو داره (مثل اجتناب از بزرگراه‌ها برای دوچرخه).

3⃣ تولید Tileهای نقشه 🏗️
‏OSRM می‌تونه Mapbox Vector Tiles با metadata مسیریابی تولید کنه، که برای اپ‌های موبایل (مثل Mapbox GL) عالیه.

4⃣ حل مسئله فروشنده دوره‌گرد (TSP) 🛒
برای محاسبه بهینه مسیر بازدید از چند نقطه (مثل تحویل کالا) استفاده می‌شه.
مثال: محاسبه ماتریس فاصله بین ۱۰ انبار.

5⃣ ادغام آسون با Docker و API 🐳
‏Docker images آماده برای سریع راه‌اندازی (ghcr.io/project-osrm/osrm-backend).
‏ API ساده JSON/HTTP که با هر زبانی (پایتون، JS، Go) کار می‌کنه.


جمع‌بندی

OSRM یه موتور مسیریابی متن‌باز قدرتمنده که با الگوریتم‌های پیشرفته مثل MLD و CH، مسیریابی سریع و دقیق رو برای اپ‌های واقعی فراهم می‌کنه. از محاسبه مسیرهای ساده گرفته تا map matching و تولید tileها، این ابزار برای توسعه‌دهنده‌های نقشه و لجستیک یه گنجینه‌ست.

#️⃣ #geo #programming #osrm

 
🥷🏻 CHANNEL | GROUP
🔥51
احتمالا درمورد GeoPandas هم پست بزارم لایبری جالبیه
4
خب یکم میخوام امروز همه تجربه بدم هم بگیرم
چیزی بوده که ذهنتون رو توی این چند وقت درگیر کرده باشه؟ یا درگیرش باشید؟
4