المسار إلى نقاط التنقّل

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

خلفية

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

تعالج خيارات نقاط الطريق المحسّنة هذه المشكلة من خلال السماح بتقديم المزيد من السياق.

استخدام رمز مميّز لنقطة التنقّل

للحصول على أدق مسار إلى نقاط تنقّل معيّنة، مثل المداخل أو أرصفة التحميل أو مناطق الاستلام المحدّدة، يمكنك استخدام navigationPointToken. يتم الحصول على هذا الرمز المميّز من خلال استدعاء طريقة destinations في واجهة برمجة التطبيقات Geocoding. وهي تمثّل نقطة تنقّل محدّدة يمكن توجيه المستخدمين إليها ومرتبطة بمكان.

لتحديد رمز مميّز لنقطة التنقّل، اتّبِع الخطوات التالية:

  1. احصل على navigationPointToken من طريقة Destinations في Geocoding API الردّ.
  2. أنشئ Waypoint باستخدام الطريقة setNavigationPointToken() في أداة الإنشاء.

ملاحظة: عند استخدام setNavigationPointToken()، لا يمكنك استخدام setLatLng() أو setPlaceIdString() في الوقت نفسه. ولا يمكن استخدام هذه الطرق مع setNavigationPointToken().

// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint

Waypoint waypointWithToken = Waypoint.builder()
    .setTitle(destinationName)
    .setNavigationPointToken(navPointToken)
    .build();

// Use this waypoint in navigator.setDestinations()

استخدام رموز مميزة لنقاط التنقّل ورموز مميزة للمسار

يمكنك استرداد الرمز المميّز لنقطة التنقّل من خلال Geocoding API، واسترداد الرمز المميّز للمسار من خلال Routes API، ثم تمرير كل من الرمز المميّز لنقطة التنقّل والرمز المميّز للمسار إلى Navigation SDK. ويكون ذلك مفيدًا في سيناريوهات مثل مشاركة الرحلات أو خدمات التوصيل، حيث تستخدم واجهة Routes API لاحتساب سعر الرحلة، وتريد الحصول على دقة رمز مميّز لنقطة تنقّل.

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

راجِع مستندات Routes API للحصول على مزيد من المعلومات حول تحديد موقع جغرافي باستخدام رمز مميّز لنقطة التنقّل وإنشاء رمز مميّز للمسار. اطّلِع على مقالة "التخطيط لمسار" لمعرفة كيفية التخطيط لمسار باستخدام رمز مميّز للمسار.

يوضّح هذا الرسم البياني كيف يمكن لتطبيق مشاركة الرحلات أو توصيل الطلبات استخدام رموز مميّزة لنقاط التنقّل ورموز مميّزة للمسار معًا:

مخطّط حالة استخدام لخدمة مشاركة الرحلات أو خدمة التوصيل
مخطّط بياني لحالة استخدام خدمة مشاركة الركوب أو التوصيل

الجمع بين رقم تعريف المكان وخط العرض وخط الطول

بدءًا من الإصدار 7.4، يمكنك تقديم كل من رقم تعريف المكان وإحداثيات خطوط الطول والعرض عند إنشاء Waypoint. تكون هذه الطريقة مفيدة عندما تريد تحديد نقطة دقيقة (خط العرض/خط الطول) مع الاستمرار في توفير سياق المكان العام (رقم تعريف المكان). يتيح ذلك لحزمة تطوير البرامج (SDK) الخاصة بالتنقّل تقديم تجربة وصول أفضل من خلال تمييز مبنى الوجهة أو عرض نقاط الاهتمام القريبة ذات الصلة برقم تعريف المكان.

// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint

Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
    .setTitle(destinationName)
    .setPlaceIdString(placeId)
    .setLatLng(lat, lng)
    .build();

// Use this waypoint in navigator.setDestinations()

الاعتبارات

عند تقديم كل من placeId وlatlng:

  • يستهدف المسار بشكل أساسي latlng المحدّد.
  • يتم استخدام placeId كسياق لتحسين تجربة الوصول.
  • الخيار الاحتياطي: إذا رصدت حزمة SDK أنّ placeId المقدَّمة تتوافق مع ميزة بعيدة جدًا عن latlng المحدَّدة، سيتم تجاهل placeId. في هذا السيناريو، ستتم إعادة التوجيه إلى latlng فقط، ولن تتوفّر التحسينات على تجربة الوصول الخاصة بالمكان.

ملخّص لإعدادات نقاط الطريق الصالحة

الطريقة setLatLng() setPlaceIdString() setNavigationPointToken() سلوك التوجيه تمييز الوجهة
إحداثيات خطوط الطول والعرض فقط محدّدة غياب غياب المسارات إلى جزء الطريق الأقرب إلى الإحداثيات المحدّدة يتم عرضها إذا كان من الممكن استنتاج الوجهة بدقة عالية
رقم تعريف المكان فقط غياب محدّدة غياب المسارات إلى نقطة التنقّل التلقائية لرقم تعريف المكان رقم تعريف مكان الانطلاق
الرمز المميّز لنقطة التنقّل فقط غياب غياب محدّدة المسارات إلى نقطة التنقل الدقيقة الممثّلة بالرمز المميّز من الوجهة المحدّدة في طلب طريقة الوجهات الأصلية في Geocoding API
إحداثيات خطوط العرض/خطوط الطول ورقم تعريف المكان معًا محدّدة محدّدة غياب المسارات إلى جزء الطريق الأقرب إلى الإحداثيات المحدّدة من رقم تعريف المكان، على الرغم من أنّه لا يظهر إذا كان رقم تعريف المكان بعيدًا جدًا عن إحداثيات خط العرض/خط الطول