Пример #1
0
        //分级颜色渲染
        public static ESRI.ArcGIS.Carto.IFeatureRenderer CreateBreakColorRenderer(esriSymbologyStyleClass _SymbologyStyleClass)
        {
            ESRI.ArcGIS.Carto.IClassBreaksRenderer pBreakRenderer = new ESRI.ArcGIS.Carto.ClassBreaksRendererClass();
            pBreakRenderer.Field            = "<NONE>";
            pBreakRenderer.MinimumBreak     = 0;
            pBreakRenderer.BreakCount       = 0;
            pBreakRenderer.BackgroundSymbol = null;
            ESRI.ArcGIS.Carto.IClassBreaksUIProperties pUIProp = pBreakRenderer as ESRI.ArcGIS.Carto.IClassBreaksUIProperties;
            pUIProp.ColorRamp = "";

            return(pBreakRenderer as ESRI.ArcGIS.Carto.IFeatureRenderer);
        }
Пример #2
0
        public static ESRI.ArcGIS.Carto.IFeatureRenderer LoadRendererFromByte(byte[] _RendererValue, string _RendererType)
        {
            if (_RendererValue == null || _RendererValue.Length == 0)
            {
                return(null);
            }
            try
            {
                enumRendererType pRendererType = (enumRendererType)Enum.Parse(typeof(enumRendererType), _RendererType);
                ESRI.ArcGIS.Carto.IFeatureRenderer pRenderer = null;
                switch (pRendererType)
                {
                case enumRendererType.SimpleRenderer:
                    pRenderer = new ESRI.ArcGIS.Carto.SimpleRendererClass();
                    break;

                case enumRendererType.UniqueValueRenderer:
                    pRenderer = new ESRI.ArcGIS.Carto.UniqueValueRendererClass();
                    break;

                case enumRendererType.BreakColorRenderer:
                    pRenderer = new ESRI.ArcGIS.Carto.ClassBreaksRendererClass();
                    break;

                case enumRendererType.BreakSizeRenderer:
                    pRenderer = new ESRI.ArcGIS.Carto.ClassBreaksRendererClass();
                    break;
                }

                if (pRenderer == null)
                {
                    return(null);
                }

                IMemoryBlobStreamVariant pMemoryBlobStreamVariant = new MemoryBlobStreamClass();
                pMemoryBlobStreamVariant.ImportFromVariant((object)_RendererValue);
                IStream        pStream        = pMemoryBlobStreamVariant as IStream;
                IPersistStream pPersistStream = pRenderer as IPersistStream;
                pPersistStream.Load(pStream);
                pRenderer = pPersistStream as ESRI.ArcGIS.Carto.IFeatureRenderer;
                return(pRenderer);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Пример #3
0
        //分级大小渲染
        public static ESRI.ArcGIS.Carto.IFeatureRenderer CreateBreakSizeRenderer(esriSymbologyStyleClass _SymbologyStyleClass)
        {
            ESRI.ArcGIS.Carto.IClassBreaksRenderer pBreakRenderer = new ESRI.ArcGIS.Carto.ClassBreaksRendererClass();
            pBreakRenderer.Field        = "<NONE>";
            pBreakRenderer.MinimumBreak = 0;
            pBreakRenderer.BreakCount   = 0;
            if (_SymbologyStyleClass == esriSymbologyStyleClass.esriStyleClassFillSymbols)
            {
                pBreakRenderer.BackgroundSymbol = ModuleCommon.CreateSymbol(esriSymbologyStyleClass.esriStyleClassMarkerSymbols) as IFillSymbol;
            }
            else
            {
                pBreakRenderer.BackgroundSymbol = null;
            }

            return(pBreakRenderer as ESRI.ArcGIS.Carto.IFeatureRenderer);
        }