التوجيه إلى نقاط التنقّل

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

خلفية

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

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

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

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

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

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

  1. احصل على navigationPointToken من الردّ الذي يقدّمه الإجراء Destinations في Geocoding API.

  2. حدِّد navigationPointToken عند إنشاء GMSNavigationWaypoint.

ملاحظة: لا يمكنك تحديد رمز مميّز لنقطة التنقّل وموقع جغرافي وPlaceID في الوقت نفسه.

Swift

// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
  navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3.."
  title: "Sydney Opera House")

// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
   self?.handleRouteCallback(status: routeStatus)
}

Objective-C

GMSNavigationWaypoint *waypointTwo = [[GMSNavigationWaypoint alloc] initWithNavigationPointToek:@"sampleNavigationPointToken"

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

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

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

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

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

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

الجمع بين رقم تعريف المكان والموقع الجغرافي

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

Swift

// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
  location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),  
  placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
  title: "Sydney Opera House")

// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
   self?.handleRouteCallback(status: routeStatus)
}

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];

الاعتبارات:

عند تقديم كل من placeID وlocation:

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

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

المواصفات location placeID navigationPointToken أسلوب التوجيه تمييز الوجهة
إحداثيات الموقع الجغرافي فقط محدّدة غياب غياب المسارات إلى جزء الطريق الأقرب إلى الإحداثيات المحدّدة يتم عرضها إذا كان من الممكن استنتاج الوجهة بدقة عالية
رقم تعريف المكان فقط غياب محدّدة غياب المسارات إلى نقطة التنقّل التلقائية لرقم تعريف المكان رقم تعريف مكان الانطلاق
رمز مميّز لنقطة التنقّل فقط غياب غياب محدّدة المسارات المؤدية إلى نقطة التنقل الدقيقة الممثّلة بالرمز المميّز من الوجهة المحدّدة في طلب طريقة الوجهات في Geocoding API الأصلية
إحداثيات الموقع الجغرافي ورقم تعريف المكان معًا se محدّدة غياب المسارات إلى جزء الطريق الأقرب إلى الإحداثيات المحدّدة من رقم تعريف المكان، على الرغم من أنّه لا يظهر إذا كان رقم تعريف المكان بعيدًا جدًا عن إحداثيات خطوط الطول والعرض