إنشاء مضلع دولة
هذه المقالة بحاجة إلى مراجعة
تصف هذه المقالة كيفية إنشاء مضلع (polygon) لدولة مفقودة في geofabrik.de وكيفية إضافة هذا المضلع إلى خادم إنشاء الخرائط الخاص بـ OsmAnd.
مقدمة
يأتي OsmAnd مع العديد من الخرائط لعدد كبير من الدول. يتم إنشاء معظم الخرائط من "البيانات الخام" للخرائط التي تم تنزيلها من geofabrik.de. توفر Geofabrik هذه الخرائط ذات البيانات الخام مجانًا للجميع، وتقدم خدمات ومنتجات (تجارية) تعتمد على هذه الخرائط.
تتبع Geofabrik.de استراتيجية تقديم خرائط للدول التي يطلبها عدد كبير من المستخدمين أو من قبل عملائها. هذا يعني أن بعض الخرائط لا تظهر أبدًا على geofabrik لأنه ببساطة لا توجد طلبات كافية (أو لا توجد على الإطلاق)، مثل بعض الدول الغريبة مثل سيشيل أو بوروندي، إلخ.
عملية الخادم
بسبب هذا القرار الاستراتيجي لـ geofabrik، يمتلك OsmAnd خيارًا لإنشاء خرائط لهذه الدول، وتُستخدم الأدوات OsmAndMapCreator و osmconvert لهذا الغرض. بالنسبة لـ OsmAndMapCreator، هذه عملية من ثلاث خطوات:
- يحتاج OsmAndMapCreator إلى مضلع يحيط بالحدود الخارجية للدولة.
- يحتاج OsmAndMapCreator إلى "خريطة البيانات الخام" من المستوى الأعلى التالي الذي يضم هذه الدولة. بالنسبة لبوروندي، هذا يعني أن OsmAndMapCreator يحتاج إلى خريطة إفريقيا. بالنسبة لـ Nordrhein-Westfalen، هذا يعني أن OsmAndMapCreator يحتاج إلى خريطة ألمانيا.
- سيقوم Osmconvert بإنشاء خريطة "بيانات خام" من المضلع عن طريق استخراج بيانات الخريطة من الخريطة "الأصل".
- سيقوم OsmAndMapCreator بإنشاء خريطة OsmAnd obf بناءً على خريطة "البيانات الخام" الوسيطة التي تم إنشاؤها بواسطة osmconvert.
الإجراءات الضرورية
اعتمادًا على تعقيد المضلع (الذي تم إنشاؤه)، يمكن أن تستغرق هذه السلسلة الكاملة من الإجراءات من 10 دقائق إلى ساعتين إجمالاً.
1. الحصول على علاقة OpenStreetMap من Nominatim
- انتقل إلى nominatim.openstreetmap.org
- املأ اسم دولتك
- بمجرد العثور عليها، انقر على الرابط "(تفاصيل)"
- في التفاصيل، قم بالتمرير لأسفل إلى "OSM: relation " وقم بتدوين أو نسخ رقم معرف العلاقة.
2. إنشاء المضلع
- انتقل إلى polygons.openstreetmap.fr
- املأ (أو الصق) رقم معرف "OSM: relation " الذي استرجعته من Nominatim لدولتك المطلوبة في حقل "Id of relation".
- سيؤدي هذا إلى إنشاء مضلع افتراضي، يتكون من 250 إلى 3500 عقدة (NPoints). يمكن العثور على المضلع نفسه في عمود "poly".
- في حالة وجود أكثر من 350 عقدة، ستحتاج إلى تبسيط المضلع. كلما كان المضلع أبسط، كلما أمكن إنشاء خريطة الدولة بشكل أسرع (بالطبع اعتمادًا على المحتويات).
3. تبسيط المضلع
يجب أن يكون عدد نقاط العقدة (NPoints) منخفضًا قدر الإمكان لإنشاء الخريطة بأسرع ما يمكن بواسطة OsmAndMapCreator. كما ذكرنا: في حالة وجود أكثر من 350 نقطة عقدة، حاول تقليلها عن طريق تبسيط المضلع.
- في حالة وجود أكثر من 350 عقدة، حاول تقليلها عن طريق "اللعب" بمتغير X (في تجربتي، لا تهم المتغيرات الأخرى حقًا).
- في بعض الأحيان تحصل على نتائج رائعة (90 نقطة عقدة، 200 نقطة عقدة، 270 نقطة عقدة) وعندها تكون قد انتهيت من هذه الخطوة. في بعض الأحيان لا يمكنك النزول إلى أقل من 450 نقطة عقدة أو نحو ذ لك. عندها تحتاج إلى تطبيق خطوات يدوية إضافية.
- احفظ المضلع النهائي في ملف. استخدم الاسم الافتراضي الصحيح له، مثل france.poly. التزم بالأحرف الصغيرة.
4. المزيد من التعديل والتبسيط للمضلع
- افتح JOSM (قم بتنزيله إذا لزم الأمر) وافتح ملف المضلع الذي أنشأته (هل قمت بعمل نسخة احتياطية من المضلع الأصلي الذي حفظته؟).
- أضف خلفية من قائمة "الصور" وحدد الخلفية الافتراضية "OpenStreetMap (Mapnik)".
- قم بإزالة نقاط العقدة يدويًا حيثما أمكن. ملاحظة: حافظ على المضلع قريبًا قدر الإمكان من الحدود. تحتاج إلى بعض التداخل ولكن حاول إبقائه أقل من 2-5 كيلومترات. سيتم إنشاء التداخل في الدول مرتين لكل دولة. تداخل أقل يعني وقت عرض أقل وأخطاء عرض أقل. عند السواحل وحول الجزر، حاول الحفاظ على مسافة أكبر (20 كيلومترًا). هذا مقبول على نطاق واسع والبحر "فارغ" على أي حال.
- عندما تكون قد بذلت قصارى جهدك، يمكنك حفظ المضلع المحدث والمصحح. كما ذكرنا: حاول الحصول على أقل عدد ممكن من نقاط العقدة، ولكن في بعض الأحيان تكون حدود الدولة معقدة جدًا بحيث تحتاج ببساطة إلى المزيد من نقاط العقدة لوصفها والحفاظ على المضلع قريبًا قدر الإمكان من الحدود: فليكن.
- لا تقم بتحميل المضلع إلى OSM. سيطلب منك JOSM تحميل عملك إلى OpenStreetMap. لا تفعل هذا لهذه المضلعات إلا إذا كنت تعرف بالضبط ما تفعله. فكل دولة في العالم تقريبًا مغطاة بالفعل بشكل مثالي في OpenStreetMap (وإلا فلن يتمكن nominatim من تزويدك بالتفاصيل حول الدولة، ولن يتمكن polygons.openstreetmap.fr من إنشاء المضلع بناءً على معرف علاقة OSM).
5. إضافة المضلع إلى خادم OsmAnd
لكي تتمكن من القيام بذلك، يجب عليك التسجيل كمستخدم.
لجعل إنشاء الخريطة ممكنًا، هناك خطوتان مطلوبتان:
- إضافة المضلع إلى قسم بيانات الخريطة
- إضافة الدولة إلى ملف البيانات المستخدم لإنشاء خرائط OsmAnd obf.
إضافة المضلع إلى قسم بيانات الخريطة
- انتقل إلى عنوان الويب الخاص بخادم تطوير OsmAnd على https://github.com/osmandapp/
- حدد قسم OsmAnd-misc.
- حدد "fork" لإنشاء مستودعك الشخصي.
- أنشئ ملفًا جديدًا وانسخ بيانات المضلع بداخله. احفظ الملف.
- أنشئ طلب سحب (pull request).
إضافة إنشاء الخريطة إلى قائمة الدُفعات
- انتقل إلى عنوان الويب الخاص بخادم تطوير OsmAnd على github.com/osmandapp
- حدد قسم OsmAnd-tools.
- حدد "fork" لإنشاء مستودعك الشخصي.
- في مستودعك الشخصي، انتقل إلى المجلد obf-generation/regions.
- حدد ملف indexes.xml وانقر على تحرير.
- أضف دولتك في الموقع المناسب واحفظ الملف.
- أنشئ طلب سحب (pull request).
إنشاء خرائطك الشخصية من مضلع
يمكنك إنشاء مضلعات من الدول، المقاطعات/المحافظات/الولايات، المناطق والمدن على سبيل المثال.
لنفترض أن ابنتك ستذهب إلى باريس لبضعة أيام مع صديقة. هي ليست مهتمة بالملاحة أو المشي أو ركوب الدراجات (إلا إذا كان ذلك ضروريًا للغاية)، لكنها تريد أن تعرف أين هي، وإلى أين تذهب، وأين تجد الأماكن المثيرة للاهتمام (نقاط الاهتمام). بالإضافة إلى ذلك، لديها هاتف صغير (وحدة معالجة مركزية منخفضة الأداء، ذاكرة منخفضة) وبطاقة SD صغيرة (مليئة بالموسيقى). لذا يجب أن تكون الخريطة صغيرة قدر الإمكان: للتخزين وكذلك للأداء. يمكنك بالطبع تنزيل خريطة france_ile-de-france.obf التي تحتوي على باريس، ولكن يمكنك أيضًا إنشاء خريطة باريس "مخصصة".
- دع ابنتك تقوم بتنزيل OsmAnd، أو الأفضل من ذلك: دعها تشتري OsmAnd+
- احصل على معرف علاقة OSM لباريس من Nominatim.
- احصل على المضلع (المبسط) لمعرف باريس من polygons.openstreetmap.fr
- قم بتنزيل أو تجميع osmconvert
- قم بتنزيل خريطة "البيانات الخام" لـ ile-de-france من geofabrik.de
- قم بإنشاء خريطة بيانات خام لباريس من خريطة ile-de-france ومضلع باريس مثل:
$ osmconvert ile-de-france.osm.pbf -B=paris.poly --out-pbf > Paris.osm.pbf
- قم بتنزيل تطبيق OsmAndMapCreator من download.osmand.net/latest-night-build/
- قم بإنشاء خريطة OsmAnd obf الخاصة بك من خريطة بيانات Paris.osm.pbf باستخدام OsmAndMapCreator.