private void CalculateDownloadSize(Poi poi) { string text = ""; bool enableDownloadButton = false; if (poi?.Id >= (long)PoiId.FIRST_VALID_ID || poi?.Id == (long)PoiId.CURRENT_LOCATION) { float size; var newDistance = GetDownloadDistance(); if (_oldDedItem == null || newDistance > _oldDedItem.Distance) { var gpsLocation = new GpsLocation(poi.Longitude, poi.Latitude, poi.Altitude); var etc = new ElevationTileCollection(gpsLocation, newDistance); size = etc.GetSizeToDownload(); text = String.Format(Resources.GetText(Resource.String.DownloadED_ExpectedSizeDownload), $"{size:F1}"); enableDownloadButton = true; } else if (newDistance < _oldDedItem.Distance) { var location = new GpsLocation(_oldDedItem.Longitude, _oldDedItem.Latitude, 0); var tilesToBeRemovedAll = ElevationTileCollection.GetTilesForRemoval(location, _oldDedItem.Distance, newDistance); var tilesToBeRemovedUnique = ElevationTileCollection.GetUniqueTilesForRemoval(_oldDedItem.Id, _allElevationData, tilesToBeRemovedAll); size = tilesToBeRemovedUnique.GetSize() / 1024f / 1024f; text = String.Format(Resources.GetText(Resource.String.DownloadED_ExpectedSizeRemove), $"{size:F1}"); enableDownloadButton = true; } } FindViewById <TextView>(Resource.Id.textViewDownloadSize).Text = text; FindViewById <Button>(Resource.Id.buttonSave).Enabled = enableDownloadButton; }
private void DeleteElevationTiles(DownloadedElevationData ded) { var dedTiles = new ElevationTileCollection(new GpsLocation(ded.Longitude, ded.Latitude, 0), ded.Distance); Task.Run(async() => { var downloadedElevationData = await AppContext.Database.GetDownloadedElevationDataAsync(); var tilesToBeRemoved = ElevationTileCollection.GetUniqueTilesForRemoval(ded.Id, downloadedElevationData, dedTiles); tilesToBeRemoved.Remove(); }); }
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(); }
protected override bool RunInBackground(params string[] @command) { try { OnStageChange?.Invoke(Resource.String.Download_Progress_FetchingElevationTilesList, 1); var file = GpxFileProvider.GetFile(GpxFileProvider.GetUrl(_source.Url)); OnProgressChange?.Invoke(1); var elevationMap = JsonConvert.DeserializeObject <ElevationMap>(file); _elevationTileCollection = new ElevationTileCollection(elevationMap); if (@command[0] == COMMAND_DOWNLOAD) { OnStageChange?.Invoke(Resource.String.Download_Progress_DownloadingElevationData, _elevationTileCollection.GetCountToDownload()); if (!_elevationTileCollection.Download(progress => { OnProgressChange(progress); })) { OnError?.Invoke(_elevationTileCollection.GetErrorList()); return(false); } return(true); } if (@command[0] == COMMAND_REMOVE) { OnStageChange?.Invoke(Resource.String.Download_Progress_RemovingElevationData, 1); return(_elevationTileCollection.Remove()); } return(false); } catch (Exception ex) { OnError?.Invoke(ExceptionHelper.Exception2ErrorMessage(ex)); return(false); } }
public void CalculateProfile() { GpsUtils.BoundingRect(_myLocation, _visibility * 1000, out var min, out var max); _data = new List <GpsLocation>(); string inputFileName = @"c:\Temp\ElevationMap\ALPSMLC30_N049E018_DSM.tif"; GeoTiffReaderList.ReadTiff(inputFileName, min, max, _myLocation, 3, _data); //Calculate old profile /*ElevationProfile ep = new ElevationProfile(); * ep.GenerateElevationProfile(_myLocation, _visibility, _data, progress => { }); * elevationProfileOld = ep.GetProfile();*/ //Calucate new profile var etc = new ElevationTileCollection(_myLocation, (int)_visibility); var d = etc.GetSizeToDownload(); etc.Download(progress => { }); etc.Read(progress => { }); profileGenerator.Generate(_myLocation, 12, etc, progress => { }); /*ProfileGeneratorOld ep2 = new ProfileGeneratorOld(); * //ep2.GenerateElevationProfile3(_myLocation, _visibility, _data, progress => { }); * ep2.GenerateElevationProfile3(_myLocation, _visibility, elevationPainter3.list, progress => { }); * elevationProfileNew = ep2.GetProfile();*/ ElevationProfile ep3 = new ElevationProfile(); ep3.GenerateElevationProfile3(_myLocation, _visibility, profileGenerator.GetProfile(), progress => { }); elevationProfileNew = ep3.GetProfile(); Invalidate(); }
public ElevationCalculation(GpsLocation myLocation, int maxDistance) { MyLocation = myLocation; MaxDistance = maxDistance; _elevationTileCollection = new ElevationTileCollection(MyLocation, (int)MaxDistance); }
public ElevationDataDownload(GpsLocation myLocation, int maxDistance) { MyLocation = myLocation; MaxDistance = maxDistance; _elevationTileCollection = new ElevationTileCollection(MyLocation, (int)MaxDistance); }