arcEngine添加标注有3个技术点:1,获得图层的属性字段;2,初始化符号显示控件;3,添加标注。

获得图层的属性字段:
  //每个图层都是一个表的图形化显示,ILayer跟ITale可以互相转换
    ITable pTable = pLayer as ITable;
            IField pField = null;
            for (int i = 0; i < pTable.Fields.FieldCount; i++)
            {
                pField = pTable.Fields.get_Field(i);   
//下面3种类型的字段不能显示                      
              if(pField.Type!=esriFieldType.esriFieldTypeXML&&
                      pField.Type!=esriFieldType.esriFieldTypeRaster&&pField.Type!=esriFieldType.esriFieldTypeGeometry)
                cmbField.Items.Add(pField.AliasName);
            }
初始化符号显示控件:
string sInstall = ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path;   //获得arcgis的安装路径        
         axSymbologyControl1.LoadStyleFile(sInstall + "\\Styles\\ESRI.ServerStyle");  //打开样式文件
//显示文字符号(esriStyleClassTextSymbols)
        axSymbologyControl1.GetStyleClass(esriSymbologyStyleClass.esriStyleClassTextSymbols).SelectItem(0);
 
添加标注:
IGeoFeatureLayer geoFeatureLayer = pLayer as IGeoFeatureLayer;
         //AnnotationProperties属性控制标注的内容、格式
            geoFeatureLayer.AnnotationProperties.Clear();
  //标注放置的位置
            IBasicOverposterLayerProperties blProperty = new BasicOverposterLayerPropertiesClass();
            ILabelEngineLayerProperties llProperty = new LabelEngineLayerPropertiesClass();
 
            ITextSymbol textSymbol = new TextSymbolClass();   
            textSymbol = (ITextSymbol)styleGalleryItem.Item;     
            IColor ic = new RgbColorClass();
            ic.RGB = colorPickerButton1.SelectedColor.B * 65536 + colorPickerButton1.SelectedColor.G * 256 + colorPickerButton1.SelectedColor.R;
            textSymbol.Color = ic;
 
            stdole.IFontDisp tempFont = new stdole.StdFont() as stdole.IFontDisp;
            tempFont.Name = cmbFont.SelectedNode.Text;
            DevComponents.Editors.ComboItem cmbItem = (DevComponents.Editors.ComboItem)cmbSize.SelectedItem;
            tempFont.Size = Convert.ToDecimal(cmbItem.Text);
            textSymbol.Font = tempFont;
            textSymbol.HorizontalAlignment = esriTextHorizontalAlignment.esriTHACenter;
 
   //标注内容表达式
            string pLabel = "[" + (string)cmbField.SelectedItem + "]";
            llProperty.Expression = pLabel;
           //复杂表达式,下次博客内容
            if (cmbField.SelectedIndex == cmbField.Items.Count - 1)
            {
                llProperty.IsExpressionSimple = false;
                IAnnotationExpressionEngine annoEE = new AnnotationJScriptEngine();
                llProperty.ExpressionParser = annoEE;
                llProperty.Expression = fieldExpression;
            }
            //llProperty.ExpressionParser
 
            blProperty.NumLabelsOption = esriBasicNumLabelsOption.esriOneLabelPerShape;
            llProperty.BasicOverposterLayerProperties = blProperty;
            llProperty.Symbol = textSymbol;
            geoFeatureLayer.AnnotationProperties.Add(llProperty as IAnnotateLayerProperties);
            geoFeatureLayer.DisplayAnnotation = true;
            pMap.Refresh();

