/// <summary> /// Creates a new Custom Point symbolizer with the specified properties /// </summary> /// <param name="uniqueName">the unique name</param> /// <param name="name">the name of the custom symbolizer</param> /// <param name="category">the map category of the custom symbolizer</param> /// <param name="symbolizer">the associated Point symbolizer</param> public CustomPointSymbolizer(string uniqueName, string name, string category, PointSymbolizer symbolizer) { base.UniqueName = uniqueName; base.Name = name; base.Category = category; base.Symbolizer = symbolizer; }
/// <summary> /// Draws a preview of a point symbolizer inside of the specified rectangle /// </summary> private void DrawPointSymbolizer(PointSymbolizer sym, Graphics g, Rectangle rect) { if (sym != null) { g.Clear(Color.White); Matrix shift = g.Transform; shift.Translate(rect.Width / 2, rect.Height / 2); g.Transform = shift; double scale = 1; if (sym.ScaleMode == ScaleModes.Geographic || sym.GetSize().Height > (rect.Height - 6)) { scale = (rect.Height - 6) / sym.GetSize().Height; } sym.Draw(g, scale); } }
private static List<CustomSymbolizer> getBasicPointSymbols() { List<CustomSymbolizer> lst = new List<CustomSymbolizer>(); PointSymbolizer s1 = new PointSymbolizer(); const char ch = '\u21e6'; s1.Symbols.Add(new CharacterSymbol(ch, "arial", Color.Blue,10.0)); lst.Add(new CustomSymbolizer(s1, "symbol01", "arrow1", "arrows")); PointSymbolizer s2 = new PointSymbolizer(Color.Beige, PointShapes.Ellipse, 7.0); lst.Add(new CustomSymbolizer(s2, "symbol02", "circle1", "default")); return lst; }
/// <summary> /// Sets up the Table to work with the specified layer /// </summary> /// <param name="layer"></param> public void Initialize(IFeatureLayer layer) { _original = layer.Symbology; ILegendItem parent = _original.GetParentItem(); //_original.SetParentItem(null); _newScheme = _original.Copy(); _source = layer.DataSet; // _original.SetParentItem(parent); // Disconnect this from actually affecting the layers. if(!layer.DataSet.AttributesPopulated) { if(layer.DataSet.NumRows() < 100000) { _source.FillAttributes(); // for small datasets, it is better to just load and cache it. } } if(_source.AttributesPopulated) { _expressionDialog.Table = _source.DataTable; } else { _expressionDialog.AttributeSource = _source; } _schemeType = GetSchemeType(layer); if (_schemeType != SymbolizerTypes.Polygon) { chkUseGradients.Visible = false; angGradientAngle.Visible = false; } else { chkUseGradients.Visible = true; angGradientAngle.Visible = true; } if (_schemeType == SymbolizerTypes.Point) { IPointScheme ps = _newScheme as IPointScheme; if (ps != null) { IPointSymbolizer sym; if (ps.Categories.Count == 0 || ps.Categories[0].Symbolizer == null) { sym = new PointSymbolizer(); } else { sym = ps.Categories[0].Symbolizer; } _ignoreRefresh = true; featureSizeRangeControl1.SizeRange = new FeatureSizeRange(sym,_newScheme.EditorSettings.StartSize , _newScheme.EditorSettings.EndSize); featureSizeRangeControl1.Initialize(new SizeRangeEventArgs(_newScheme.EditorSettings.StartSize, _newScheme.EditorSettings.EndSize, sym, _newScheme.EditorSettings.UseSizeRange)); featureSizeRangeControl1.Scheme = ps; featureSizeRangeControl1.Visible = true; _ignoreRefresh = false; } } else if (_schemeType == SymbolizerTypes.Line) { ILineScheme ls = _newScheme as ILineScheme; if(ls != null) { ILineSymbolizer sym; if(ls.Categories.Count == 0 || ls.Categories[0].Symbolizer == null) { sym = new LineSymbolizer(); } else { sym = ls.Categories[0].Symbolizer; } _ignoreRefresh = true; featureSizeRangeControl1.SizeRange = new FeatureSizeRange(sym, _newScheme.EditorSettings.StartSize, _newScheme.EditorSettings.EndSize); featureSizeRangeControl1.Initialize(new SizeRangeEventArgs(_newScheme.EditorSettings.StartSize, _newScheme.EditorSettings.EndSize, sym, _newScheme.EditorSettings.UseSizeRange)); featureSizeRangeControl1.Scheme = ls; featureSizeRangeControl1.Visible = true; _ignoreRefresh = false; } } else { featureSizeRangeControl1.Visible = false; } UpdateFields(); if (_newScheme.EditorSettings.ClassificationType != ClassificationTypes.Quantities) return; nudCategoryCount.Enabled = true; tabScheme.Visible = true; dgvCategories.Height = 217; UpdateStatistics(false, null); }
/// <summary> /// Creates a new Point Category based on the specified character /// </summary> /// <param name="character">The character to use for the symbol</param> /// <param name="fontFamilyName">The font family name to use as the font</param> /// <param name="color">The color of the character</param> /// <param name="size">The size of the symbol</param> public PointCategory(char character, string fontFamilyName, Color color, double size) { Symbolizer = new PointSymbolizer(character, fontFamilyName, color, size); SelectionSymbolizer = new PointSymbolizer(character, fontFamilyName, Color.Cyan, size); }
/// <summary> /// Creates a simple point category where the symbolizer is based on the simple characteristics. /// The selection symbolizer has the same shape and size, but will be colored cyan. /// </summary> /// <param name="color">The color of the regular symbolizer</param> /// <param name="shape">The shape of the regular symbolizer</param> /// <param name="size">the size of the regular symbolizer</param> public PointCategory(Color color, PointShapes shape, double size) { Symbolizer = new PointSymbolizer(color, shape, size); SelectionSymbolizer = new PointSymbolizer(Color.Cyan, shape, size); }
/// <summary> /// Creates a new instanec of a default point scheme category where the geographic symbol size has been /// scaled to the specified extent. /// </summary> /// <param name="extent">The geographic extent that is 100 times wider than the geographic size of the points.</param> public PointCategory(IEnvelope extent) { Symbolizer = new PointSymbolizer(false, extent); SelectionSymbolizer = new PointSymbolizer(true, extent); }
/// <summary> /// Creates a new instance of PointSchemeCategory /// </summary> public PointCategory() { Symbolizer = new PointSymbolizer(); SelectionSymbolizer = new PointSymbolizer(true); }
/// <summary> /// Creates a new Point Category from the list of symbols /// </summary> /// <param name="symbols"></param> public PointCategory(IEnumerable<ISymbol> symbols) { Symbolizer = new PointSymbolizer(symbols); List<ISymbol> copy = symbols.CloneList(); if(copy.Count() > 0) { IColorable c = symbols.Last() as IColorable; if(c != null) { c.Color = Color.Cyan; } } SelectionSymbolizer = new PointSymbolizer(copy); }
/// <summary> /// Creates a category from the single symbol specified. If the symbol is colorable, /// the color of the selection symbol will be duplicated, but set to cyan. /// </summary> /// <param name="symbol"></param> public PointCategory(ISymbol symbol) { Symbolizer = new PointSymbolizer(symbol); ISymbol copy = symbol.Copy(); IColorable c = copy as IColorable; if(c != null) { c.Color = Color.Cyan; } SelectionSymbolizer = new PointSymbolizer(copy); }
/// <summary> /// Creates a category where the picture is used for the symbol, and a selected /// symbol is created as the same symbol but with a cyan border. /// </summary> /// <param name="picture">The image to use</param> /// <param name="size">The size of the symbol</param> public PointCategory(Image picture, double size) { Symbolizer = new PointSymbolizer(picture, size); PictureSymbol ps = new PictureSymbol(picture, size); ps.OutlineColor = Color.Cyan; ps.OutlineWidth = 2; ps.OutlineOpacity = 1f; SelectionSymbolizer = new PointSymbolizer(); }
/// <summary> /// Creates a new CustomSymbolizer for symbolizing Points /// </summary> public CustomPointSymbolizer() { Symbolizer = new PointSymbolizer(); }