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

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

خلفية

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

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

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

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

لتحديد رمز مميّز لنقطة التنقّل:

  1. احصل على navigationPointToken من طريقة SearchDestinations في ردّ Geocoding API.
  2. أنشئ Waypoint باستخدام الإجراء 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 لحساب سعر الرحلة وتريد دقة الرمز المميّز لنقطة التنقّل.

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

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

يوضّح المخطّط البياني التالي كيفية استخدام تطبيق لمشاركة الرحلات أو توصيل الطلبات لرموز نقاط التنقّل المميّزة ورموز المسارات المميّزة معًا. بدءًا من الإصدار 8.1، يمرّر تطبيق السائق الرمز المميّز للمسار فقط إلى حزمة تطوير البرامج (SDK) للتنقّل في الخطوة 7.

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

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

اعتبارًا من الإصدار 7.4، يمكنك تقديم كلّ من رقم تعريف المكان وإحداثيات خطوط الطول والعرض عند إنشاء Waypoint. هذه الطريقة مفيدة عندما تريد تحديد نقطة دقيقة (خط العرض/خط الطول) مع توفير سياق المكان العام (رقم تعريف المكان). يتيح ذلك لـ Navigation 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
إحداثيات خطوط العرض/الطول ورقم تعريف المكان معًا محدّدة محدّدة غائب المسارات إلى جزء الطريق الأقرب إلى الإحداثيات المحدّدة من رقم تعريف المكان، ولكن لا يتم عرضه إذا كان رقم تعريف المكان بعيدًا جدًا عن إحداثيات خط العرض/خط الطول