Beispiel #1
0
        private void DownloadElevationData(DownloadedElevationData ded)
        {
            var edd = new ElevationDataDownload(new GpsLocation(ded.Longitude, ded.Latitude, 0), ded.Distance);

            var pd = new ProgressDialog(this);

            pd.SetMessage(Resources.GetText(Resource.String.Download_Progress_DownloadingElevationData));
            pd.SetCancelable(false);
            pd.SetProgressStyle(ProgressDialogStyle.Horizontal);
            pd.Max = 100;
            pd.Show();

            edd.OnFinishedAction = (result) =>
            {
                pd.Hide();
                if (!string.IsNullOrEmpty(result))
                {
                    PopupHelper.ErrorDialog(this, result);
                }
                else
                {
                    ded.SizeInBytes = edd.GetSize();
                    AppContext.DownloadedElevationDataModel.UpdateItem(ded);
                    Finish();
                }
            };
            edd.OnProgressChange = (progress) =>
            {
                MainThread.BeginInvokeOnMainThread(() => { pd.Progress = progress; });
                Thread.Sleep(50);
            };

            edd.Execute();
        }
Beispiel #2
0
        private void RemoveElevationData(DownloadedElevationData ded, int oldDedDistance)
        {
            var location               = new GpsLocation(ded.Longitude, ded.Latitude, 0);
            var tilesToBeRemovedAll    = ElevationTileCollection.GetTilesForRemoval(location, oldDedDistance, ded.Distance);
            var tilesToBeRemovedUnique = ElevationTileCollection.GetUniqueTilesForRemoval(ded.Id, _allElevationData, tilesToBeRemovedAll);

            tilesToBeRemovedUnique.Remove();

            var edd = new ElevationDataDownload(new GpsLocation(ded.Longitude, ded.Latitude, 0), ded.Distance);

            ded.SizeInBytes = edd.GetSize();
            AppContext.DownloadedElevationDataModel.UpdateItem(ded);
            Finish();
        }