在地图中添加label以标注地图
2010-06-30 19:54
363 查看
有多种方法:
1.使用TextElement
2.使用Label属性或与lyr文件或mxd文件结合进行标注
3.使用AnnotateLayerPropertiesCollection对象进行复杂标注
其中,第二种方法的代码为:
这种方法的一个简化是,在ArcMap中事先设定好图层标记的属性,保存为mxd或lyr文件,程序中只使用
pGeoFeatureLayer.DisplayAnnotation和pGeoFeatureLayer.DisplayField设定显示的字段以及是否显示。
在ArcMap中设定的一些细节为:
1.设定标记是否重复、是否每个图元一个标记、或每个图元的每一部分都有一个标记,如图:
2.如何设定label只保留两位小数,如图:
还可以设置其他更为丰富的格式。
1.使用TextElement
2.使用Label属性或与lyr文件或mxd文件结合进行标注
3.使用AnnotateLayerPropertiesCollection对象进行复杂标注
其中,第二种方法的代码为:
private void AddLabel2Map(string strField) { IGeoFeatureLayer pGeoFeatureLayer; ILineLabelPosition pLineLabelPosition; ILabelEngineLayerProperties pLabelEngineLayerProperties; IAnnotateLayerProperties pAnnotateLayerProperties; pGeoFeatureLayer = (IGeoFeatureLayer)pMapControl.get_Layer(0); pGeoFeatureLayer.AnnotationProperties.Clear(); pLineLabelPosition = new LineLabelPositionClass(); pLineLabelPosition.Above = false; pLineLabelPosition.AtEnd = false; pLineLabelPosition.Below = false; pLineLabelPosition.Horizontal = false; pLineLabelPosition.InLine = true; pLineLabelPosition.OnTop = true; pLineLabelPosition.Parallel = true; pLineLabelPosition.ProduceCurvedLabels = true; pLabelEngineLayerProperties = new LabelEngineLayerPropertiesClass(); pLabelEngineLayerProperties.Symbol = new TextSymbolClass(); pLabelEngineLayerProperties.IsExpressionSimple = true; pLabelEngineLayerProperties.Expression = "[" + strField + "]";//需要中括号 pLabelEngineLayerProperties.BasicOverposterLayerProperties.LineLabelPosition = pLineLabelPosition; pAnnotateLayerProperties = (IAnnotateLayerProperties)pLabelEngineLayerProperties; pAnnotateLayerProperties.DisplayAnnotation = true; pAnnotateLayerProperties.FeatureLayer = pGeoFeatureLayer; pAnnotateLayerProperties.LabelWhichFeatures = esriLabelWhichFeatures.esriAllFeatures; pAnnotateLayerProperties.WhereClause = ""; pGeoFeatureLayer.AnnotationProperties.Add(pAnnotateLayerProperties); pGeoFeatureLayer.DisplayAnnotation = true; pMapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null); }
这种方法的一个简化是,在ArcMap中事先设定好图层标记的属性,保存为mxd或lyr文件,程序中只使用
pGeoFeatureLayer.DisplayAnnotation和pGeoFeatureLayer.DisplayField设定显示的字段以及是否显示。
在ArcMap中设定的一些细节为:
1.设定标记是否重复、是否每个图元一个标记、或每个图元的每一部分都有一个标记,如图:
2.如何设定label只保留两位小数,如图:
还可以设置其他更为丰富的格式。
相关文章推荐
- 百度地图API多个点聚合时,标注添加的标签label地图刷新就丢失的问题解决
- supermap学习系列(七)——用户自己在地图上添加点、线、面标注
- Arcgis javascript那些事儿(十九)——地图标注添加
- 【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍
- 【百度地图API】建立全国银行位置查询系统(三)——如何在地图上添加银行标注
- 调用百度地图API添加点聚合时,marker标注的label标签刷新丢失问题
- ArcGIS 在地图上添加标注
- 用Ajax加载Google地图并向地图上添加标注信息
- iOS 之 使用百度地图 (删除地图页面所有自己添加的标注)
- js 调用百度地图api并在地图上进行打点添加标注
- 用Label方式添加标注
- 谷歌地图在地图上添加文字标注
- 如何使用百度地图API在地图上批量添加点标注
- 仿淘宝京东筛选 地图多个标注点添加百度样式检索窗口
- 给地图添加标注
- js 调用百度地图api,并在地图上进行打点,添加标注
- 解决arcgis api自定义给FeatureLayer添加文字标注(label)
- MapObject学习笔记-第三讲 图层标注、图层控制和电子地图常用工具开发(添加经过修正与VS2005兼容的Legend控件下载)
- Google map API3 标注、添加事件、地图查询
- 不在可视区域,重新创建地图,添加标注