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