إنشاء مضلع دولة
هذه المقالة بحاجة إلى مراجعة
تصف هذه المقالة كيفية إنشاء مضلع (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
- املأ اسم بلدك
- بمجرد العثور عليه، انقر على الرابط "(details)"
- في التفاصيل، قم بالتمرير لأسفل إلى "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" لإنشاء مستودعك الشخصي الخاص بك
- أنشئ ملفًا جديدًا وانسخ بيانات المضلع بداخ له. احفظ الملف.
- أنشئ طلب سحب.
أضف إنشاء الخريطة إلى قائمة الدُفعات
- انتقل إلى عنوان الويب الخاص بخادم تطوير OsmAnd على github.com/osmandapp
- حدد قسم OsmAnd-tools.
- حدد "fork" لإنشاء مستودعك الشخصي الخاص بك.
- في مستودعك الشخصي، انتقل إلى المجلد obf-generation/regions.
- حدد ملف indexes.xml وانقر على تحرير.
- أضف بلدك في الموقع المناسب واحفظ الملف.
- أنشئ طلب سحب.
إنشاء خرائطك الشخصية من مضلع
يمكنك إنشاء مضلعات من البلدان، المقاطعات/المحافظات/الولايات، المناطق والمدن على سبيل المثال.
لنفترض أن ابنتك ستذهب إلى باريس لبضعة أيام مع صديقة. إنها غير مهتمة بالملاحة أو المشي أو ركوب الدراجات (إلا إذا كان ذلك ضروريًا للغاية)، لكنها تريد أن تعرف مكانها، وإلى أين تذهب، وأين تجد الأماكن المثيرة للاهتمام (نقاط الاهتمام). بالإضافة إلى ذلك، لديها هاتف صغير (وحدة معالجة مركزية منخفضة الجودة، ذاكرة منخفضة) وبطاقة SD صغيرة (مليئة بالموسيقى). لذا يجب أن تكون الخريطة صغيرة قدر الإمكان: للت خزين وكذلك للأداء. يمكنك بالطبع تنزيل خريطة france_ile-de-france.obf التي تحتوي على باريس، ولكن يمكنك أيضًا إنشاء خريطة باريس "مخصصة".
- دع ابنتك تقوم بتنزيل OsmAnd، أو الأفضل من ذلك: دعها تشتري OsmAnd+
- احصل على معرف علاقة OSM لباريس من Nominatim.
- احصل على المضلع (المبسط) لمعرف باريس من polygons.openstreetmap.fr
- قم بتنزيل أو تجميع osmconvert
- قم بتنزيل خريطة "البيانات الخام" لإيل دو فرانس من geofabrik.de
- أنشئ خريطة بيانات خام لباريس من خريطة إيل دو فرانس ومضلع باريس مثل:
$ 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.