C#开发ArcGIS图层的一下操作。

2025-04-10 02:30:31
推荐回答(3个)
回答1:

///


/// 单一值渲染(单字段)
///

/// 图层名
/// 渲染字段
/// 填充样式
/// 字段的唯一值个数
public void createUniqueValueRander(string layerName, string RenderField, esriSimpleFillStyle FillStyle,int valueCount)
{
IGeoFeatureLayer geoFeatureLayer;
geoFeatureLayer = getGeoLayer(layerName); IUniqueValueRenderer uniqueValueRenderer = new UniqueValueRendererClass();
//可以设置多个字段
uniqueValueRenderer.FieldCount = 1;//0-3个
uniqueValueRenderer.set_Field(0, RenderField);
//简单填充符号
ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbolClass();
simpleFillSymbol.Style = FillStyle;
IFeatureCursor featureCursor = geoFeatureLayer.FeatureClass.Search(null, false);
IFeature feature;
if (featureCursor != null)
{
IEnumColors enumColors = CreateAlgorithmicColorRamp(valueCount).Colors;
int fieldIndex = geoFeatureLayer.FeatureClass.Fields.FindField(RenderField);
for (int i = 0; i < valueCount; i++)
{
feature = featureCursor.NextFeature();
string nameValue = feature.get_Value(fieldIndex).ToString();
simpleFillSymbol = new SimpleFillSymbolClass();
simpleFillSymbol.Color = enumColors.Next();
uniqueValueRenderer.AddValue(nameValue, RenderField, simpleFillSymbol as ISymbol);
}
}
geoFeatureLayer.Renderer = uniqueValueRenderer as IFeatureRenderer;
}
试试这个?

回答2:

到这个论坛看看,ae+C#的demo还挺多的

www.gis520.com

回答3:

渲染,渲染,就相当于 arcmap 中的右键属性中的渲染