private void RevertDefaultClick(object sender, RoutedEventArgs e)
 {
     if (System.Windows.Forms.MessageBox.Show(GisEditor.LanguageManager.GetStringResource("ZoomLevelSetWindowZoomLevelResetText"), GisEditor.LanguageManager.GetStringResource("ZoomLevelSetWindowRevertToDefaultCaption"), System.Windows.Forms.MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
     {
         var defaultZoomLevelSet = new GoogleMapsZoomLevelSet();
         defaultZoomLevelSet.AddZoomLevels();
         viewModel.ReaddZoomLevels(defaultZoomLevelSet);
     }
 }
        private void FillDefaultZoomLevels()
        {
            string landProName = "LandProZoomLevelSet";

            if (!CustomZoomLevelSets.ContainsKey(landProName))
            {
                List <double> scales = new List <double>();

                GoogleMapsZoomLevelSet zoomLevelSet = new GoogleMapsZoomLevelSet();
                foreach (var item in zoomLevelSet.GetZoomLevels())
                {
                    item.Scale = Math.Round(item.Scale, 6);
                    zoomLevelSet.CustomZoomLevels.Add(item);
                }
                for (int i = 0; i < 5; i++)
                {
                    var scale     = zoomLevelSet.CustomZoomLevels.LastOrDefault().Scale * 0.5;
                    var zoomLevel = new ZoomLevel(Math.Round(scale, 6));
                    zoomLevelSet.CustomZoomLevels.Add(zoomLevel);
                }

                Collection <ZoomLevel> zoomLevels = zoomLevelSet.CustomZoomLevels;
                for (int i = 0; i < zoomLevels.Count; i++)
                {
                    double scale1 = zoomLevels[i].Scale;
                    double scale2 = zoomLevels[i].Scale;
                    if (zoomLevels.Count > i + 1)
                    {
                        scale2 = zoomLevels[i + 1].Scale;
                    }
                    else
                    {
                        scale2 = scale2 - scale2 / 4;
                    }

                    scale2 = (scale2 + scale1) / 2;
                    scales.Add(scale1);
                    scales.Add(Math.Round(scale2, 6));
                }
                CustomZoomLevelSets.Add(landProName, scales);
            }
            string googleName = "GoogleZoomLevelSet";

            if (!CustomZoomLevelSets.ContainsKey(googleName))
            {
                GoogleMapsZoomLevelSet zoomLevelSet = new GoogleMapsZoomLevelSet();
                CustomZoomLevelSets.Add(googleName, zoomLevelSet.GetZoomLevels().Select(z => z.Scale).ToList());
            }
            string bingName = "BingZoomLevelSet";

            if (!CustomZoomLevelSets.ContainsKey(bingName))
            {
                BingMapsZoomLevelSet zoomLevelSet = new BingMapsZoomLevelSet();
                CustomZoomLevelSets.Add(bingName, zoomLevelSet.GetZoomLevels().Select(z => z.Scale).ToList());
            }
        }