arcEngine添加标注(上)的更多相关文章

  1. 【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍

    原文:[百度地图API]如何在地图上添加标注?--另有:坐标拾取工具+打车费用接口介绍 摘要: 在这篇文章中,你将学会,如何利用百度地图API进行标注.如何使用API新增的打车费用接口. ------ ...

  2. 【百度地图API】情人节求爱大作战——添加标注功能

    原文:[百度地图API]情人节求爱大作战--添加标注功能 任务描述: 2月2日是除夕,2月14立马来!即将到来的情人节,你想送TA一份什么礼物呢? 不如,在你们居住的地方,画个大大的桃心,表达你对TA ...

  3. ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)

    上篇文章http://blog.csdn.net/itmyhome1990/article/details/36396291介绍了ajaxfileupload实现多文件上传, 但只是固定的文件个数,如 ...

  4. 使用 GMap.NET 实现添加标注、移动标注功能。(WPF版)

    前言 在WPF嵌入地图,有两种方式: 浏览器方式:控件方式. 1)浏览器方式就是使用浏览器控件WebBrowser,设置好网址就行了.这种方式与地图的交互不太直接,需要懂html.javascript ...

  5. npm的用户名添加不上的原因

    npm添加不上的错误e401 1.用cnpm提交,会提交的tao.org这个域名了,用npm提交试试 2.如果npm提交不上,那就查看配置文件配置中 registry=http://registry. ...

  6. iOS第三方地图-百度地图常用功能使用(POI搜索,地理正反编码,定位,添加标注)

    百度地图官网: http://developer.baidu.com/map/index.php?title=iossdk 百度地图集成 1.引入相关包

  7. ArcEngine 图层标注 (根据字段、角度)

    转自chanyinhelv原文 ArcEngine 图层标注 (根据字段.角度) 今天做了一个用AE来控制图层是否显示标注,以及已哪一个字段作为标注的字段,以哪一个字段作为标注的角度,现将代码写下来, ...

  8. ArcGIS 在地图上添加标注

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Html-IOS下input的样式添加不上的解决方案

    问题描述: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml&qu ...

随机推荐

  1. BZOJ 2780: [Spoj]8093 Sevenk Love Oimaster( 后缀数组 + 二分 + RMQ + 树状数组 )

    全部串起来做SA, 在按字典序排序的后缀中, 包含每个询问串必定是1段连续的区间, 对每个询问串s二分+RMQ求出包含s的区间. 然后就是求区间的不同的数的个数(经典问题), sort queries ...

  2. JavaScript总结之鼠标划过弹出div单击出现对话框

    为了满足他们的永无止境的要求,我可谓是任劳任怨啊,累断了双手,看瞎了双眼.这个是来写鼠标划过一个按钮,然后弹出一个小提示框解释,另外根据radio是否选中,判断点击后如何执行,然后执行之后再有一个确认 ...

  3. AutoCompleteTextView 和 TextWatcher 详解

    TextWatcher 监测Edittext内容的变化------------------------------------------------------------------------- ...

  4. ContentProvider类的解析

    一.ContentProvider类 1.作用:专门用于不同应用之间进行数据共享的方式. 二.实现方法 1.创建ContenteProvider类 步骤一:继承ContentProvider接口,重写 ...

  5. python-md5加密

    python实现:md5_hash.py #-*- coding: UTF-8 -*- ' __date__ = '2016/4/11' from Tkinter import * import ha ...

  6. CSS自学笔记(11):CSS3背景和边框

    CSS3 背景 在CSS3中新增了多个关于背景的属性,可以让我们对背景有了更多更好的操作,减少用第三方工具对背景图片进行修改美化. CSS3中主要是通过定义backgrounp中的各个属性来控制背景( ...

  7. 习惯使用断言Assert

    一直在给党做项目,我们这些可怜兮兮的学生都没太多时间安排自己的活动了,写个blog都要在中午休息的时间. 项目用的是.NET,本来也想分享一些干货点的东西,但博客园里的前辈把这类文章已经分享泛滥了,想 ...

  8. Oracle EBS-SQL (PO-5):采购订单控制信息查询.sql

    select distinct pla.po_header_id, --pha.type_lookup_code, pha.segment1       采购订单号, appf.full_name   ...

  9. android应用开发全程实录-你有多熟悉listview

    http://blog.csdn.net/notice520/article/details/7040962 今天给大家带来<android应用开发全程实录>中关于listview和ada ...

  10. 实用chrome插件

    2015年最实用的9款chrome插件 随着14年chrome浏览器的市场超过IE浏览器,chrome凭借它强劲性能和出色的使用体验真正的登上了平民级的殿堂.今天小编就为大家推荐9款自己常用的chro ...