/// <summary> /// 获取经纬网,并设置属性 /// </summary> /// <returns></returns> public static IGraticule GetGraticuleAndSetProperty() { IGraticule pGraticule = new GraticuleClass(); pGraticule.Name = "Map Grid"; //设置网格线的符号样式 ICartographicLineSymbol pLineSymbol = GetLineSymbol(); pGraticule.LineSymbol = pLineSymbol; //设置网格的边框样式 pGraticule.Border = (IMapGridBorder)GetMapGridBorder(); //设置网格的主刻度的样式和可见性 pGraticule.TickLength = 15; pGraticule.TickMarkSymbol = null; pGraticule.TickLineSymbol = pLineSymbol; //设置网格的次级刻度的样式和可见性 pGraticule.SubTickCount = 5; pGraticule.SubTickLength = 10; pGraticule.SubTickLineSymbol = pLineSymbol; pGraticule.SetSubTickVisibility(true, true, true, true); //设置网格的标签的样式和可见性 pGraticule.LabelFormat.Font = MappingHelper.GetFont("Arial") as IFontDisp; pGraticule.Visible = true; return(pGraticule); }
private ISymbol CreateBikeRouteSymbol() { IColor color = (IColor)ESRI.ArcGIS.ADF.Connection.Local.Converter.ToRGBColor(Color.FromArgb(0, 90, 250)); ICharacterMarkerSymbol charMarkerSymbol = new CharacterMarkerSymbolClass(); charMarkerSymbol.Color = color; charMarkerSymbol.Font = ESRI.ArcGIS.ADF.Connection.Local.Converter.ToStdFont(new Font("ESRI Default Marker", 17.0f, FontStyle.Bold)); charMarkerSymbol.CharacterIndex = 189; charMarkerSymbol.Size = 17; IMarkerLineSymbol markerLineSymbol = new MarkerLineSymbolClass(); markerLineSymbol.Color = color; markerLineSymbol.Width = 17.0; markerLineSymbol.MarkerSymbol = (IMarkerSymbol)charMarkerSymbol; // Makes a new Cartographic Line symbol and sets its properties ICartographicLineSymbol cartographicLineSymbol = markerLineSymbol as ICartographicLineSymbol; // In order to set additional properties like offsets and dash patterns we must create an ILineProperties object ILineProperties lineProperties = cartographicLineSymbol as ILineProperties; lineProperties.Offset = 0; // Here's how to do a template for the pattern of marks and gaps double[] hpe = new double[4]; hpe[0] = 0; hpe[1] = 39; hpe[2] = 1; hpe[3] = 0; ITemplate template = new TemplateClass(); template.Interval = 1; for (int i = 0; i < hpe.Length; i = i + 2) { template.AddPatternElement(hpe[i], hpe[i + 1]); } lineProperties.Template = template; // Set the basic and cartographic line properties cartographicLineSymbol.Color = color; color = (IColor)ESRI.ArcGIS.ADF.Connection.Local.Converter.ToRGBColor(Color.FromArgb(0, 220, 100)); // create a simple line ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbolClass(); simpleLineSymbol.Color = color; simpleLineSymbol.Style = esriSimpleLineStyle.esriSLSSolid; simpleLineSymbol.Width = 1.2; IMultiLayerLineSymbol multiLayerLineSymbol = new MultiLayerLineSymbolClass(); multiLayerLineSymbol.AddLayer((ILineSymbol)cartographicLineSymbol); multiLayerLineSymbol.AddLayer((ILineSymbol)simpleLineSymbol); return(multiLayerLineSymbol as ISymbol); }
//创建点状线 private IMarkerLineSymbol CreateMarkerLineSymbol() { IMarkerLineSymbol pMarkerLS = new MarkerLineSymbol(); //样式 if (pMarkerSymbol != null) { pMarkerLS.MarkerSymbol = pMarkerSymbol; } ICartographicLineSymbol pCartographicLS = pMarkerLS as ICartographicLineSymbol; //颜色 if (colorCartographicLine.SelectedColor != Color.Empty) { pCartographicLS.Color = ClsGDBDataCommon.ColorToIColor(colorCartographicLine.SelectedColor); } else { pCartographicLS.Color = ClsGDBDataCommon.ColorToIColor(Color.Black); colorCartographicLine.SelectedColor = Color.Black; } //宽度 pCartographicLS.Width = double.Parse(widthCartographicLine.Text); //端点样式 if (rbCatButt.Checked == true) { pCartographicLS.Cap = esriLineCapStyle.esriLCSButt; } else if (rbCatRoundC.Checked == true) { pCartographicLS.Cap = esriLineCapStyle.esriLCSRound; } else if (rbCatSquare.Checked == true) { pCartographicLS.Cap = esriLineCapStyle.esriLCSSquare; } //节点样式 if (rbCatMitre.Checked == true) { pCartographicLS.Join = esriLineJoinStyle.esriLJSMitre; } else if (rbCatRoundJ.Checked == true) { pCartographicLS.Join = esriLineJoinStyle.esriLJSRound; } else if (rbCatBevel.Checked == true) { pCartographicLS.Join = esriLineJoinStyle.esriLJSBevel; } //端点箭头样式 ILineDecorationElement pLineDecorationElement = new SimpleLineDecorationElement(); return(pMarkerLS); }
/// <summary> /// 获取线符号 /// </summary> /// <param name="Symbol"></param> /// <returns></returns> private ptSymbolClass GetLineSymbolClass(ISymbol Symbol) { ptSymbolClass pSymbolClass = null; if (Symbol is ICartographicLineSymbol) { ICartographicLineSymbol ICLS = Symbol as ICartographicLineSymbol; if (ICLS is IHashLineSymbol) { pSymbolClass = new ptHashLineSymbolClass(Symbol); return(pSymbolClass); } else if (ICLS is IMarkerLineSymbol) { pSymbolClass = new ptMarkerLineSymbolClass(Symbol); return(pSymbolClass); } else { pSymbolClass = new ptCartographicLineSymbol(Symbol); return(pSymbolClass); } } else if (Symbol is ISimpleLineSymbol) { pSymbolClass = new ptSimpleLineSymbolClass(Symbol); return(pSymbolClass); } else if (Symbol is IPictureLineSymbol) { pSymbolClass = new ptPictureLineSymbolClass(Symbol); return(pSymbolClass); } else if (Symbol is IMultiLayerLineSymbol) { pSymbolClass = new ptMultilayerLineSymbolClass(Symbol); return(pSymbolClass); } return(pSymbolClass); }