コード例 #1
0
        private async Task <AlternativeRoutesComposition> UpdateRoutesComposition(DrivingRouteObject drivingRouteObject, bool moveCamera)
        {
            _logger.Method().Start($"Route id = {drivingRouteObject.Route.RouteId}, move camera = {moveCamera}");

            _updateRoutesCompositionCts?.Cancel();
            _updateRoutesCompositionCts = new CancellationTokenSource();

            Route route = drivingRouteObject.Route;
            IReadOnlyList <DrivingRouteObject> routes =
                await _internalRouteService.Value.GetAlternativeRouteObjects(route,
                                                                             _dringGuide.Value.RoutePosition ?? new PolylinePosition(0, 0),
                                                                             _updateRoutesCompositionCts.Token);

            var composition = new AlternativeRoutesComposition(_drivingRouteObjectFactory.Value.Create(drivingRouteObject.Route), routes, _localizationService.Value);

            _renderDisposable?.Dispose();
            _renderDisposable = await _alternativeRoutesRenderer.Value.Render(composition, _updateRoutesCompositionCts.Token);

            _subscriptions?.Dispose();
            _subscriptions = OverviewShownStream.Where(show => !show).ToUnitObservable().Subscribe(_ => HideAlternativeRoutes());

            if (moveCamera)
            {
                await MoveCameraToOverview(composition, _updateRoutesCompositionCts.Token);
            }
            return(composition);
        }
コード例 #2
0
            public static Task <FullGuideRouteData> Create(DrivingRouteObject drivingRouteObject, ILogger logger)
            {
                Route route = drivingRouteObject.Route;

                IEnumerable <Event> eventsNoCoro = route.Events.AsEnumerable();

                IEnumerable <RouteJamType> jamSegs = route.JamSegments.Select(s => (RouteJamType)s.JamType);

                IEnumerable <Section> sectionsNoCoro = route.Sections.AsEnumerable();

                return(Task.Run(() => new FullGuideRouteData(eventsNoCoro, jamSegs, sectionsNoCoro, drivingRouteObject, logger)));
            }
コード例 #3
0
            private FullGuideRouteData(IEnumerable <Event> eventsNoCoro,
                                       IEnumerable <RouteJamType> jamSegs,
                                       IEnumerable <Section> sectionsNoCoro,
                                       DrivingRouteObject drivingRouteObject,
                                       ILogger logger)
            {
                DrivingRouteObject = drivingRouteObject;

                Route route = drivingRouteObject.Route;

                using (new TimeIt("GetRouteSections", logger))
                    Sections = GetRouteSections(route, logger);
                using (new TimeIt("GetRouteDisplayEvents", logger))
                    Events = GetRouteDisplayEvents(eventsNoCoro);
                using (new TimeIt("GetProgressInfo", logger))
                    ProgressInfo = DrivingGuideHelper.GetProgressInfo(route.RouteId, jamSegs, sectionsNoCoro, Sections);
            }
コード例 #4
0
 public DebugFullDrivingGuideSession(DrivingRouteObject drivingRouteObject,
                                     IDrivingGuide drivingGuide,
                                     IDrivingRouteObjectFactory drivingRouteObjectFactory,
                                     IGenericRendererSync <DrivingRouteObject, DrivingRouteGuideMapObject> guideRouteRenderer,
                                     MapObjectCollection mapObjectCollection,
                                     IInternalLocationService locationService,
                                     IInternalUserLocationLayerPresenter locationLayerPresenter,
                                     ILogManager logManager,
                                     ISettingsRepository settingsRepository,
                                     ILifecycleService lifecycleService,
                                     ILanguagesRepository languagesRepository,
                                     ICameraManager cameraManager,
                                     IMapCameraPositionPresenter cameraPositionPresenter,
                                     ViaPointsSessionManagerFactory viaPointsSessionManagerFactory,
                                     RoutesOverviewPresenterFactory routesOverviewPresenterFactory,
                                     IConcurrencyService concurrencyService,
                                     IDebugPanelSettingsRepository debugRepository) : base(drivingRouteObject,
                                                                                           drivingGuide,
                                                                                           drivingRouteObjectFactory,
                                                                                           guideRouteRenderer,
                                                                                           mapObjectCollection,
                                                                                           locationService,
                                                                                           locationLayerPresenter,
                                                                                           logManager,
                                                                                           settingsRepository,
                                                                                           lifecycleService,
                                                                                           languagesRepository,
                                                                                           cameraManager,
                                                                                           cameraPositionPresenter,
                                                                                           viaPointsSessionManagerFactory,
                                                                                           routesOverviewPresenterFactory)
 {
     _concurrencyService = concurrencyService;
     _debugRepository    = debugRepository;
     _drivingGuide       = drivingGuide;
 }