توفّر حزمة تطوير البرامج (SDK) للتنقّل على أجهزة iOS طرقًا محسّنة لتحديد النقاط على المسار أو نقاط التنقّل، ما يتيح توجيهًا أكثر دقة وتجربة وصول أفضل، خاصةً للوجهات التي تتضمّن مداخل متعدّدة أو نقاط تنقّل معيّنة. يمكنك التوجيه إلى مواقع جغرافية دقيقة باستخدام
navigationPointToken، وهو سلسلة ترمز إلى موقع جغرافي وسياق
مسار إضافي. يمكنك أيضًا دمج إحداثيات خطوط العرض والطول مع رقم تعريف المكان لإضافة سياق.
خلفية
قبل الإصدار 10.10، كان بإمكانك تحديد Waypoint باستخدام إحداثيات الموقع الجغرافي
أو رقم تعريف المكان. على الرغم من أنّ التوجيه إلى خطوط العرض والطول فقط يكون فعّالاً في بعض الأحيان، إلا أنّه قد يؤدي أحيانًا إلى نقاط نزول أو ركوب غير مثالية، خاصةً في الأماكن الكبيرة أو المتنزهات أو المباني التي تحتوي على مداخل متعددة. قد يتم تثبيت النتيجة على أقرب جزء من الطريق، وقد لا يكون ذلك
نقطة الوصول الأكثر ملاءمة أو صحة.
وتعالج خيارات النقاط على المسار المحسّنة هذه المشكلة من خلال السماح لك بتقديم المزيد من السياق.
استخدام رمز مميّز لنقطة التنقّل
للحصول على أدق توجيه إلى نقاط وصول محدّدة، مثل المداخل أو أرصفة التحميل أو مناطق الاستلام المخصّصة، يمكنك استخدام navigationPointToken.
يتم الحصول على هذا الرمز المميّز من خلال استدعاء طريقة Destinations في Geocoding API. وتمثّل نقطة تنقّل محدّدة يمكن توجيهها مرتبطة بمكان معيّن.
لتحديد رمز مميّز لنقطة التنقّل:
احصل على
navigationPointTokenمن ردّ طريقةSearchDestinationsفي Geocoding API.حدِّد أنّ
navigationPointTokenعند إنشاءGMSNavigationWaypoint.
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] initWithNavigationPointToken:@"sampleNavigationPointToken"
title:@"Sydney Opera House"];
استخدام رموز نقاط التنقّل ورموز المسارات
يمكنك استرداد رمز مميّز لنقطة التنقّل من خلال Geocoding API، واستخدامه في طلب بيانات من Routes API للحصول على رمز مميّز للمسار، ثم تمرير الرمز المميّز للمسار فقط إلى حزمة Navigation SDK. يحتفظ الرمز المميّز للمسار بدقة الرمز المميّز لنقطة التنقّل. ويُعدّ ذلك مفيدًا في سيناريوهات مثل مشاركة الرحلات أو التوصيل، حيث تستخدم Routes API لحساب سعر الرحلة وتريد دقة الرمز المميّز لنقطة التنقّل.
باستخدام رمز المسار المميّز، تبدأ حزمة تطوير البرامج (SDK) للتنقّل في التنقّل على المسار نفسه الذي استخدمته لحساب السعر. يقلل ذلك من خطر استخدام مسارات أطول أو أقصر للرحلة، ما قد يؤدي إلى "صدمات في الأسعار".
لمزيد من المعلومات حول الرموز المميّزة لنقاط التنقّل والرموز المميّزة للمسارات في Routes API، يُرجى الاطّلاع على تحديد المواقع الجغرافية لمسار والحصول على رمز مميّز للمسار. للتعرّف على كيفية تخطيط مسار باستخدام رمز مميّز للمسار، يُرجى الاطّلاع على تخطيط مسار.
يوضّح المخطّط البياني التالي كيفية استخدام تطبيق لمشاركة الرحلات أو توصيل الطلبات لرموز نقاط التنقّل المميّزة ورموز المسارات المميّزة معًا. بدءًا من الإصدار 11.3، يمرّر تطبيق السائق رمز المسار فقط إلى حزمة تطوير البرامج (SDK) للتنقّل في الخطوة 7.
الجمع بين رقم تعريف المكان والموقع الجغرافي
بدءًا من الإصدار 10.10، يمكنك تقديم كلّ من رقم تعريف المكان وإحداثيات الموقع الجغرافي عند إنشاء نقطة على المسار. هذه الطريقة مفيدة عندما تريد تحديد نقطة دقيقة (الموقع الجغرافي) مع توفير سياق المكان العام (رقم تعريف المكان). يسمح ذلك لـ Navigation 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 |
| إحداثيات الموقع الجغرافي ورقم تعريف المكان معًا | محدّدة | محدّدة | غائب | المسارات إلى جزء الطريق الأقرب إلى الإحداثيات المحدّدة | من رقم تعريف المكان، ولكن لا يتم عرضه إذا كان رقم تعريف المكان بعيدًا جدًا عن إحداثيات خط العرض/خط الطول |