예제 #1
0
        public static double  ValueTypeIn(TypeOfConventer tOConvert, MapPreparedData GeoData, Plugin.Geolocator.Abstractions.Position newValue)
        {
            switch (tOConvert)
            {
            case TypeOfConventer.Timer:
                return(0);

            case TypeOfConventer.Distance:
                return(RoadDistance(GeoData.RoadDistance));

            case TypeOfConventer.Speed:
                return(Speed(newValue.Speed));

            case TypeOfConventer.MediumSpeed:
                return(Speed(GeoData.MediumSpeed));

            case TypeOfConventer.Tempo:
                return(Tempo(newValue.Speed));

            case TypeOfConventer.MediumTempo:
                return(Tempo(GeoData.MediumSpeed));

            case TypeOfConventer.Altitude:
                return(Altidude(newValue.Altitude));

            default:
                return(-1);
            }
        }
        //using at end of trening
        public MapResultPage(List <Plugin.Geolocator.Abstractions.Position> newTrening, MapPreparedData newTreningData, object mapPolyline)
        {
            InitializeComponent();

            resultRoad       = new List <Plugin.Geolocator.Abstractions.Position>(newTrening);
            resultData       = new MapPreparedData(newTreningData);
            workoutManager   = DBConnection.MainConnection.WorkoutItem;
            mapManager       = DBConnection.MainConnection.MapPoint;
            sendMapPointList = new List <MapPointItem>();

            //ToLocalTime

            switch (Device.RuntimePlatform)
            {
            case Device.iOS:
                break;

            case Device.Android:
                this.Title = "Add";
                break;

            case Device.UWP:
                break;
            }

            ResultMap.DrawRoadAtStart(mapPolyline);
        }
        //using at history
        public MapResultPage(MapPreparedData newTreningData)
        {
            InitializeComponent();

            resultData = new MapPreparedData(newTreningData);
            ToolbarItems.RemoveAt(1);
            ToolbarItems.RemoveAt(0);
            ResultMap.IsVisible = false;
        }
예제 #4
0
        void UpdateWorkFieldAndObj(Plugin.Geolocator.Abstractions.Position oldValue, Plugin.Geolocator.Abstractions.Position newValue)
        {
            var conventer  = new WorkoutConventer();
            var surveyTime = (DateTime.Now.Ticks - startWorkout.Ticks + lastInterval.Ticks) / 10000000;//measurement approximate accuracy//seconds

            WorkoutData     = conventer.ValueObject(new MapPreparedData(WorkoutData), oldValue, newValue, NumberOfPoint, surveyTime);
            NewWorkoutPoint = newValue;
            RefreshWorkFieldAndObj(newValue);
        }
 public MapPreparedData(MapPreparedData newOdject)
 {
     StartTime    = new DateTime(newOdject.StartTime.Ticks);
     RoadDistance = new Distance(newOdject.RoadDistance.Meters);
     Time         = new DateTime(newOdject.Time.Ticks);
     MaxSpeed     = newOdject.MaxSpeed;
     MediumSpeed  = newOdject.MediumSpeed;
     MaxAltitude  = newOdject.MaxAltitude;
     MinAltitude  = newOdject.MinAltitude;
 }
        public MapResultPage(List <Plugin.Geolocator.Abstractions.Position> newTrening, MapPreparedData newTreningData)
        {
            InitializeComponent();

            resultRoad = new List <Plugin.Geolocator.Abstractions.Position>(newTrening);
            resultData = new MapPreparedData(newTreningData);
            ToolbarItems.RemoveAt(1);
            ToolbarItems.RemoveAt(0);
            ResultMap.DrawRoadAtStart(newTrening);
            ResultMap.MoveToRegion(MapSpan.FromCenterAndRadius(new Xamarin.Forms.Maps.Position(newTrening[(newTrening.Count / 2)].Latitude, newTrening[(newTrening.Count / 2)].Longitude), new Distance(1000)));
        }
        private void FillFields(MapPreparedData data)
        {
            FieldDate.Text = data.StartTime.ToString("dd-MM-yyyy HH:mm:ss");

            TimeFild.Text     = data.Time.ToString("H:mm:ss");
            DistanceFild.Text = WorkoutConventer.ValueTypeAfter(TypeOfConvAfter.Distance, 0, data.RoadDistance).ToString("0.00").Replace(",", ".");
            MaxSpeedFild.Text = WorkoutConventer.ValueTypeAfter(TypeOfConvAfter.Speed, data.MaxSpeed, data.RoadDistance).ToString("0.00").Replace(",", ".");
            AvgSpeedFild.Text = WorkoutConventer.ValueTypeAfter(TypeOfConvAfter.Speed, data.MediumSpeed, data.RoadDistance).ToString("0.00").Replace(",", ".");

            MaxPaceFild.Text     = WorkoutConventer.ValueTypeAfter(TypeOfConvAfter.Tempo, data.MaxSpeed, data.RoadDistance).ToString("0.00").Replace(",", ".");
            AvgPaceFild.Text     = WorkoutConventer.ValueTypeAfter(TypeOfConvAfter.Tempo, data.MediumSpeed, data.RoadDistance).ToString("0.00").Replace(",", ".");
            MaxAltitudeFild.Text = WorkoutConventer.ValueTypeAfter(TypeOfConvAfter.Altitude, data.MaxAltitude, data.RoadDistance).ToString("0.00").Replace(",", ".");
            MinAltitudeFild.Text = WorkoutConventer.ValueTypeAfter(TypeOfConvAfter.Altitude, data.MinAltitude, data.RoadDistance).ToString("0.00").Replace(",", ".");
        }
