public SkyLine() { //od radhoste po ropici /*double filterLatMin = 49.5250019; * double filterLonMin = 18.3123825; * double filterLatMax = 49.6626678; * double filterLonMax = 18.5808428;*/ //odnrejnik smrk a lysa double filterLatMin = 49.5248986; double filterLonMin = 18.2617339; double filterLatMax = 49.5946578; double filterLonMax = 18.5352992; profileGenerator = new ElevationDataGenerator(); }
protected override ElevationProfileData RunInBackground(params GpsLocation[] @params) { try { var parts = new List <Part> { new Part() { Title = "DownloadTile", TimeComplexity = 50, Count = _elevationTileCollection.GetCountToDownload() }, new Part() { Title = "ReadTile", TimeComplexity = 10, Count = _elevationTileCollection.GetCount() }, new Part() { Title = "Generate", TimeComplexity = 1, Count = 360 }, new Part() { Title = "MakeLines", TimeComplexity = 1, Count = 360 } }; float totalTimeComplexity = parts.Select(x => x.Count * x.TimeComplexity).Aggregate((sum, part) => sum + part); int totalProgress = 0; var downloadingOk = _elevationTileCollection.Download(progress => { var localProgress = progress * parts[0].TimeComplexity; OnProgressChange?.Invoke((int)((totalProgress + localProgress) / totalTimeComplexity * 100f)); }); totalProgress += parts[0].Count * parts[0].TimeComplexity; var readingOk = _elevationTileCollection.Read(progress => { var localProgress = progress * parts[1].TimeComplexity; OnProgressChange?.Invoke((int)((totalProgress + localProgress) / totalTimeComplexity * 100f)); }); totalProgress += parts[1].Count * parts[1].TimeComplexity; ElevationDataGenerator ep = new ElevationDataGenerator(); ep.Generate(MyLocation, MaxDistance, _elevationTileCollection, progress => { var localProgress = progress * parts[2].TimeComplexity; OnProgressChange?.Invoke((int)((totalProgress + localProgress) / totalTimeComplexity * 100f)); }); totalProgress += parts[2].Count * parts[2].TimeComplexity; ElevationProfile ep2 = new ElevationProfile(); ep2.GenerateElevationProfile3(MyLocation, MaxDistance, ep.GetProfile(), progress => { var localProgress = progress * parts[3].TimeComplexity; OnProgressChange?.Invoke((int)((totalProgress + localProgress) / totalTimeComplexity * 100f)); }); totalProgress += parts[3].Count * parts[3].TimeComplexity; var epd = ep2.GetProfile(); if (!downloadingOk || !readingOk) { epd.ErrorMessage = _elevationTileCollection.GetErrorList(); } return(epd); } catch (Exception ex) { return(new ElevationProfileData(ExceptionHelper.Exception2ErrorMessage(ex))); } }