GISarabia.org
مصادر البيانات › OpenStreetMap
openstreetmap.org · Overpass API · ODbL 1.0

OpenStreetMap وOverpass: استخراج بيانات أي مدينة

خريطة العالم المفتوحة التي يبنيها ملايين المتطوعين: طرق ومبانٍ ومرافق لكل مدن العالم. تعرّف كيف تستخرج منها ما تحتاجه فقط عبر Overpass API أو إضافة QuickOSM. ومنها جاءت طبقة الطرق في بيانات تدريب الكتيب.

افتح الموقع openstreetmap.org

1ما هو OpenStreetMap؟

مشروع لبناء خريطة حرة للعالم يحررها متطوعون، وتدير بنيته مؤسسة OpenStreetMap. كل عنصر فيه (طريق، مبنى، مستشفى) مخزّن مع وسوم (Tags) بصيغة مفتاح=قيمة، مثل highway=primary أو amenity=hospital.

طريقة الحصول على البياناتمتى تستخدمها
Overpass API / Overpass Turboعناصر محددة لمنطقة محددة (مثل الطرق الرئيسية لمدينة واحدة فقط) — الطريقة المستخدمة في بيانات الكتيب
إضافة QuickOSM في QGISنفس Overpass لكن من داخل QGIS مباشرة
Geofabrikكل البيانات لدولة أو منطقة كاملة
XYZ Tilesخريطة أساسية للعرض فقط (صورة، لا بيانات)

2وسوم الطرق

مفتاح highway يصنّف الطرق من الأعلى أهمية إلى الأدنى:

القيمةالمعنىمثال نموذجي
motorwayطريق سريعطرق سريعة بين المدن والطرق الدائرية
trunkطريق رئيسي شريانيالمحاور الكبرى عبر المدينة
primaryطريق رئيسيالشوارع الرئيسية بين الأحياء
secondary · tertiaryطرق ثانوية وفرعيةشوارع تجميعية
residential · serviceشوارع سكنية وخدميةداخل الأحياء
*_linkوصلات ومنحدراتمداخل ومخارج الطرق السريعة

وسوم إضافية مفيدة: name، name:ar، name:en، ref (رقم الطريق)، oneway، lanes (عدد المسارات)، maxspeed.

قواعد التصنيف تختلف قليلًا من دولة لأخرى، ولكثير من الدول صفحة في ويكي OSM تشرح أعرافها. تحقق بصريًا من تصنيف الطرق في منطقتك قبل بناء تحليل عليه.

3الاستخراج عبر Overpass Turbo

  1. افتح overpass-turbo.eu والصق الاستعلام في المحرر يسارًا.
  2. اضغط Run (أو Ctrl+Enter). ستظهر النتائج على الخريطة يمينًا.
  3. اضغط Export واختر GeoJSON لتنزيل الملف.
  4. زر Wizard (Ctrl+I) يبني استعلامًا من كلمات بسيطة مثل highway=primary in Cairo.

استعلام للمنطقة الظاهرة على الخريطة

Overpass QL
[out:json][timeout:90];
// الطرق من السريعة حتى tertiary داخل المنطقة الظاهرة على الخريطة
way["highway"~"^(motorway|trunk|primary|secondary|tertiary)(_link)?$"]({{bbox}});
out geom;

حرّك الخريطة في Overpass Turbo إلى مدينتك ثم شغّل الاستعلام؛ {{bbox}} تُستبدل تلقائيًا بحدود العرض الحالي. هذا هو نفس نوع الاستعلام الذي أنتج طبقة الطرق في بيانات التدريب.

خارج Overpass Turbo (في سكربت أو QuickOSM) اكتب المستطيل بالأرقام بترتيب جنوب، غرب، شمال، شرق (عرض ثم طول)، مثل (S,W,N,E).

استعلام باسم المدينة

Overpass QL
[out:json][timeout:180];
{{geocodeArea:اسم المدينة}}->.a;
way["highway"~"^(motorway|trunk|primary)(_link)?$"](area.a);
out geom;

{{geocodeArea:…}} تعمل في Overpass Turbo فقط، وتبحث عن الاسم وتأخذ أول نتيجة؛ قد تعيد إقليمًا إداريًا أكبر يحمل نفس الاسم بدل المدينة، فتحقق من النتيجة على الخريطة.

مثال آخر: المستشفيات

Overpass QL
[out:json][timeout:120];
nwr["amenity"="hospital"]({{bbox}});
out center;

nwr تعني نقاط وخطوط وعلاقات معًا (بعض المستشفيات مرسومة كمضلع مبنى)، وout center تحوّلها كلها إلى نقاط.

4الاستخراج من QGIS بإضافة QuickOSM

  1. Plugins › Manage and Install Plugins وثبّت QuickOSM (يتطلب QGIS 3.40 أو أحدث).
  2. افتح Vector › QuickOSM › QuickOSM….
  3. في تبويب Quick query: Key = highway، Value = primary. أضف صفوفًا أخرى لـ motorway وtrunk.
  4. اختر In واكتب اسم المدينة، أو Canvas Extent لاستخدام المنطقة الظاهرة على الخريطة.
  5. اضغط Run query؛ ستُضاف الطبقات مباشرة إلى المشروع.

تبويب Query يقبل استعلامات Overpass كاملة مثل الأمثلة أعلاه. الطبقات الناتجة مؤقتة؛ احفظها بـ Export › Save Features As إلى GeoPackage.

الطريقة الثالثة: سكربت Python يرسل الاستعلام إلى Overpass ويحفظ GeoJSON؛ وهي المستخدمة في scripts/fetch_roads.py في مجلد الكتيب.

5الرخصة والإسناد

بيانات OSM مرخّصة بـ رخصة قاعدة البيانات المفتوحة ODbL 1.0:

© OpenStreetMap contributors — openstreetmap.org/copyright

هذه هي الصيغة المستخدمة في الكتيب وبيانات التدريب: «© مساهمو OpenStreetMap (ODbL)».

6حدود الاستخدام وسياسة البلاطات

Overpass API العام

بلاطات الخريطة (XYZ Tiles)

7نصائح وقيود

8روابط مهمة