Ejemplo n.º 1
0
        public MovementSource()
        {
            Position = GeoCoordinate.Unknown;

            compass = Compass.GetDefault();
            if (compass != null)
            {
                compass.ReadingChanged += Compass_ReadingChanged;
            }

            if (!DesignerProperties.IsInDesignTool)   // Cider hates GeoCoordinateWatcher
            {
#if DEBUG
                watcher = new FakeGeoPositionWatcher(0.0, 0.0);
#else
                watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
#endif
                watcher.PositionChanged += Watcher_PositionChanged;
                watcher.StatusChanged   += Watcher_StatusChanged;
                watcher.Start();
            }
        }
        public TrackingViewModel(ILog log, IAccount account, ILocalize localize, IApplication application,
                                 IGeoPositionWatcher<GeoCoordinate> coordinateProvider, IHistory history,
                                 IRepository repository, ISettings settings)
        {
            _log = log;
            _localize = localize;
            _application = application;
            _coordinateProvider = coordinateProvider;
            _history = history;
            _repository = repository;
            _settings = settings;
            Account = account;

            _started = false;
            _startTime = System.Environment.TickCount;

            _coordinateProvider.PositionChanged += _coordinateProvider_PositionChanged;
            _coordinateProvider.Start();
            UICoordinates = new GeoCoordinateCollection();
            _timer.Interval = TimeSpan.FromSeconds(1);
            _timer.Tick += Timer_Tick;

            MapCenter = new GeoCoordinate(0, 0);
            Heading = 0;
            ZoomLevel = 15;
            Pitch = 55;
            PedestrianFeaturesEnabled = true;
            LandmarksEnabled = true;

            DistanceDisplay = "0 km";
            if (!_settings.IsMetric) DistanceDisplay = "0 mi";
            PaceDisplay = "00:00";
            CaloriesDisplay = "0";
            TimeDisplay = "00:00";

            StrokeColor = System.Windows.Media.Colors.Red;
            StrokeThickness = 5;
            Coordinates.Clear();

            StartVisibility = (!_started ? Visibility.Visible : Visibility.Collapsed);
            StopVisibility = (_started ? Visibility.Visible : Visibility.Collapsed);
            PauseVisibility = (!_paused ? Visibility.Visible : Visibility.Collapsed);
            ResumeVisibility = (_paused ? Visibility.Visible : Visibility.Collapsed);

        }
Ejemplo n.º 3
0
 public void Start()
 {
     forceStop = false;
     watcher.Start();
 }