Exemple #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();
        }
Exemple #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();
        }
Exemple #3
0
        private void SaveElevationData(Poi poi)
        {
            if (poi == null)
            {
                return;
            }

            var ded = new DownloadedElevationData()
            {
                Latitude  = poi.Latitude,
                Longitude = poi.Longitude,
                Altitude  = poi.Altitude,
                PlaceName = poi.Name,
                Country   = poi.Country,
                Distance  = GetDownloadDistance()
            };

            var gpsLocation = new GpsLocation(poi.Longitude, poi.Latitude, poi.Altitude);
            var ed          = new ElevationDataDownload(gpsLocation, ded.Distance);

            /*if (ed.GetCountToDownload() == 0)
             * {
             *  PopupHelper.InfoDialog(this, Resources.GetText(Resource.String.DownloadED_NoDataToDownload));
             *  return;
             * }*/

            if (_oldDedItem != null)
            {
                ded.Id = _oldDedItem.Id;
                if (ded.Distance < _oldDedItem.Distance)
                {
                    RemoveElevationData(ded, _oldDedItem.Distance);
                }
                else
                {
                    DownloadElevationData(ded);
                }
            }
            else
            {
                AppContext.DownloadedElevationDataModel.InsertItem(ded);
                DownloadElevationData(ded);
            }
        }