gis二次开发地图符号化.ppt

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
gis二次开发地图符号化

6.6.1 TextElement标注 标注的流程是首先在一个要素图层进行查询,然后通过一个cursor取得所有要进行标注的要素,然后遍历要素做如下操作: 获取单个要素的Envelope属性,即要素几何图形的最小外包矩形。 新建一个TextElement对象,其Text为要素的某个字段属性,而Geometry是要素最小外包矩形的中间点。 将新建的文字元素加入地图中。 刷新视图,让标注文本显示出来。 private void TextElementLabel (IMap pMap,IFeatureClass pFeatClass, string strName) { //获得要素类查询后的要素游标对象 IFeatureCursor pFeatCursor = pFeatClass.Search(null, true); IFeature pFeat = pFeatCursor.NextFeature(); while( pFeat != null ) { //寻找要素类的字段集合,并找出标注字段的索引号 IFields pFields = pFeat.Fields; int i = pFields.FindField(strName); //得到要素的最小外包矩形 IEnvelope pEnv = pFeat.Extent; //确定字符元素的Geometry,它是包络线的中心点 IPoint pPoint = new PointClass(); pPoint.PutCoords(pEnv.XMin + pEnv.Width / 2, pEnv.YMin + pEnv.Height / 2); ITextSymbol pTextSymbol = new TextSymbolClass(); System.Drawing.Font drawFont = new System.Drawing.Font(Arial, 16, FontStyle.Bold); pTextSymbol.Font = (stdole.IFontDisp) OLE.GetIFontDispFromFont(drawFont); pTextSymbol.Color = GetRGBColor(0, 0, 0); ITextElement pTextEle = new TextElementClass(); pTextEle.Text = pFeat.get_Value(i).ToString(); pTextEle . Symbol = pTextSymbol ; IElement pEle = pTextEle as IElement; pEle.Geometry = pPoint; IActiveView pActiveView = pMap as IActiveView; IGraphicsContainer pGraphicsContainer = pMap as IGraphicsContainer; pGraphicsContainer.AddElement(pEle, 0); pFeat = pFeatCursor.NextFeature(); } } private void mnuTextElementLabel_Click(object sender, System.EventArgs e) { IMap pMap = axMapControl1.Map; IFeatureLayer pFeatureLayer = pMap.get_Layer(1) as IFeatureLayer; IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass; string pFieldName = STATE_NAME; TextElementLabel (pMap,pFeatureClass, pFieldName); } 6.6.2 ArcObjects中的标注 ArcObjects提供了两种标注方法: Label(标注),在ArcMap中表现为设置图层的Label属性后,图层就以Label属性中设置的字段进行标注; Annotation(注记),它以更复杂的方法和属性对要素图层进行注记,这个过程是自动进行的,不需要用户进行干预,而且注记的内容还可以保存到地理数据库中。 这两种标注方法在ArcObjects中使用的是一个标注对象集 。 AnnotateLayerPropertiesCollection对象是一个要素图层的属性,它是一个标注集对象

文档评论(0)

sandaolingcrh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档