[VB.NET写法]
Private Sub LabelFeature(ByVal pFeaturelayer As IFeatureLayer, ByVal pServerContext As IServerContext)
Dim pGeoFeatureLayer As IGeoFeatureLayer
pGeoFeatureLayer = pFeaturelayer
pGeoFeatureLayer .AnnotationProperties.Clear()
Dim pAnnoLayerProColl As IAnnotateLayerPropertiesCollection
Dim pLabelEngine As ILabelEngineLayerProperties
pAnnoLayerProColl = pGeoFeatureLayer .AnnotationProperties
Dim pAnnoLayerProps As IAnnotateLayerProperties
pLabelEngine = pServerContext.CreateObject("esriCarto.LabelEngineLayerProperties")
pLabelEngine .Expression = "[Filed]"
pAnnoLayerProps = pLabelEngine
'pAnnoLayerProps.LabelWhichFeatures = esriSelectedFeatures '转换Graphic时可以利用
pAnnoLayerProColl .Add(pAnnoLayerProps)
pGeoFeatureLayer.DisplayAnnotation = True
End Sub
[C#写法]
private void LabelField(IFeatureLayer pFeatureLayer,IServerContext pServerContext)
{
IGeoFeatureLayer pGeoFeatureLayer = pFeatureLayer as IGeoFeatureLayer;
pGeoFeatureLayer.AnnotationProperties.Clear();
IAnnotateLayerPropertiesCollection pAnnoLayerPropsColl = pGeoFeatureLayer.AnnotationProperties;
ILabelEngineLayerProperties pLabelEngine;
pLabelEngine = pServerContext.CreateObject("esriCarto.LabelEngineLayerProperties") as ILabelEngineLayerProperties;
pLabelEngine.Expression = "[Field]";
IAnnotateLayerProperties pAnnoLayerProps = pLabelEngine as IAnnotateLayerProperties;
pAnnoLayerPropsColl.Add(pAnnoLayerProps);
pGeoFeatureLayer.DisplayAnnotation = true;
}
Feedback
using (WebMap webMap = Map1.CreateWebMap())
{IMapServerObjects mapo = webMap.MapServer as IMapServerObjects;
IMap map = mapo.get_Map(webMap.DataFrame);
IFeatureLayer fl = map.get_Layer(0) as IFeatureLayer;
IServerContext sc = webMap.ServerContext;
LabelField(fl,sc);
webMap.Refresh();
}不知有没有错。 在 pLabelEngine.Expression = "[Field]"; 我的字段填了具体的字段。运行后一点变化都没有。那这句加在那里layerDescription.ShowLabels = true;它查询、调用哪个接口。
ILayerDescription layerDesc = mapDescription.LayerDescriptions.get_Element(labelID);
#9楼 回复 引用 查看
2005-08-05 16:31 by zls [未注册用户]#11楼 回复 引用 查看
2005-08-08 09:03 by zls [未注册用户]不过请教一下土匪兄,我想对arcgis server摸板里的web services catalog Application摸板进行扩张,不知如何下手,你能否给点建议?非常感谢!!
#13楼 回复 引用 查看
2006-03-10 23:20 by 建筑网 [未注册用户]#14楼 回复 引用 查看
2006-03-10 23:20 by 建筑网 [未注册用户]#15楼 回复 引用 查看
2006-08-10 09:09 by offer [未注册用户]#16楼 回复 引用 查看
2006-08-10 09:11 by offer [未注册用户]#17楼 回复 引用 查看
2006-08-10 09:16 by offer [未注册用户]layerDescription.ShowLabels = true;这两句话是不是有点不一致啊上面定义的是layerDesc,后面是layerDescription.ShowLabels ???
还是有别的意思?我是新手不好意思,需要明白点的
#18楼 回复 引用 查看
2006-08-16 10:31 by offer [未注册用户]#19楼 回复 引用 查看
2006-08-16 17:04 by offer [未注册用户]为什么没有人回答我啊 ???
急啊
#20楼 回复 引用 查看
2006-09-09 13:07 by flashsky [未注册用户]#21楼 回复 引用 查看
2006-10-10 16:43 by wjb [未注册用户][引用提示]GIS云中飞鹏引用了该文章, 地址: http://www.cnblogs.com/gispeng/archive/2007/07/19/823833.html
#23楼 [TrackBack] 回复 引用 查看
2007-07-30 09:02 by kylinindotnet[引用提示]kylinindotnet引用了该文章, 地址: http://www.cnblogs.com/kylinindotnet/archive/2007/07/30/835934.html
#24楼 回复 引用 查看
2007-11-21 15:35 by zz啊 [未注册用户]{
m_agsBase.InitializeVar(Map1);
IMap pMap = m_agsBase.GetMap();
//取地图上的第一个图层
ILayer pLayer = pMap.get_Layer(0);
IFeatureLayer pFeatureLyr = pLayer as IFeatureLayer;
IGeoFeatureLayer pGeoFeatLyr = pFeatureLyr as IGeoFeatureLayer;
IAnnotateLayerPropertiesCollection pAnnoLayerPropsColl = pGeoFeatLyr.AnnotationProperties;
pAnnoLayerPropsColl.Clear();
ILabelEngineLayerProperties pLabelEngineProps;
IServerContext pSOC = m_agsBase.GetSOC();
pLabelEngineProps = pSOC.CreateObject("esriCarto.LabelEngineLayerProperties") as ILabelEngineLayerProperties;
pLabelEngineProps.Expression = "[支干渠]";
IAnnotateLayerProperties pAnnoLayerProps = pLabelEngineProps as IAnnotateLayerProperties;
pAnnoLayerPropsColl.Add(pAnnoLayerProps);
pGeoFeatLyr.DisplayAnnotation = true;
ESRI.ArcGIS.ADF.ArcGISServer.MapDescription mapDesc = m_agsBase.GetMapDescription();
ESRI.ArcGIS.ADF.ArcGISServer.LayerDescription LayerDesc = mapDesc.LayerDescriptions[0] as ESRI.ArcGIS.ADF.ArcGISServer.LayerDescription;
LayerDesc.ShowLabels = true;
Map1.Refresh();
}
为什么出不来亚。。