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