حالات الاستخدام

إنشاء فحص لنطاق نقاط الالتقاط في خدمة مشاركة الرحلات

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

بنت الخدمة الفحص حول الإحداثيات بدلًا من العناوين، لأن دبوس الالتقاط الخاص بالراكب كان أصلًا إحداثية مثبتة على خريطة داخل التطبيق، لا نصًا مكتوبًا. وبالنسبة إلى تلك الإحداثية الخام، استخدمت الخدمة /v1/reverse للحصول على عنوان مقروء ومنطقته الإدارية، وهو أمر مفيد لعرض موقع التقاط مؤكد على الراكب وللموظفين الذين يراجعون أي رحلة مُعلَّمة بعد وقوعها، لأن الإحداثية وحدها يصعب على الإنسان التحقق منها بسرعة، بخلاف العنوان المحلول.

كان فحص الحدود الفعلي نفسه مقارنة هندسية مباشرة، تنفذها الواجهة الخلفية للتطبيق، بين إحداثية الراكب والمضلع الذي يصف منطقة التشغيل المعتمدة، وهو حساب لا يتطلب خدمة خارجية بمجرد توفر إحداثية لاختبارها. أما دور نقاط نهاية الموقع فكان ضمان أن يجد ذلك الاختبار دائمًا إحداثية حقيقية يعمل عليها، بتحويل ما كتبه الراكب من جهته في التطبيق، إن كتب عنوانًا بدلًا من تثبيت دبوس، إلى إحداثية عبر /v1/forward أولًا.

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

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

هذا النوع من تطبيق الحدود ليس مشكلة تقنية معقدة بمجرد توفر عناصر الموقع. فالجزء الصعب كان ضمان أن ينتهي كل التقاط وإنزال، مهما كانت طريقة إدخاله في التطبيق، دائمًا إلى إحداثية يمكن لفحص الهندسة في الواجهة الخلفية استخدامها فعلًا، وقد تولت ذلك /v1/forward و/v1/reverse معًا بحسب الاتجاه الذي تأتي منه البيانات.

ارتبط حجم الطلبات مباشرة بعدد الرحلات، استعلام أو اثنان لكل رحلة، وهو عبء عمل بقي ضمن الحصة اليومية المجانية لخدمة بهذا الحجم تعمل في منطقة واحدة محدودة. توثيق نقطتي النهاية متاح في /docs/forward-geocoding/ و/docs/reverse-geocoding/.