Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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)));
        }
Ejemplo n.º 3
0
        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);
            }
        }