• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

gisoracle

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

ArcGIS Engine Maplex Label(标注)使用一例(转)

/// <summary>
        /// MaplexEngine标注
        /// </summary>
        /// <param name="pGeoFeatLyr">标注图层</param>
        /// <param name="pMap">地球人都知</param>
        /// <param name="annoField">标记字段</param>
         public void Annotation(IGeoFeatureLayer pGeoFeatLyr, IMap pMap, string annoField)
        {
            IAnnotateMap pAnnoMap;
            pAnnoMap = new MaplexAnnotateMapClass();
            pMap.AnnotationEngine = pAnnoMap;
            IGeoFeatureLayer pGeoFeatLayer;
            pGeoFeatLayer = pGeoFeatLyr;
            IAnnotateLayerPropertiesCollection pAnnoProps;
            pAnnoProps = pGeoFeatLyr.AnnotationProperties;
            pAnnoProps.Clear();
            ILabelEngineLayerProperties2 pLabelEngine2 = new MaplexLabelEngineLayerPropertiesClass();
            pLabelEngine2.Expression = "[" + annoField + "]";
           
            IMaplexOverposterLayerProperties pMaplexPro = new MaplexOverposterLayerPropertiesClass();
            pMaplexPro.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon;
            pMaplexPro.PolygonPlacementMethod = esriMaplexPolygonPlacementMethod.esriMaplexHorizontalInPolygon;
            pMaplexPro.CanPlaceLabelOutsidePolygon = false;
            pMaplexPro.CanRemoveOverlappingLabel = false;
            pMaplexPro.RepeatLabel = false;
            pLabelEngine2.OverposterLayerProperties = pMaplexPro as IOverposterLayerProperties;
            IMapOverposter pMapPos = axMapControl1.Map as IMapOverposter;
            IOverposterProperties pOP = pMapPos.OverposterProperties;
            IMaplexOverposterProperties pMaplexOP = pOP as IMaplexOverposterProperties;
            pMaplexOP.LabelLargestPolygon = false;
            pAnnoProps.Add(pLabelEngine2 as IAnnotateLayerProperties);
            pGeoFeatLyr.DisplayAnnotation = true;
        }

 来自:https://www.cnblogs.com/cannel/archive/2011/03/24/1993383.html


            IAnnotateMap pAnnoMap = new MaplexAnnotateMapClass();
            m_hookHelper.FocusMap.AnnotationEngine = pAnnoMap;

使用Maplex

posted on 2018-05-20 10:56  gisai  阅读(478)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3