5.2. الدرس: طوبولوجيا المعالم

الطوبولوجيا جانب مفيد من جوانب طبقات البيانات المتجهية، لأنها تقلّل الأخطاء مثل التداخل أو الفجوات.

على سبيل المثال: إذا اشترك معلمان في حدّ واحد، وحرّرت هذا الحد باستخدام الطوبولوجيا، فلن تحتاج إلى تحرير معلم أولًا ثم الآخر، ومحاذاة الحدود بعناية كي تتطابق. بل يمكنك تحرير حدّهما المشترك وسيتغيّر المعلمان كلاهما في الوقت نفسه.

هدف هذا الدرس: فهم الطوبولوجيا من خلال الأمثلة.

5.2.1. ★★☆ تابع معنا: الالتقاط

يجعل الالتقاط التحرير الطوبولوجي أسهل، إذ يتيح لمؤشر الفأرة الالتقاط إلى الكائنات الأخرى أثناء الرقمنة. لضبط خيارات الالتقاط:

  1. انتقل إلى عنصر القائمة Project ► Snapping Options....

  2. اضبط Snapping options: فعّل الالتقاط باستخدام الزر snapping Enable Snapping، واختر Advanced Configuration، وفعّل الطبقة landuse مع Type رأس وتسامح قدره 12 بكسل:

    ../../../_images/set_snapping_options.png
  3. تأكد من تحديد المربع في العمود Avoid overlap.

  4. غادر نافذة الحوار.

  5. حدّد الطبقة landuse وادخل في وضع التحرير (toggleEditing)

  6. تحقّق (من خلال View ► Toolbars) من أن شريط الأدوات Advanced Digitizing مفعّل.

  7. كبّر إلى هذه المنطقة (فعّل الطبقات والتسميات إن لزم الأمر):

    ../../../_images/zoom_to.png
  8. رقمن هذه المنطقة الجديدة (الافتراضية) الموضّحة باللون الأحمر:

    ../../../_images/new_park_area.png
  9. عندما يُطلب منك ذلك، أعطها القيمة 999 للحقل OGC_FID، ولا بأس في ترك القيم الأخرى دون تغيير.

    إذا كنت حريصًا أثناء الرقمنة، وسمحت للمؤشر بالالتقاط إلى رؤوس المناطق المجاورة، فستلاحظ أنه لن تكون هناك أي فجوات بين منطقتك الجديدة والمناطق المجاورة الموجودة.

  10. لاحظ الأداتين undo undo و redo redo في شريط الأدوات Advanced Digitizing.

5.2.2. ★★☆ تابع معنا: تصحيح المعالم الطوبولوجية

قد تحتاج المعالم الطوبولوجية أحيانًا إلى التحديث. ففي منطقة دراستنا، تحوّلت إحدى المناطق إلى غابة، لذا تحتاج الطبقة landuse إلى تحديث. لذلك سنوسّع بعض معالم الغابات في هذه المنطقة ونضمّها:

../../../_images/zoom_to.png

بدلًا من إنشاء مضلعات جديدة لضم مناطق الغابات، سنستخدم أداة الرؤوس (Vertex Tool) لتحرير المضلعات الموجودة وضمّها.

  1. ادخل في وضع التحرير (إن لم يكن نشطًا بالفعل)

  2. اختر الأداة vertexToolActiveLayer Vertex Tool.

  3. اختر منطقة غابة، وحدّد رأسًا، وانقله إلى رأس مجاور بحيث يلتقي معلما الغابة:

    ../../../_images/corner_selected_move.png
  4. انقر على الرؤوس الأخرى والتقطها إلى أماكنها.

    يبدو الحد الصحيح طوبولوجيًا هكذا:

    ../../../_images/areas_joined.png

    تابع وضمّ بضع مناطق أخرى باستخدام أداة الرؤوس.

    يمكنك أيضًا استخدام الأداة capturePolygon Add Polygon Feature لملء الفجوة بين مضلعي الغابة. وإن كنت قد فعّلت Avoid overlap، فلن تحتاج إلى إضافة كل رأس على حدة - إذ ستُضاف تلقائيًا إذا تداخل مضلعك الجديد مع المضلعات الموجودة.

    إن كنت تستخدم بيانات المثال الخاصة بنا، فينبغي أن تكون لديك منطقة غابة تبدو على هذا النحو تقريبًا:

../../../_images/node_example_result.png

لا تقلق إن ضممت مناطق غابات أكثر أو أقل أو مختلفة.

5.2.3. ★★☆ تابع معنا: الأداة: تبسيط المعلم

سنواصل العمل على الطبقة نفسها لاختبار الأداة simplify Simplify Feature:

  1. انقر عليها لتفعيلها.

  2. انقر على إحدى المناطق التي ضممتها باستخدام الأداة vertexToolActiveLayerVertex Tool أو الأداة capturePolygon Add Polygon Feature. سترى نافذة الحوار هذه:

    ../../../_images/simplify_line_dialog.png
  3. عدّل Tolerance ولاحظ ما يحدث:

    ../../../_images/simplify_line_example.png

    يتيح لك هذا تقليل عدد الرؤوس.

  4. انقر على OK

تكمن ميزة هذه الأداة في أنها توفر لك واجهة بسيطة وسهلة للتعميم. لكن لاحظ أن الأداة تُفسد الطوبولوجيا. فالمضلع المبسّط لم يعد يشترك في الحدود مع المضلعات المجاورة له كما ينبغي. لذا فهذه الأداة أنسب للمعالم المستقلة.

قبل المتابعة، أعد المضلع إلى حالته الأصلية بالتراجع عن آخر تغيير.

5.2.4. ★★☆ جرّب بنفسك: الأداة: إضافة حلقة

