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

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

خلفية

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

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

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

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

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

  1. احصل على navigationPointToken من طريقة الوجهات في الردّ على 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()

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

بدءًا من الإصدار 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
إحداثيات خطوط الطول والعرض ورقم تعريف المكان معًا محدّدة محدّدة غير متوفّرة يتم التوجيه إلى جزء الطريق الأقرب إلى الإحداثيات المحدّدة من رقم تعريف المكان، على الرغم من عدم عرضه إذا كان رقم تعريف المكان بعيدًا جدًا عن إحداثيات خطوط الطول والعرض