يوضّح هذا المستند كيفية إدارة الإعدادات المفضّلة لنقاط الطريق في تطبيقك باستخدام ميزتَين:
- جانب من تفضيلات توجيه الطريق
- توقف
تعيين جانب تفضيل توجيه الطريق
بشكل افتراضي، تعثر حزمة SDK للتنقل لنظام التشغيل iOS على أسرع مسار لنقطة الطريق، ولكن هذا لا يضمن وصول السيارة إلى جانب الطريق الذي ينتظره المستهلك. تتيح لك ميزة جانب تفضيل توجيه الطريق التأكد من وصول المركبة إلى الجانب الصحيح من الطريق.
آلية العمل
يمكنك تعيين التفضيل للوصول إلى جانب معين من الطريق عند إنشاء نقطة الطريق لتلك المحطة. يمكنك تحديد التفضيل بإحدى طريقتين.
تفضيل الجانب نفسه من الطريق
عليك توفير الإحداثيات الجغرافية للنقطة، ثم وضع علامة preferSameSideOfRoad
للإشارة إلى أنّك تفضّل الوصول إلى الجانب نفسه من الطريق حيث تم محاذاة نقطة الطريق إلى أقرب رصيف.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;
عنوان القسم المفضَّل
عليك توفير الإحداثيات الجغرافية للنقطة، ثم توفير عنوان وصول preferredSegmentHeading
يتطابق مع اتجاه تدفق حركة المرور على الجانب نفسه من الطريق مع المستهلك المنتظر.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferredSegmentHeading:(int32_t)preferredSegmentHeading;
تختار حزمة تطوير البرامج (SDK) للتنقّل جزء الطريق الأقرب إلى نقطة الطريق - الذي له اتجاه ممر تتم محاذاته (في نطاق +/- 55 درجة) مع جانب الطريق الذي توجد فيه نقطة الطريق.
ضبط تفضيل محطة التوقف
في بعض الأماكن، من غير الممكن أن يتوقف السائقون بأمان (على سبيل المثال، المناطق المرتفعة والعبّارات والمواقع تحت الأرض وغيرها من المناطق التي يمكن الوصول إليها بشكل محدود). تعمل ميزة التوقف على تغيير موقع نقطة الطريق إلى مكان قريب إذا كان موقعها الجغرافي غير مناسب لتوقف مركبة معيّنة. عند ضبط
vehicleStopover
على YES
، يتم تغيير موقع نقطة الطريق تلقائيًا عند
احتساب المسار، في حال توفّر موقع جغرافي بديل.
آلية العمل
يمكنك تعيين التفضيل لمحطة توقف عند إنشاء نقطة الطريق لتلك المحطة.
لإجراء ذلك، اضبط خيارك المفضّل لإيقاف توقّف على متن
GMSNavigationMutableWaypoint
كما هو موضّح في المثال التالي:
Swift
let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20) let waypoint = GMSNavigationMutableWaypoint(location: location, title: "waypoint from location")! waypoint.vehicleStopover = true mapView.navigator?.setDestinations([waypoint], routingOptions: routingOptions, callback: {...})
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20); GMSNavigationMutableWaypoint *waypoint = [[GMSNavigationMutableWaypoint alloc] initWithLocation:location title:@"waypoint from location"]; waypoint.vehicleStopover = YES; [_mapView.navigator setDestinations:@[waypoint1] routingOptions:routingOptions callback:^(GMSRouteStatus routeStatus){...}];