Example #1
0
        public List<DotSpatial.Symbology.PolygonCategory> CreateRandomColorCategories(List<double> dataArray, ref List<TempPIEChartData> pieChartData)
        {
            double min = dataArray.Min();
            double max = dataArray.Max();

            var count = _colorsList.Count;

            double dx = (max - min) / count;

            var series = new List<double>();

            for (int i = 0; i <= count - 1; i++)
            {
                if (i == count - 1)
                {
                    series.Add(max);
                }
                else
                {
                    var val = Math.Round(min + (i + 1) * dx, 2);
                    series.Add(val);
                }
            }

            series[0] = min;

            var colorCategoryList = new List<DotSpatial.Symbology.PolygonCategory>();

            for (int i = 0; i <= count - 1; i++)
            {
                var colorCategory = new DotSpatial.Symbology.PolygonCategory();
                var color = _colorsList[i].Color;

                var expCount = 0;

                colorCategory.SetColor(color);

                if (i == 0)
                {
                    var ex1 = Convert.ToString(series[i], CultureInfo.InvariantCulture.NumberFormat);
                    colorCategory.LegendText = ex1;
                    colorCategory.FilterExpression = "[Z] < " + ex1;
                    colorCategoryList.Add(colorCategory);

                    expCount = dataArray.Where(c => c < series[i]).Count();
                }
                else if (i == count - 1)
                {
                    var ex1 = Convert.ToString(series[i], CultureInfo.InvariantCulture.NumberFormat);
                    colorCategory.LegendText = ex1;
                    colorCategory.FilterExpression = "[Z] >= " + ex1;
                    colorCategoryList.Add(colorCategory);

                    expCount = dataArray.Where(c => c >= series[i]).Count();
                }
                else
                {
                    var ex1 = Convert.ToString(series[i], CultureInfo.InvariantCulture.NumberFormat);
                    var ex2 = Convert.ToString(series[i - 1], CultureInfo.InvariantCulture.NumberFormat);
                    colorCategory.LegendText = ex1;

                    colorCategory.FilterExpression = string.Format("[Z] >= {0} AND [Z] < {1}", ex2, ex1);
                    colorCategoryList.Add(colorCategory);

                    expCount = dataArray.Where(c => c >= series[i - 1] && c < series[i]).Count();
                }

                pieChartData.Add(new TempPIEChartData() { Color = color, Expression = colorCategory.FilterExpression, Count = expCount });
            }

            return colorCategoryList;
        }
Example #2
0
        public List<DotSpatial.Symbology.PolygonCategory> CreatePredefinedColorCategories(List<double> dataArray, ref List<TempPIEChartData> pieChartData)
        {
            var count = _colorsList.Count;

            var series = new List<double>();

            for (int i = 0; i <= count - 1; i++)
            {
                var legendLabel = _colorsList[i];
                series.Add(Convert.ToDouble(legendLabel.Value, CultureInfo.InvariantCulture.NumberFormat));
            }

            var colorCategoryList = new List<DotSpatial.Symbology.PolygonCategory>();

            for (int i = 0; i <= count - 1; i++)
            {
                var colorCategory = new DotSpatial.Symbology.PolygonCategory();
                var color = _colorsList[i].Color;

                var expCount = 0;

                colorCategory.SetColor(color);

                if (i == 0)
                {
                    var ex1 = Convert.ToString(series[i], CultureInfo.InvariantCulture.NumberFormat);
                    colorCategory.LegendText = ex1;
                    colorCategory.FilterExpression = "[Z] < " + ex1;
                    colorCategoryList.Add(colorCategory);

                    expCount = dataArray.Where(c => c < series[i]).Count();
                }
                else if (i == count - 1)
                {
                    var ex1 = Convert.ToString(series[i], CultureInfo.InvariantCulture.NumberFormat);
                    colorCategory.LegendText = ex1;
                    colorCategory.FilterExpression = "[Z] >= " + ex1;
                    colorCategoryList.Add(colorCategory);

                    expCount = dataArray.Where(c => c >= series[i]).Count();
                }
                else
                {
                    var ex1 = Convert.ToString(series[i], CultureInfo.InvariantCulture.NumberFormat);
                    var ex2 = Convert.ToString(series[i - 1], CultureInfo.InvariantCulture.NumberFormat);
                    colorCategory.LegendText = ex1;

                    colorCategory.FilterExpression = string.Format("[Z] >= {0} AND [Z] < {1}", ex2, ex1);
                    colorCategoryList.Add(colorCategory);

                    expCount = dataArray.Where(c => c >= series[i - 1] && c < series[i]).Count();
                }

                pieChartData.Add(new TempPIEChartData() { Color = color, Expression = colorCategory.FilterExpression, Count = expCount });
            }

            return colorCategoryList;
        }
        void OpenInterpolation(int row)
        {
            if (_gridDataSource != null)
            {
                var item = _gridDataSource.ElementAt(row);

                if (!string.IsNullOrEmpty(item.ProjectFile))
                {
                    var pr = Newtonsoft.Json.JsonConvert.DeserializeObject<Repository.Utils.Project>(item.ProjectFile);

                    foreach (var layer in pr.Layers)
                    {
                        if (File.Exists(layer.Path))
                        {
                            CustomerExtension.MyAppManager.Map.Layers.Add(layer.Path);
                        }
                    }

                    //CustomerExtension.OpenJsonFile(item.ProjectFile);
                    //var farm = _farmRepository.Find(item.FarmId);
                    //Global.currentSelectedCustomer = farm.CustomerId;
                    //Global.currentSelectedFarm = farm.CustomerFarmId;
                    //Global.currentInterpolationName = item.Name;
                    //
                }

                this.WindowState = FormWindowState.Minimized;

                foreach (var layer in _fieldRepository.GetFields(item.ID))
                {
                    if (File.Exists(layer.ShapeFile))
                    {
                        var l = (DotSpatial.Controls.IMapPolygonLayer)CustomerExtension.MyAppManager.Map.Layers.Add(layer.ShapeFile);
                        l.LegendText = layer.Field;
                        l.Symbology.ClearCategories();

                        var categories = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Repository.Utils.ColorCategory>>(layer.ColorsCategories);

                        foreach (var c in categories)
                        {
                            var pc = new DotSpatial.Symbology.PolygonCategory()
                             {
                                 FilterExpression = c.Expression,
                                 Checked = true,
                                 LegendText = c.LegendText,
                                 Maximum = c.Max,
                                 Minimum = c.Min,
                             };

                            pc.SetColor(c.Color);
                            l.Symbology.AddCategory(pc);
                        }
                        new DotSpatial.Symbology.Forms.FeatureCategoryControl(l).ApplyChanges();

                        CustomerExtension.MyAppManager.Map.Refresh();

                    }
                }

            }
        }