إدارة نقاط الطريق

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

  • جانب من تفضيلات توجيه الطريق
  • محطة توقّف

تعيين جانب تفضيل توجيه الطريق

وبشكلٍ تلقائي، تعثر حزمة تطوير البرامج (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){...}];