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; }
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(); } } } }