<>" /> <>" />
أكثر

تحديد زاوية الشارع من خلال تحليل إخراج ممر علوي - تربو xml


أقوم حاليًا بتنزيل جميع تقاطعات الشوارع من المربع المحيط باستخدام الاستعلام أدناه (شاهده على الجسر).

                   

الإخراج عبارة عن مستند مكون من 92 صفحة (بما في ذلك التكرارات) يحتوي على عقد (معرف العقدة وخطوط العرض وطويلة). أقوم باستخراج خطوط الطول والعرض من أجل إنشاء رابط Google Street View Image لأنني أريد تنزيل الصورة المقابلة لكل نقطة. في تكوين الرابط أريد أيضًا حساب زاوية الاتجاه للشارع ؛

أعلم أن الصيغة الحسابية مطلوبة ولكنها تتطلب خطين وطول 2 (من نقطتين في نفس الشارع) ومشكلتي هي أن العقد في ملف الإخراج ليس لها ترتيب معين. لذلك ، لا يمكنني حساب الزاوية بين عقدتين متتاليتين.

كنت أفكر في فرز خطوط العرض أو الطول بترتيب تصاعدي / تنازلي لأنه بهذه الطريقة قد أجد النقاط في نفس الشارع. هل هذه الطريقة صحيحة أم يمكنني حلها بطريقة أسهل؟ هل هناك طريقة أكثر فاعلية للعثور على جميع تقاطعات الشوارع؟


أنت بحاجة إلى جزء من الإجابة للطرق. الطرق في OSM هي قوائم مرتبة لمراجع العقد.

لذا فإن الجزء الذي تحتاجه من الإجابة يجب أن يبدو كما يلي:

          

أينيشير إلى العقدة1827734835. وفيما يلي تفاصيل تلك العقدة بالإحداثيات:


لقد أعدت كتابة استفسارك باستخدام OverpassQL:

[الخروج: xml] [المهلة: 25] ؛ // filter way way [highway] [highway! ~ "footway | cycleway | path | service | track"] ({{bbox}}) ->. hw؛ // foreach way foreach.hw ->. eachw (// الحصول على الطرق ، التي تشترك في نفس العقد مطروحًا منها الطريقة الحالية // إلى عقدة .otherws (w.eachw) ->. ns ؛ way (bn.ns) [الطريق السريع] [ الطريق السريع! ~ "footway | cycleway | path | service | track"] ->. w2 ؛ (way.w2 ؛ - way.eachw ؛) ->. otherws ؛ // احصل على عقد مشتركة (w.otherws) ->. n2؛ node (w.eachw) ->. n3؛ (((node.n2؛ node.n3؛) - (node.n2؛ - node.n3؛)؛) - (node.n3؛ - node.n2؛ )؛) ->. shrdnodes؛ // الطرق الموجودة في طريق التقاطع (bn.shrdnodes) ->. outways؛ // طرق الاتحاد والعقد (way.outways؛ node.shrdnodes؛)؛ out؛ // dirty hack / / (عقدة (100000) ؛ عقدة (w.outways) ؛ عقدة (100000) ؛) ؛ خارج ؛) ؛

في هذه المرحلة ، ستحصل على نقاط مشتركة ، وطرق بعدها. يمكنك إرسال استعلامات منفصلة للحصول على أشكال هندسية للطرق السريعة ، أو إلغاء التعليق بعد ذلك// الاختراق القذر.

ما يفعله هؤلاء الاختراق ولماذا نحتاج إليه. بدونها ، ستحصل على:

  • عقد الوصل
  • طرق الوصل ، ولكن بدون عقد

لا يعد re خيارًا للتجاوز للحصول على قائمة بالمجموعة التي ينتمي إليها الكائن ، أو وضع علامة على مجموعة النتائج الخاصة بك بأي طريقة أخرى.

لذلك أنا استخدمعقدة (100000)(العقدة ذات المعرف = 100000) كقوس لإخراجي لعقد المجموعة ، والتي ليست عقدًا مشتركة ، ولكنها مجرد عقد لبناء هندسة كاملة لطريقة ما. إذا كان هناك خيار لتضمين مجموعات البيانات للإجابة كملف تعريف للكائنات ، فيمكنني فقط إضافة جميع العقد بمجموعات مختلفة.

لذلك يبدو الجسر العلوي

                             


شاهد الفيديو: أسرار تصميم و تنفيذ الطرق في خطوات بسيطة (شهر اكتوبر 2021).