예제 #8
0
        private async Task <List <MapPreparedData> > ReturnRefreshedItem(bool syncItems)
        {
            var dataList = await managerWorkout.GetItemsAsync(syncItems);

            List <WorkoutItem> sortedList = dataList.OrderBy(o => o.WorkoutDate).ToList();

            sortedList.Reverse();

            List <MapPreparedData> dataListConverted = new List <MapPreparedData>();

            foreach (WorkoutItem item in sortedList)
            {
                dataListConverted.Add(MapPreparedData.ConvertToPreparedData(item));
            }
            return(dataListConverted);
        }
        public static MapPreparedData ConvertToPreparedData(WorkoutItem data)
        {
            MapPreparedData CovertedObj = new MapPreparedData
            {
                WorkoutId    = data.Id,
                StartTime    = new DateTime(data.WorkoutDate + time40l.Ticks),
                RoadDistance = new Distance(data.Distance),
                Time         = new DateTime(data.Time),
                MaxSpeed     = data.MaxSpeed,
                MediumSpeed  = data.MediumSpeed,
                MaxAltitude  = data.MaxAltitude,
                MinAltitude  = data.MinAltitude
            };

            return(CovertedObj);
        }
예제 #10
0
        void RefreshWorkFieldAndObj(Plugin.Geolocator.Abstractions.Position newValue)
        {
            MapPreparedData copyWorkoutData = new MapPreparedData(WorkoutData);

            for (int i = 0; i < WorkField.Count; i++)
            {
                if (WorkValue[i] != TypeOfConventer.Timer)
                {
                    var newVal = WorkoutConventer.ValueTypeIn(WorkValue[i], copyWorkoutData, newValue).ToString("0.00");
                    newVal = newVal.Replace(",", ".");
                    var useLabel = WorkField[i];

                    Device.BeginInvokeOnMainThread(() => {
                        useLabel.Text = newVal;
                    });
                }
            }
        }
예제 #11
0
        public MapPreparedData ValueObject(MapPreparedData GeoData, Plugin.Geolocator.Abstractions.Position oldValue, Plugin.Geolocator.Abstractions.Position newValue, int numberOfValue, double surveyTime)
        {
            if (newValue.Speed > GeoData.MaxSpeed)
            {
                GeoData.MaxSpeed = newValue.Speed;
            }

            if (newValue.Altitude > GeoData.MaxAltitude)
            {
                GeoData.MaxAltitude = newValue.Altitude;
            }

            if (GeoData.MinAltitude == 0 || newValue.Altitude < GeoData.MinAltitude)
            {
                GeoData.MinAltitude = newValue.Altitude;
            }

            if (oldValue != null)
            {
                GeoData.RoadDistance = Distance.FromMeters(GeoData.RoadDistance.Meters + CalculateDistance(oldValue, newValue).Meters);

                switch (Device.RuntimePlatform)
                {
                case Device.Android:
                    GeoData.MediumSpeed = GeoData.RoadDistance.Meters / (AppGeolocator.MinimumListTime * (numberOfValue));
                    /*Use ideal number// ((srTime.Ticks / 10000000.0)- AppGeolocator.MinimumListTime * numberOfValue * 0.05); Delete timer mistake*/
                    break;

                case Device.iOS:
                case Device.UWP:
                    GeoData.MediumSpeed = GeoData.RoadDistance.Meters / surveyTime;
                    break;
                }
            }

            return(GeoData);
        }