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

用C#开发ArcGIS,现在有一个layer加载到axmapControl中,如图,我想用C#实现对每个区喷绘不同的颜色,这个怎么实现?我是用FeatureLayer加载... 用C#开发ArcGIS,现在有一个layer加载到axmapControl中,如图,我想用C#实现对每个区喷绘不同的颜色,这个怎么实现?我是用FeatureLayer加载的这个shp文件。 展开
 我来答
miaoqi198508
2013-09-02 · 超过18用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:61.4万
展开全部
/// <summary>
/// 单一值渲染(单字段)
/// </summary>
/// <param name="layerName">图层名</param>
/// <param name="RenderField">渲染字段</param>
/// <param name="FillStyle">填充样式</param>
/// <param name="valueCount">字段的唯一值个数</param>
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;
}
试试这个?
追问
CreateAlgorithmicColorRamp()这个方法是做什么的?你这个方法是喷上不同的色了 但是把其他图层的线条给覆盖了,能不能以标注的形式喷色,这样就不会覆盖其他的图层了
1195257209
2013-09-03 · TA获得超过717个赞
知道小有建树答主
回答量:256
采纳率:0%
帮助的人:125万
展开全部

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

www.gis520.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a7132fc
2013-09-03 · 超过16用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:45.9万
展开全部
渲染,渲染,就相当于 arcmap 中的右键属性中的渲染
追问
我是要用C#代码实现。用ArcMap我就不问了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式