/// <summary> /// 用指定填充颜色和边线颜色渲染图层 /// </summary> /// <param name="geoLayer">图层</param> /// <param name="mainColor">主颜色,即面图层的填充颜色,线图层的线条颜色,点图层的符号内部颜色</param> /// <param name="outlineColor">面或点的边线颜色,若为null,则设置边线颜色为RGB:128, 138, 135</param> /// <param name="transparency">图层的透明度,0为不透明,100为全透明</param> /// <param name="widthOrSize">面/线图层的线宽,或点图层点的大小</param> public static void SetSimpleRenderer(this IGeoFeatureLayer geoLayer, IColor mainColor, IColor outlineColor = null, short transparency = 0, double widthOrSize = 1) { ISymbol symbol = null; switch (geoLayer.FeatureClass.ShapeType) { case esriGeometryType.esriGeometryPolygon: symbol = (ISymbol)SymbolCreate.GetSimpleFillSymbol(mainColor, outlineColor, widthOrSize); break; case esriGeometryType.esriGeometryPoint: case esriGeometryType.esriGeometryMultipoint: symbol = (ISymbol)SymbolCreate.GetSimpleMarkerSymbol(mainColor, outlineColor, widthOrSize); break; case esriGeometryType.esriGeometryLine: case esriGeometryType.esriGeometryPolyline: symbol = (ISymbol)SymbolCreate.GetSimpleLineSymbol(mainColor, widthOrSize); break; } geoLayer.Renderer = new SimpleRendererClass { Symbol = symbol }; ILayerEffects layerEffects = (ILayerEffects)geoLayer; layerEffects.Transparency = transparency; }
/// <summary> /// 获取默认符号 /// </summary> /// <param name="geometryType"></param> /// <param name="color"></param> /// <returns></returns> private static ISymbol GetDefaultSymbol(esriGeometryType geometryType, IColor color) { switch (geometryType) { case esriGeometryType.esriGeometryLine: case esriGeometryType.esriGeometryPolyline: return(SymbolCreate.GetSimpleLineSymbol(color, 3) as ISymbol); case esriGeometryType.esriGeometryPoint: return(SymbolCreate.GetSimpleMarkerSymbol(color, null, 6, esriSimpleMarkerStyle.esriSMSCircle) as ISymbol); case esriGeometryType.esriGeometryPolygon: return(SymbolCreate.GetSimpleFillSymbol(color) as ISymbol); } return(null); }