zoukankan      html  css  js  c++  java
  • ArcEngine 图层标注 (根据字段、角度)

    转自chanyinhelv原文 ArcEngine 图层标注 (根据字段、角度)

    今天做了一个用AE来控制图层是否显示标注,以及已哪一个字段作为标注的字段,以哪一个字段作为标注的角度,现将代码写下来,以备以后差用。

    public void EnableFeatureLayerLabel(IFeatureLayer pFeaturelayer, string sLableField, IRgbColor pRGB, int size, string angleField)  
    {  
        //判断图层是否为空  
        if (pFeaturelayer == null)  
            return;  
        IGeoFeatureLayer pGeoFeaturelayer = (IGeoFeatureLayer)pFeaturelayer;  
        IAnnotateLayerPropertiesCollection pAnnoLayerPropsCollection;  
        pAnnoLayerPropsCollection = pGeoFeaturelayer.AnnotationProperties;  
        pAnnoLayerPropsCollection.Clear();  
      
        //stdole.IFontDisp  pFont; //字体  
        ITextSymbol pTextSymbol;  
      
        //pFont.Name = "新宋体";  
        //pFont.Size = 9;  
        //未指定字体颜色则默认为黑色  
        if (pRGB == null)  
        {  
            pRGB = new RgbColorClass();  
            pRGB.Red = 0;  
            pRGB.Green = 0;  
            pRGB.Blue = 0;  
        }  
      
        pTextSymbol = new TextSymbolClass();  
        pTextSymbol.Color = (IColor)pRGB;  
        pTextSymbol.Size = size; //标注大小  
      
        IBasicOverposterLayerProperties4 pBasicOverposterlayerProps4 = new BasicOverposterLayerPropertiesClass();  
        switch (pFeaturelayer.FeatureClass.ShapeType)//判断图层类型  
        {  
            case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon:  
                pBasicOverposterlayerProps4.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon;  
                break;  
            case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint:  
                pBasicOverposterlayerProps4.FeatureType = esriBasicOverposterFeatureType.esriOverposterPoint;  
                break;  
            case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline:  
                pBasicOverposterlayerProps4.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolyline;  
                break;  
        }   
        pBasicOverposterlayerProps4.PointPlacementMethod = esriOverposterPointPlacementMethod.esriRotationField;  
        pBasicOverposterlayerProps4.RotationField = angleField;  
      
        ILabelEngineLayerProperties pLabelEnginelayerProps = new LabelEngineLayerPropertiesClass();   
        pLabelEnginelayerProps.Expression = "[" + sLableField + "]";  
        pLabelEnginelayerProps.Symbol = pTextSymbol;  
        pLabelEnginelayerProps.BasicOverposterLayerProperties = pBasicOverposterlayerProps4 as IBasicOverposterLayerProperties;  
        pAnnoLayerPropsCollection.Add((IAnnotateLayerProperties)pLabelEnginelayerProps);  
        pGeoFeaturelayer.DisplayAnnotation = true;//很重要,必须设置   
        //axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, null); }  
    }  
  • 相关阅读:
    iOS 与 惯性滚动
    前端性能优化--为什么DOM操作慢?
    React虚拟DOM浅析
    DOM性能瓶颈与Javascript性能优化
    React 组件性能优化
    重绘与回流——影响浏览器加载速度
    移动前端开发之viewport的深入理解
    [转] 前后端分离开发模式的 mock 平台预研
    [Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘终结篇:UniLua热更新全然解读
    关联规则( Association Rules)之频繁模式树(FP-Tree)
  • 原文地址:https://www.cnblogs.com/arxive/p/6262450.html
Copyright © 2011-2022 走看看