title: گرفتن دادههای OSM

تاریخ بازبینی ۱۳۹۶/۰۱/۱۶

هنگامی که می‌خواهید تازه‌ترین داده‌های OpenStreetMap را دریافت کنید، ساده‌ترین راه این است که خروجی یک وبسایت را دانلود کنید. سرویسهای وبی مختلفی وجود دارد که خروجی داده محدوده منطقه انتخابی‌تان را ارائه می‌کنند.

دانلود داده‌های استخراج شده

GeoFabrik

(GeoFabrik](http://geofabrik.de] شرکتی است که متخصص در کار با OpenStreetMap است. آنها خروجی‌های متنوع رایگانی به فرمت فایلهای شیپ و داده خام OSM در وب سایت خود (http://download.geofabrik.de) ارائه میکنند. مزیت دانلود داده‌های GeoFabrik این است که روزانه به روز می‌شوند و آسان و قابل اعتمادند. یکی از معایب آن این است که داده‌ها بر اساس کشور استخراج می‌شوند و همه کشورها در دسترس نیستند.

BBBike

BBBike فایلهای شیپ و فرمت خام OSM را برای شهرهای سراسر جهان فراهم میکند که هفته ای یکبار استخراج میشوند. در صورتی که دنبال استخراج داده های تنها یک شهر هستید این سایت مفید است.

به یاد داشته باشید که ویژگیهای OpenStreetMap تعداد نامحدودی تگ “رایگان” دارد. اما فایلهای شیپ دارای صفاتی هستند که در تعداد محدودی ستون ذخیره شده اند. این یعنی اینکه هنگامی که داده های OSM به فایلهای شیپ تبدیل می شوند، تنها تگهای مشخص شده در جدول فایلهای شیپ گنجانده میشوند. وبسایتهای ذکر شده در بالا فایلهای شیپ را با مجموعه پیش فرضی از تگهای رایج را ارائه میدهند، اما اگر تگهای خاصی را میخواهید
باید از یکی از خدمات تخصصی تر که در بخش بعد توضیح داده شده استفاده کنید یا اینکه خودتان یاد بگیرید چگونه داده های مورد نیاز خود را استخراج کنید.

استخراج های سفارشی

خروجی های HOT

گروه بشردوستانه OpenStreetMap سرویسی ایجاد کرده است که به کاربران اجازه میدهد که منطقه مورد نظرشان را استخراج کنند و همچنین از قالبهای آماده /JOSM استفاده کرده و تگهای سفارشی را انتخاب کنند و در فایل استخراج شده قرار دهند. این سرویس در کلیه کشورهایی که HOT در آنجا کار می کند در سایت export.hotosm.org در دسترس است.

hot exports

BBBike

شما میتوانید منطقه خود را از هر نقطه جهان با استفاده از سرویس http://extract.bbbike.org/ انتخاب کنید. معایب آن عدم توانایی انتخاب تگهای سفارشی و محدودیت در مقدار داده دانلودی است.

Overpass

Overpass یک رابط برنامه نویسی (API) است که برای استخراج داده از یک کپی فقط خواندنی از پایگاه اصلی OpenStreetMap بکار میرود و می‌تواند هر مقدار تقریباْ دلخواه داده را ارائه کند. با استفاده از یک زبان پرس‌وجو می‌توانید مشخص کنید که مجموعه چه داده‌هایی را می‌خواهید به دست آورید. می‌توانید به طور مستقیم از API استفاده کرده و یک درخواست HTTP مستقیم تولید کنید و یا از طریق رابط کاربری overpass turbo اینکار را بکنید.

Overpass Turbo

Overpass Turbo (http://overpass-turbo.eu/) یک ژنراتور پرس‌و‌جوی تعاملی است که ابتدا باید به منطقه مناسب روی نقشه زوم کنید. پرس‌و‌جوی خود را در قسمت سمت چپ صفحه وارد کنید و هرگونه اقدامی را که می‌خواهید با استفاده از دکمه‌های بالای رابط کاربری فعال کنید. اگر به زبان پرس‌وجو آشنایی ندارید، استفاده از جادوگر (wizard) می‌بایستی نقطه شروع شما باشد. ویکی OSM شرح [کاملی(http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL) از دستور زبان پرس‌وجو و همچنین [مجموعه ای از مثال(http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_API_by_Example) در این زمینه دارد.

تمام داده‌های انتخاب شده در اثر پرس‌وجو روی نقشه پررنگ می‌شوند که می‌توانید بعداً آنها را تغییر دهید. “Run” را بزنید تا نتیجه نمایش داده شده بازسازی شود. هنگامی که نتیجه نشان داده شده راضی‌کننده شد، سپس “Export” گزینه‌های متعددی را ارائه می‌کند، از جمله اطلاعات خام OSM. اگر مقدار داده محدود است، همچنین می‌توانید به طور مستقیم پس از تغییر بین نمای نقشه و نمای داده با استفاده از آخرین دکمه سمت راست به آنها دسترسی پیدا کنید. گزینه صدور Query -> compact OverpassQL لینکی تولید می‌کند که در API Overpass قابل استفاده است.

overpass turbo

اگر میخواهید یک پرس‌وجو فانتزی برای به دست آوردن زیرمجموعه‌ای از داده‌ها از یک منطقه بزرگ طراحی کنید، بهتر است این درخواست را در Overpass Turbo و در یک منطقه کوچک تست کنید و گسترش دهید. سپس می‌توانید روی منطقه کامل مورد علاقه خود زوم کنید و آدرس اینترنتی پرس‌وجوی ایجاد شده را مستقیماً در API بکار ببرید. بخش بعدی چگونگی انجام اینکار را توضیح میدهد.

Overpass API

[Overpass API] (http://wiki.openstreetmap.org/wiki/Overpass_API) یک سرویس اختصاصی است که به منظور پرس‌وجو بهینه شده است اما اطلاعات را در OpenStreetMap نمی‌نویسد. با توجه به این بهینه‌سازی، در مقایسه با API اصلی بسیار سریع عمل کرده و عملاً هیچ محدودیتی در میزان انتقال داده‌ها ندارد. چندین نمونه از این سرویس در شبکه وجود دارد، یکی که در مثال زیر استفاده شده است نیز اطلاعاتی را در صفحه اصلی‌اش ارائه می‌کند.

اگر یک پرس‌وجوی URLی برای ارسال درخواست HTTP به API Overpass دارید، ابزاری مانند [wget] (https://www.gnu.org/software/wget/) - برای سیستم عامل های مختلف موجود است، اینجا را ببینید - به شما اجازه می‌دهد اطلاعات OSM خام را مستقیما از سرور دانلود کرده و ذخیره کنید. قطعه برنامه کوچک زیر یک اسکریپت در سیستم های یونیکس است که تمام داده‌های یک کادر محدوده مشخص را به دست می آورد:

echo lower left latitude
read ll_lat
echo lower left longitude
read ll_lon
echo upper right latitude
read ur_lat
echo upper_right longitude
read ur_lon
echo output file
read file
url="http://overpass-api.de/api/interpreter?data=(node($ll_lat,$ll_lon,$ur_lat,$ur_lon);<;rel(br););out meta;"
wget -O $file "$url"

اینجا چه اتفاقی می افتد؟ (برای کنجکاوانی که نمی‌خواهند مستندات کامل زبان پرس‌وجو را بخوانند)
node(…) همه نقطه‌های محدوده کادر را انتخاب می‌کند؛
<بازگشت به طور کامل، یعنی تمام شیوه ها حاوی این گره ها و تمام روابط حاوی این گره ها و راه ها را انتخاب می کند؛
rel (br) انتخاب تمام روابط والدین روابط به دست آمده تا کنون (در غیر این صورت روابط اصلی نمی شود به دست آورد)

خلاصه

خدمات ذکر شده در این فصل تمام مواردی است که کاربر متوسط نیاز به دریافت اطلاعات OSM دارد و می تواند با آن در نرم‌افزار GIS کار کند. با این حال، خودتان ممکن است بخواهید روشهای کارآمدتری برای کار با داده‌ها فرا بگیرید. فصل‌های باقیمانده در این بخش کاملاً فنی هستند اما روش های پیشرفته‌تر دستکاری و دسترسی به داده‌های OSM را نشان می دهند.

CC0
Official HOT OSM learning materials