تحديد وجهة المركبة

يوضّح هذا القسم كيفية ضبط وجهة المركبة بعد أن يطابق الخادم رحلة بمركبة.

قبل البدء

يتطلّب هذا القسم إكمال ما يلي:

تحديد الوجهة في تطبيق السائق

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

  1. استرجاع وجهة المركبة من مجموعة نقاط الطريق في Fleet Engine، والتي يتم عرضها من خلال GetTrip() وUpdateTrip() وGetVehicle()

  2. اضبط الوجهة من خلال استدعاء طريقة حزمة تطوير البرامج للتنقّل على أجهزة iOS setDestinations().

توضّح الأمثلة التالية كيفية ضبط الوجهة في تطبيق السائق.

Swift

private func startNavigation() {
  let destinations = [
    GMSNavigationWaypoint(
      placeID: "ChIJnUYTpNASkFQR_gSty5kyoUk", title: "PCC Natural Market"),
    GMSNavigationWaypoint(
      placeID: "ChIJJ326ROcSkFQRBfUzOL2DSbo", title: "Marina Park"),
  ]

  mapView.navigator?.setDestinations(destinations, callback: { routeStatus in
    guard routeStatus == .OK else {
      // Error starting navigation.
      return
    }
    mapView.locationSimulator?.simulateLocationsAlongExistingRoute()
    mapView.navigator?.isGuidanceActive = true
    mapView.navigator?.sendsBackgroundNotifications = true
    mapView.cameraMode = .following
  })
}

Objective-C

- (void)startNavigation {
  NSArray<GMSNavigationWaypoint *> *destinations =
  @[[[GMSNavigationWaypoint alloc] initWithPlaceID:@"ChIJnUYTpNASkFQR_gSty5kyoUk"
                                             title:@"PCC Natural Market"],
    [[GMSNavigationWaypoint alloc] initWithPlaceID:@"ChIJJ326ROcSkFQRBfUzOL2DSbo"
                                             title:@"Marina Park"]];

  [_mapView.navigator setDestinations:destinations
                             callback:^(GMSRouteStatus routeStatus) {
                               if (routeStatus != GMSRouteStatusOK) {
                                 // Error starting navigation.
                                 return;
                               }
                               [_mapView.locationSimulator simulateLocationsAlongExistingRoute];
                               _mapView.navigator.guidanceActive = YES;
                               _mapView.navigator.sendsBackgroundNotifications = YES;
                               _mapView.cameraMode = GMSNavigationCameraModeFollowing;
                             }];
}