أكثر

قيود الدوران في GraphHopper

قيود الدوران في GraphHopper


نسخة مختصرة

لا يبدو أن قيود الانعطاف تؤخذ في الاعتبار في توجيه GraphHopper ، على الرغم من أن مشكلات GitHub تشير إلى أنه تم تنفيذه. لا أحد يعرف حالة هذا؟ هل تم تنفيذه ، ولكن لم يتم دمجه ، أم لم يتم إصداره ، ولم يتم طرحه أو لم يتم تشغيله ببساطة؟ أم أن هناك مشكلة في البيانات في المثال أدناه؟ ما حالة قيود الانعطاف في حلول التوجيه الأخرى المستندة إلى OpenStreetmap؟

نسخة مفصلة

قارة

GraphHopper Maps هي الحل الأمثل للتوجيه. يبدو أنها أفضل خدمة توجيه مع بيانات OpenStreetmap ، والتي بدورها تعد قاعدة البيانات الأكثر اكتمالا لطرق ركوب الدراجات وممرات المشاة.

نظرًا لأنني أقوم أيضًا بعمل بعض خرائط OpenStreetmap وأردت التقدم إلى ميزات أكثر تعقيدًا مثل قيود الانعطاف ، فقد حاولت التعلم من أمثلة الآخرين. يبدو أنه تم التعرف عليها من قبل JOSM ، ولكن لم يتم أخذها في الاعتبار من قبل GraphHopper.

مثال

هنا مثال على درجة تعقيد متوسط ​​مع تقاطع يحتوي على تقييد انعطاف يمين وتقييد انعطاف على شكل حرف U. يبدو أن OpenStreetmap يحتوي على قيود الدوران المناسبة ويبدو أن JOSM تفهمها (انطلاقًا من إشارات المرور الموضحة في التمثيل الرسومي).

لاحظ أنني حددت "من" عبر في كلتا الحالتين ، لذلك يتم تحديدها في تصور الخريطة ويمكنك تأكيد عدم وجود خلط بين الإدخال "من" و "إلى".

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

تنفيذ GraphHopper

لذلك كنت أتساءل ، إذا كانت المشكلة في بيانات OpenStreetmap أو في GraphHopper.

من إصدار GitHub رقم 2 "دعم قيود الانعطاف والتكاليف" ، أدركت أن ميزة قيود الانعطاف قد تم تنفيذها بالفعل منذ فترة. ولكن هناك مشكلة GitHub ذات الصلة رقم 55 "التنفيذ الأولي لدعم تقييد الدوران من قبل khuebner" والتي تتحدث عن بعض مشاكل الدمج مع كود معقد للغاية في التزام واحد. كما يشير أيضًا إلى تقسيم الدمج إلى عدة أجزاء ، طلبات السحب # 133 و # 134 و # 135 و # 158. تم تمييزها جميعًا على أنها "مغلقة" أو "مدمجة".

أسئلة

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


ميزة تقييد الانعطاف (أيضًا تكلفة الدوران) غير مطبقة حاليًا لوضع زيادة السرعة ، ويتم استخدام وضع زيادة السرعة هذا في GraphHopper Maps. ولكن يمكنك بسهولة تنزيل GraphHopper لتمكين وضع المرونة في config.properties وسيعمل:

Prepar.chWeighting = no graph.flagEncoders = car | turnCosts = true

تحديث: جميع الأوضاع بما في ذلك وضع السرعة تدعم قيود الانعطاف (حتى تكاليف الدوران العامة) منذ الإصدار 0.12.


تحرير: يعكس بناء الجملة المحدث من config.properties

Prepar.ch.weightings = no graph.flag_encoders = car | turn_costs = true

شاهد الفيديو: 2017 - Thesis GraphHopper-Routing mit Maut-Erweiterung