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