Beispiel #1
0
        public void SetRasterNoDataColor()
        {
            try
            {
                if (m_pLyr == null)
                {
                    return;
                }
                ILayer pLayer = m_pLyr;

                if (!(pLayer is IRasterLayer) && !(pLayer is IRasterCatalogLayer))
                {
                    return;
                }

                //获得当前图层的符号
                IRasterRenderer pRasterRender = null;
                if (pLayer is IRasterLayer)
                {
                    IRasterLayer pRasterLayer = pLayer as IRasterLayer;
                    pRasterRender = pRasterLayer.Renderer;
                }
                else if (pLayer is IRasterCatalogLayer)
                {
                    IRasterCatalogLayer pRasterCatalogLayer = pLayer as IRasterCatalogLayer;
                    pRasterRender = pRasterCatalogLayer.Renderer;
                }
                else
                {
                    return;
                }

                if (pRasterRender == null)
                {
                    return;
                }
                IRasterDisplayProps pRasterDisplayProps = pRasterRender as IRasterDisplayProps;
                if (pRasterDisplayProps == null)
                {
                    return;
                }

                //获得当前的颜色值 并设置
                IColor pColor = ConvertColorToIColor(this.colorNoData.SelectedColor);
                pColor.Transparency = (byte)this.sliderTransparency.Value;

                pRasterDisplayProps.NoDataColor = pColor;
            }
            catch
            {
            }
        }
Beispiel #2
0
        /// <summary>
        /// 从图层获取符号方案
        /// </summary>
        /// <param name="pLayer"></param>
        /// <returns></returns>
        private ESRI.ArcGIS.Carto.IRasterRenderer  GetRasterRenderer(ESRI.ArcGIS.Carto.ILayer pLayer)
        {
            IRasterRenderer pRasterRender = null;

            if (pLayer is IRasterLayer)
            {
                IRasterLayer pRasterLayer = pLayer as IRasterLayer;
                pRasterRender = pRasterLayer.Renderer;
            }
            else if (pLayer is IRasterCatalogLayer)
            {
                IRasterCatalogLayer pRasterCatalogLayer = pLayer as IRasterCatalogLayer;
                pRasterRender = pRasterCatalogLayer.Renderer;
            }
            return(pRasterRender);
        }
Beispiel #3
0
        private void InitRasterInfo()
        {
            if (m_pLyr == null)
            {
                return;
            }
            ILayer pLayer = m_pLyr;

            if (!(pLayer is IRasterLayer) && !(pLayer is IRasterCatalogLayer))
            {
                return;
            }

            //获得当前图层的符号
            IRasterRenderer pRasterRender = null;

            if (pLayer is IRasterLayer)
            {
                IRasterLayer pRasterLayer = pLayer as IRasterLayer;
                pRasterRender = pRasterLayer.Renderer;
            }
            else if (pLayer is IRasterCatalogLayer)
            {
                IRasterCatalogLayer pRasterCatalogLayer = pLayer as IRasterCatalogLayer;
                pRasterRender = pRasterCatalogLayer.Renderer;
            }
            else
            {
                return;
            }

            if (pRasterRender == null)
            {
                return;
            }
            IRasterDisplayProps pRasterDisplayProps = pRasterRender as IRasterDisplayProps;

            if (pRasterDisplayProps == null)
            {
                return;
            }
            IColor pColor = pRasterDisplayProps.NoDataColor;

            //设置界面
            this.colorNoData.SelectedColor = System.Drawing.ColorTranslator.FromOle(pColor.RGB);
            this.sliderTransparency.Value  = (int)pColor.Transparency;
        }
Beispiel #4
0
        /// <summary>
        /// 设置NoData的颜色值
        /// </summary>
        /// <param name="pLayer"></param>
        public static void SetRasterDefaultNoDataColor(ILayer pLayer)
        {
            if (pLayer == null)
            {
                return;
            }
            //获得当前图层的符号
            IRasterRenderer pRasterRender = null;

            if (pLayer is IRasterLayer)
            {
                IRasterLayer pRasterLayer = pLayer as IRasterLayer;
                pRasterRender = pRasterLayer.Renderer;
            }
            else if (pLayer is IRasterCatalogLayer)
            {
                IRasterCatalogLayer pRasterCatalogLayer = pLayer as IRasterCatalogLayer;
                pRasterRender = pRasterCatalogLayer.Renderer;
            }
            else
            {
                return;
            }

            if (pRasterRender == null)
            {
                return;
            }

            //设置NoData颜色值
            IColor pColor = null;

            if (pRasterRender is IRasterRGBRenderer) //默认是白色   //changed by chulili 20110825 0是透明 全部默认Nodata颜色是透明
            {
                pColor = GetColorRGB(255, 255, 255, 0);
            }
            else if (pRasterRender is IRasterUniqueValueRenderer)//默认是白色
            {
                pColor = GetColorRGB(255, 255, 255, 0);
            }
            else if (pRasterRender is IRasterStretchColorRampRenderer)//默认是透明色 0是透明
            {
                pColor = GetColorRGB(255, 255, 255, 0);
            }
            else if (pRasterRender is IRasterClassifyColorRampRenderer)//默认是白色
            {
                pColor = GetColorRGB(255, 255, 255, 0);
            }
            else
            {
                return;
            }

            //设置颜色
            IRasterDisplayProps pRasterDisplayProps = pRasterRender as IRasterDisplayProps;

            if (pRasterDisplayProps == null)
            {
                return;
            }
            pRasterDisplayProps.NoDataColor = pColor;
        }