تتيح لك الأداة addRing Add Ring إضافة حلقة داخلية إلى معلم مضلع (أي قطع ثقب في المضلع)، ما دام الثقب محتوًى بالكامل داخل المضلع (ولا بأس بملامسة الحد). فمثلًا، إن كنت قد رقمنت الحدود الخارجية لجنوب أفريقيا واحتجت إلى إضافة ثقب لمملكة ليسوتو، فستستخدم هذه الأداة.

إذا جرّبت الأداة، فقد تلاحظ أن خيارات الالتقاط قد تمنعك من إنشاء حلقة داخل مضلع. لذا يُنصح بإيقاف الالتقاط قبل قطع الثقب.

  1. عطّل الالتقاط للطبقة landuse باستخدام الزر snapping Enable Snapping (أو استخدم الاختصار s).

  2. استخدم الأداة addRing Add Ring لإنشاء ثقب في منتصف شكل هندسي مضلع.

  3. ارسم مضلعًا فوق المعلم المستهدف، كما لو كنت تستخدم الأداة capturePolygon Add polygon.

  4. عند النقر بالزر الأيمن، سيظهر الثقب.

  5. احذف الثقب الذي أنشأته للتو باستخدام الأداة deleteRing Delete Ring. انقر داخل الثقب لحذفه.

  • تراجع عن تعديلك قبل متابعة التمرين الخاص بالأداة التالية.

5.2.5. ★★☆ جرّب بنفسك: الأداة: إضافة جزء

تتيح لك الأداة addPart Add Part إضافة جزء جديد إلى معلم ما، غير متصل مباشرةً بالمعلم الرئيسي. فمثلًا، إن كنت قد رقمنت حدود البر الرئيسي لجنوب أفريقيا، ولم تُضف بعدُ جزر الأمير إدوارد (Prince Edward Islands)، فستستخدم هذه الأداة لإنشائها.

  1. حدّد المضلع الذي تريد إضافة الجزء إليه باستخدام الأداة selectRectangle Select Features by area or single click.

  2. استخدم أداة addPart Add Part لإضافة منطقة خارجية منفصلة.

  3. احذف الجزء الذي أنشأته للتو باستخدام أداة deletePart Delete Part.

    ملاحظة

    انقر داخل الجزء لحذفه.

5.2.6. ★★☆ تابع معنا: الأداة: Reshape Features

تُستخدم أداة reshape Reshape Features لتوسيع معلم مضلع أو قص جزء منه (على امتداد الحدود).

التوسيع:

  1. حدّد المضلع باستخدام أداة selectRectangle Select Features by area or single click.

  2. انقر بزر الفأرة الأيسر داخل المضلع لبدء الرسم.

  3. ارسم شكلًا خارج المضلع. يجب أن يعود الرأس الأخير إلى داخل المضلع.

  4. انقر بزر الفأرة الأيمن لإنهاء الشكل:

    ../../../_images/reshape_step_one.png

    سيعطيك هذا نتيجة مشابهة لما يلي:

    ../../../_images/reshape_result.png

قص جزء:

  1. حدّد المضلع باستخدام أداة selectRectangle Select Features by area or single click.

  2. انقر خارج المضلع.

  3. ارسم شكلًا داخل المضلع. يجب أن يعود الرأس الأخير إلى خارج المضلع.

  4. انقر بزر الفأرة الأيمن خارج المضلع:

    ../../../_images/reshape_inverse_example.png

    نتيجة ما سبق:

    ../../../_images/reshape_inverse_result.png

5.2.7. ★★☆ جرّب بنفسك: الأداة: Split Features

تشبه أداة splitFeatures Split Features أداة reshape Reshape Features، إلا أنها لا تحذف أيًّا من الجزأين، بل تحتفظ بكليهما.

سنستخدم الأداة لفصل زاوية من مضلع.

  1. حدّد أولًا طبقة landuse وأعد تفعيل الالتقاط لها.

  2. اختر أداة splitFeatures Split Features وانقر على رأس لبدء رسم خط.

  3. ارسم خط الحد الفاصل.

  4. انقر على رأس في الجانب "المقابل" من المضلع الذي تريد تقسيمه، ثم انقر بزر الفأرة الأيمن لإكمال الخط:

    ../../../_images/split_feature_example.png
  5. قد يبدو عند هذه النقطة أن شيئًا لم يحدث، لكن تذكّر أن طبقة landuse تُرسم بلا خطوط حدود، لذلك لن يظهر خط التقسيم الجديد.

  6. استخدم أداة selectRectangle Select Features by area or single click لتحديد الجزء الذي فصلته للتو؛ سيظهر المعلم الجديد الآن مُبرزًا:

    ../../../_images/new_corner_selected.png

5.2.8. ★★★ جرّب بنفسك: الأداة: Merge Features

سنعيد الآن ضم المعلم الذي فصلته للتو إلى الجزء المتبقي من المضلع:

  1. جرّب الأداتين mergeFeaturesMerge Selected Features و mergeFeatureAttributes Merge Attributes of Selected Features.

  2. لاحظ الفروق بينهما.

5.2.9. الخلاصة

تحرير الطوبولوجيا أداة قوية تتيح لك إنشاء الكائنات وتعديلها بسرعة وسهولة، مع ضمان بقائها صحيحة طوبولوجيًّا.

5.2.10. ما التالي؟

أصبحت تعرف الآن كيف ترقمن أشكال الكائنات بسهولة، لكن إضافة البيانات الوصفية لا تزال مزعجة بعض الشيء! سنريك فيما يلي كيف تستخدم النماذج (Forms) لجعل تحرير البيانات الوصفية أبسط وأكثر فاعلية.