private void menu_Click(object sender, EventArgs e) { FormContour Frm = new FormContour(); Frm.layers = App.Map.GetRasterLayers(); if (Frm.layers.GetLength(0) <= 0) { MessageBox.Show("No raster layer found!"); return; } if (Frm.ShowDialog() == DialogResult.OK) { IMapFeatureLayer fl = App.Map.Layers.Add(Frm.Contours); fl.LegendText = Frm.LayerName + " - Contours"; int numlevs = Frm.lev.GetLength(0); switch (Frm.contourtype) { case (Contour.ContourType.Line): { LineScheme ls = new LineScheme(); ls.Categories.Clear(); for (int i = 0; i < Frm.color.GetLength(0); i++) { LineCategory lc = new LineCategory(Frm.color[i], 2.0); lc.FilterExpression = "[Value] = " + Frm.lev[i].ToString(); lc.LegendText = Frm.lev[i].ToString(); ls.AddCategory(lc); } fl.Symbology = ls; } break; case (Contour.ContourType.Polygon): { PolygonScheme ps = new PolygonScheme(); ps.Categories.Clear(); for (int i = 0; i < Frm.color.GetLength(0); i++) { PolygonCategory pc = new PolygonCategory(Frm.color[i], Color.Transparent, 0); pc.FilterExpression = "[Lev] = " + i.ToString(); pc.LegendText = Frm.lev[i].ToString() + " - " + Frm.lev[i + 1].ToString(); ps.AddCategory(pc); } fl.Symbology = ps; } break; } } }
private void AssociateToGrid() { IFeatureSet fT = null; IMapPolygonLayer tem = null; foreach (IMapPolygonLayer ila in this.map.GetPolygonLayers()) { fT = (IFeatureSet)ila.DataSet; tem = ila; if (ila.LegendText == "Grid") break; } if (fT == null) return; Stat stat = new Stat(false); foreach (IFeature fea in fT.Features) { IFeature center = fea.Centroid(); double st = dataK.Interpolate(center.Coordinates[0].X, center.Coordinates[0].Y, center.Coordinates[0].Z, true)[0]; fea.DataRow["Field"] = st; stat += new Stat(st); } fT.Save(); tem.DataSet.FillAttributes(); PolygonScheme polScheme = new PolygonScheme(); polScheme.EditorSettings.FieldName = "Field"; polScheme.EditorSettings.ClassificationType = ClassificationType.Custom; // polScheme.EditorSettings.StartColor = Color.Green; // polScheme.EditorSettings.EndColor = Color.Magenta; //// polScheme.EditorSettings.UseColorRange = true; // polScheme.EditorSettings.RampColors = true; for (int i = 0; i < 12; i++) { PolygonCategory cat = new PolygonCategory(); cat.SetColor(Color.FromArgb(i * 20, 50, 250 - (i * 20))); cat.Range = new Range(stat.Min + (i - 1) * (stat.Max - stat.Min) / 10, stat.Min + (i) * (stat.Max - stat.Min) / 10); cat.FilterExpression = string.Format("[Field]>{0} AND [Field]<={1}", Math.Round((double)cat.Range.Minimum, 3), Math.Round((double)cat.Range.Maximum, 3)); cat.LegendText = string.Format("{0} - {1}", Math.Round((double)cat.Range.Minimum, 3), Math.Round((double)cat.Range.Maximum, 3)); polScheme.AddCategory(cat); } tem.Symbology = polScheme; // tem.ApplyScheme(polScheme); map.ResetBuffer(); }