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

إنشاء مخطط ارتفاعات المسار لتطبيق جري

يهتم العداؤون الذين يخططون لمسار بالتلال بطريقة يصعب تقديرها من خريطة مسطحة وحدها، لأن مسارين بالمسافة نفسها قد يبدوان مختلفين تمامًا بحسب مقدار الصعود المحتشد فيهما، وقد ظل بند واحد قرب قمة لوحة طلبات الميزات في أحد تطبيقات الجري لأشهر: عرض مخطط الارتفاعات لمسار مخطط قبل أن يلتزم أحد بالجري فيه.

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

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

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

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

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

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

توثيق نقطة النهاية، بما في ذلك حدود عدد النقاط لكل طلب، متاح في /docs/elevation-lookup/.