void InitializeAppContext(PhotoData photodata) { var loc = new GpsLocation(photodata.Longitude, photodata.Latitude, photodata.Altitude); /* Fetching altitude from elevation map if available (this is not needed probably) * if (AppContextLiveData.Instance.Settings.AltitudeFromElevationMap) * { * var elevationTile = new ElevationTile(loc); * if (elevationTile.Exists()) * { * if (elevationTile.LoadFromZip()) * { * loc.Altitude = elevationTile.GetElevation(loc); * } * } * }*/ _context = new AppContextStaticData(loc, new PlaceInfo(), photodata.Heading); _context.LeftTiltCorrector = photodata.LeftTiltCorrector ?? 0; _context.RightTiltCorrector = photodata.RightTiltCorrector ?? 0; //### This can be removed later if (photodata.PictureWidth == 0) { photodata.PictureWidth = AppContextLiveData.Instance.Settings.CameraPictureSize.Width; } if (photodata.PictureHeight == 0) { photodata.PictureHeight = AppContextLiveData.Instance.Settings.CameraPictureSize.Height; } //Elavation data will be loaded when user will enable showing of elevation data if (photodata.JsonElevationProfileData == null) { photodata.ShowElevationProfile = false; } Context.Settings.LoadData(this); Context.Settings.IsViewAngleCorrection = false; Context.Settings.Categories = JsonConvert.DeserializeObject <List <PoiCategory> >(photodata.JsonCategories); Context.Settings.SetCameraParameters((float)photodata.ViewAngleHorizontal, (float)photodata.ViewAngleVertical, photodata.PictureWidth, photodata.PictureHeight); Context.Settings.MaxDistance = Convert.ToInt32(photodata.MaxDistance); Context.Settings.MinAltitute = Convert.ToInt32(photodata.MinAltitude); Context.ShowFavoritesOnly = photodata.FavouriteFilter; Context.Settings.ShowElevationProfile = photodata.ShowElevationProfile; Context.ElevationProfileData = ElevationProfileData.Deserialize(photodata.JsonElevationProfileData); }
private bool IsDirty() { var elevationProfileData = ElevationProfileData.Deserialize(_photodata?.JsonElevationProfileData); return (_photodata.ShowElevationProfile != Context.Settings.ShowElevationProfile || _photodata.JsonCategories != JsonConvert.SerializeObject(Context.Settings.Categories) || _photodata.FavouriteFilter != Context.ShowFavoritesOnly || !_photodata.MaxDistance.IsEqual(Context.Settings.MaxDistance, 0.1) || !_photodata.MinAltitude.IsEqual(Context.Settings.MinAltitute, 0.1) || !_photodata.ViewAngleHorizontal.IsEqual(Context.ViewAngleHorizontal, 0.1) || !_photodata.ViewAngleVertical.IsEqual(Context.ViewAngleVertical, 0.1) || !(_photodata.LeftTiltCorrector?.IsEqual(Context.LeftTiltCorrector, 0.01) ?? true) || !(_photodata.RightTiltCorrector?.IsEqual(Context.RightTiltCorrector, 0.01) ?? true) || !(_photodata.Heading ?? 0).IsEqual((Context.HeadingX ?? 0) + Context.HeadingCorrector, 0.1) || (_photodata.ShowElevationProfile && !elevationProfileData.MaxDistance.IsEqual(Context.ElevationProfileData.MaxDistance, 0.1))); }
private void LoadImageAndProfile() { LoadImage(_photodata.PhotoFileName); try { if (Context.Settings.ShowElevationProfile) { if (_photodata.JsonElevationProfileData != null) { Context.ElevationProfileData = ElevationProfileData.Deserialize(_photodata.JsonElevationProfileData); if (Context.ElevationProfileData != null) { ElevationProfileProvider.Instance().CheckAndReloadElevationProfile(this, MaxDistance, Context); } } } } catch (Exception ex) { PopupHelper.ErrorDialog(this, ex.Message); } }