OpenStreetMap ویکیپدیای نقشههاست. یک نقشه رایگان، باز و جمعسپاریشده از کل جهان است که توسط میلیونها داوطلب ساخته شده و به عنوان ستون فقرات داده برای هزاران محصول استفاده میشود، از برنامههای آبوهوا تا پیادهروی تا پلتفرمهای ride-share.
این راهنما توضیح میدهد OpenStreetMap واقعاً چیست، چطور به عنوان یک مجموعه داده کار میکند، چطور با Google Maps تفاوت دارد و چه نقشی در یک stack نقشهبرداری modern production مثل MapAtlas ایفا میکند.
پروژه، در یک پاراگراف
OpenStreetMap (OSM) در سال ۲۰۰۴ در بریتانیا توسط Steve Coast تأسیس شد، چون او از کمبود دادههای نقشه دیجیتال آزادانه در دسترس خسته شده بود. ایده این بود که نقشهای از جهان مثل ویکیپدیا بسازیم: هر کسی میتواند ثبتنام کند، هر featureای را اضافه یا ویرایش کند و دادههای حاصله تحت مجوز باز منتشر میشود. امروز پروژه بیش از ۱۰ میلیون ویرایشگر ثبتنامشده و یک هسته فعال از حدود ۶۰,۰۰۰ مشارکتکننده ماهانه دارد. پایگاه داده کامل کره زمین بیش از ۱۰۰ گیگابایت فشردهشده است و هر دقیقه بزرگتر میشود.
OSM به عنوان داده چه شکلی دارد
OSM یک پوشه از tile های نقشه نیست. یک پایگاه داده ساختاریافته از سه نوع اولیه است:
- Nodes: نقاط تکی با عرض و طول جغرافیایی. برای چیزهایی که ذاتاً یک نقطه هستند استفاده میشوند (یک نیمکت، یک درخت، یک پارکومتر) و به عنوان بلوکهای سازنده اشکال پیچیدهتر.
- Ways: دنبالههای مرتب از nodes. برای ویژگیهای خطی (یک قطعه جاده، یک رودخانه) و اشکال بسته (پایه ساختمان، مرز پارک) استفاده میشوند.
- Relations: گروهبندیهایی از nodes و ways. برای مواردی مثل مسیرهای اتوبوس (دنبالهای از قطعات جاده)، مرزهای اداری و ویژگیهای چندضلعی پیچیده استفاده میشوند.
هر node، way و relation مجموعهای از تگهای key-value دارد. یک جاده ممکن است highway=residential, name=Rue de Rivoli, maxspeed=30 داشته باشد. یک کافه ممکن است amenity=cafe, name=Cafe Central, opening_hours=Mo-Fr 07:00-19:00, wheelchair=yes داشته باشد. واژگان تگگذاری توسط جامعه تعریف شده، در حال تکامل است و در wiki OSM مستند شده.
این ترکیب primitiveهای باز و metadata تگشده است که OSM را بسیار قابل استفاده مجدد میکند. میتوانید هر مسیر دوچرخه در برلین، هر دفیبریلاتور در هلند، یا هر منطقه شرابخیز در فرانسه را با یک کوئری ساختاریافته استخراج کنید.
چطور نقشه ساخته میشود
OSM پیوسته توسط داوطلبانی که از ویرایشگرهای وب (iD)، ویرایشگرهای desktop (JOSM) و ویرایشگرهای موبایل (Vespucci، StreetComplete) استفاده میکنند ویرایش میشود. تغییرات ظرف چند دقیقه وارد پایگاه داده مرکزی میشوند. منابع شامل موارد زیر است:
- تصاویر هوایی دارای مجوز برای استفاده در OSM (Bing، Maxar، Esri)
- ردیابهای GPS بارگذاریشده توسط اعضای جامعه
- دادههای باز دولتی (cadaster، فهرست جادهها، فایلهای آدرس)
- دانش محلی، بهویژه برای ساعات کاری، نامها، دسترسیپذیری و ویژگیهای کوچک
- وارد کردنهای انبوه مجموعه دادههای ساختاریافته (با بررسی دقیق، چون وارد کردنهای بد کیفیت داده را خراب میکنند)
کنترل کیفیت توسط جامعه انجام میشود: ویرایشگران باتجربه تغییرات را بررسی میکنند، ابزارهای خودکار ویرایشهای مشکوک را علامت میزنند و جوامع منطقهای قراردادهای محلی را نگه میدارند. نتیجه نقشهای است که در مناطقی که جامعه فعال است (اروپای غربی، شمال آمریکای شهری، ژاپن) جزئیات غیرمعمولی دارد و در مناطق کمتر نقشهبرداریشده پراکندهتر است.
OSM در مقابل Google Maps
رایجترین سوالی که توسعهدهندگان میپرسند این است که آیا روی OSM بسازند یا روی Google Maps. پاسخ صادقانه بستگی دارد به اینکه چه میسازید.
نقاط قوت OSM: داده باز که میتوانید میزبانی کنید، توزیع مجدد کنید و تحلیل کنید؛ تگگذاری غنیتر نقاط جالب در بسیاری از مناطق؛ منشأ شفاف؛ حاکمیت کامل داده اروپایی؛ قیمتگذاری قابل پیشبینی از طریق providerهای مبتنی بر OSM؛ امکان رندر استایلهای نقشه custom برای برند شما.
نقاط قوت Google Maps: تصاویر Street View؛ دادههای لیست کسبوکار بسیار قوی در برخی مناطق؛ شناختهشدگی برند مصرفی.
برای محصولات developer-grade که به میزبانی EU، جریانهای داده GDPR-clean، استایلدهی custom و قیمتگذاری قابل پیشبینی نیاز دارند، stack مبتنی بر OSM معمولاً انتخاب بهتری است. برای محصولات مصرفی که بهشدت به نقدهای کسبوکار Google یا تصاویر Street View تکیه دارند، Google ارزش منحصربهفردی دارد.
چطور APIهای production روی OSM میسازند
در محیط production تقریباً هیچگاه مستقیماً پایگاه داده OSM را فراخوانی نمیکنید. در عوض از یک API میزبان استفاده میکنید که روی دادههای OSM میسازد و لایههایی را که OSM به تنهایی ارائه نمیدهد اضافه میکند:
- رندر tile: رندر ۱۰۰ گیگابایت داده vector در tile های سریع برای هر سطح zoom نیاز به یک pipeline جدی دارد. Providerهای میزبان این کار را انجام میدهند.
- Geocoding: تبدیل آدرسها به مختصات نیاز به یک موتور جستجوی ایندکسشده روی OSM بهعلاوه heuristicهایی برای رتبهبندی و رفع ابهام دارد.
- Routing و isochrones: OSM نمودار جاده را دارد، اما محاسبه واقعی مسیرهای رانندگی و polygonهای زمان سفر نیاز به یک routing engine دارد.
- Map matching، distance matrices، بهینهسازی: همین داستان.
- SLA، میزبانی EU، انطباق GDPR: providerهای میزبان داده را با شرایط قراردادی که تیمهای enterprise نیاز دارند بستهبندی میکنند.
MapAtlas پلتفرم نقشه اروپایی است که روی دادههای OSM با میزبانی فقط در EU، زیرساخت GDPR-clean و APIهای developer-grade برای geocoding، routing، isochrones، distance matrices و نقشههای استایلدار پویا ساخته شده.
وقتی به داده خام OSM نیاز دارید
گاهی اوقات واقعاً داده خام را میخواهید. موارد رایج:
- تحلیل انبوه: شمارش همه ایستگاههای شارژ وسایل نقلیه برقی در آلمان، نقشهبرداری همه دفیبریلاتورها در اسپانیا.
- گردشکارهای GIS سفارشی: وارد کردن به PostGIS برای spatial joins.
- محصولات نقشه داخلی: رندر tile های خود با کنترل کامل روی استایل.
- غنیسازی داده: اضافه کردن تگهای OSM به رکوردهای مکانی خودتان.
برای این موارد، Geofabrik extracts یا Overpass API نقاط ورود استاندارد هستند. هر دو رایگان هستند، هر دو روی زیرساخت داوطلبانه اجرا میشوند و هر دو با شرایط attribution و مجوز میآیند که باید در هر محصول توزیعشده رعایت کنید.
چرا MapAtlas
MapAtlas APIهای developer-grade روی دادههای مشتق OSM با میزبانی فقط در EU و زیرساخت GDPR-clean میسازد. Geocoding API، Search API، Directions API و Isochrone API همه رکوردهای مکانی تمیز و بهخوبی تگشدهای برمیگردانند که در کد production و در دادههای ساختاریافتهای که به دستیارهای هوش مصنوعی ارسال میکنید بهدرستی کار میکنند. برای شروع عملی، ابزار Coordinates Lookup را امتحان کنید یا What Is a Geocode را برای context عمیقتر بخوانید.
سوالات متداول
OpenStreetMap چیست؟
OpenStreetMap (OSM) یک نقشه رایگان، باز و جمعسپاریشده از کل جهان است که توسط یک جامعه جهانی از داوطلبان نگهداری میشود. هر کسی میتواند نقشه را ویرایش کند، جادهها یا مکانهای جدید اضافه کند و دادهها را تحت Open Database License استفاده کند. در پشت صحنه، OSM یک پایگاه داده ساختاریافته از nodes، ways و relations است که خیابانها، ساختمانها، نقاط جالب، شبکههای حملونقل و ویژگیهای طبیعی را توصیف میکند. اکثر نقشههایی که در برنامههای آبوهوا، پیادهروی، ride-share و APIهای نقشهبرداری developer میبینید با دادههای OSM کار میکنند.
آیا OpenStreetMap برای استفاده تجاری رایگان است؟
بله. دادههای OpenStreetMap تحت Open Database License (ODbL) هستند که استفاده تجاری را مجاز میکند، به شرطی که OpenStreetMap را معرفی کنید و پایگاههای داده مشتق را تحت همان مجوز به اشتراک بگذارید. سرور tile اصلی در openstreetmap.org برای ترافیک production محدودیت دارد، بنابراین اکثر تیمها از یک tile provider میزبان (مانند MapAtlas) استفاده میکنند که روی دادههای OSM میسازد.
OpenStreetMap با Google Maps چه تفاوتی دارد؟
OpenStreetMap داده باز است: هر کسی میتواند کل کره زمین را دانلود کند و روی آن محصول بسازد. Google Maps یک محصول اختصاصی بسته است: دادههای زیرین قابل توزیع مجدد نیستند. برای اکثر موارد استفاده developer (geocoding، routing، استایلهای custom، زیرساخت EU-hosted، GDPR-clean) یک provider مبتنی بر OSM کنترل بیشتر و قیمتگذاری قابل پیشبینیتری میدهد.
تگ OSM چیست و چرا مهم است؟
هر feature در OpenStreetMap مجموعهای از تگهای key-value دارد که توصیف میکند چیست. یک جاده ممکن است `highway=residential` تگ شده باشد، یک رستوران `amenity=restaurant`. واژگان تگگذاری توسط جامعه تعریف شده و در wiki OSM مستند است. تگها همان چیزی هستند که به ابزارهای downstream اجازه میدهند داده را معقول فیلتر کنند: میتوانید 'همه بیمارستانهای پاریس' یا 'همه ایستگاههای شارژ در برلین' را کوئری بزنید چون هر feature به طور سازگار تگ شده است.

