示例#1
0
        /// <summary>
        /// Gets the GPS photo symbol.
        /// </summary>
        /// <returns>ISymbol for GPS Locations</returns>
        private ISymbol GetGPSPhotoSymbol()
        {
            IMultiLayerMarkerSymbol multiLayerMarkerSymbol = new MultiLayerMarkerSymbolClass();

            ICharacterMarkerSymbol viewshedSymbol = this.GetGPSPhotoViewshedSymbol();

            multiLayerMarkerSymbol.AddLayer(viewshedSymbol);

            ICharacterMarkerSymbol charSymbol = new CharacterMarkerSymbol();

            // IFontDisp fontDisp = (IFontDisp)(new StdFont());
            IRgbColor rgbColor = new RgbColor();

            // Define the color we want to use
            rgbColor.Red   = 255;
            rgbColor.Green = 0;
            rgbColor.Blue  = 0;

            // Define the Font we want to use
            charSymbol.Font = ESRI.ArcGIS.Utility.Converter.ToStdFont(new System.Drawing.Font("ESRI Default Marker", 30f));

            // Set the CharacterMarkerSymbols Properties
            charSymbol.Size           = 8;
            charSymbol.Angle          = 0;
            charSymbol.CharacterIndex = 34;
            charSymbol.Color          = rgbColor;
            charSymbol.XOffset        = 0;
            charSymbol.YOffset        = 0;

            multiLayerMarkerSymbol.AddLayer(charSymbol);

            return((ISymbol)multiLayerMarkerSymbol);
        }
示例#2
0
        private void btn2D_Click(object sender, EventArgs e)
        {
            try
            {
                IGraphicsContainer pGraphicsContainer = pPageLayoutControl.ActiveView.GraphicsContainer as IGraphicsContainer;
                IMarkerElement     pMarkerElement     = new MarkerElementClass();

                //////正北方向
                //IPictureMarkerSymbol pPMarkerNorth = new PictureMarkerSymbolClass();
                //string MarkerNorthPath = ClsGDBDataCommon.GetParentPathofExe() + @"Resource\BMP\NorthArrow.emf";
                //pPMarkerNorth.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureEMF, MarkerNorthPath);
                //pPMarkerNorth.Angle = 0;
                //pPMarkerNorth.Size = 100;

                ////太阳方向
                IPictureMarkerSymbol pPMarkerSun = new PictureMarkerSymbolClass();
                string MarkerSunPath             = ClsGDBDataCommon.GetParentPathofExe() + @"Resource\BMP\SunArrow.emf";
                pPMarkerSun.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureEMF, MarkerSunPath);
                pPMarkerSun.Angle = (-1) * SunAzimuth.Value;
                pPMarkerSun.Size  = 100;

                ////地球方向
                IPictureMarkerSymbol pPMarkerEarth = new PictureMarkerSymbolClass();
                string MarkerEarthPath             = ClsGDBDataCommon.GetParentPathofExe() + @"Resource\BMP\EarthArrow.emf";
                pPMarkerEarth.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureEMF, MarkerEarthPath);
                pPMarkerEarth.Angle = (-1) * EarAzimuth.Value;
                pPMarkerEarth.Size  = 100;


                IMultiLayerMarkerSymbol pMultiLayerMarkerSymbol = new MultiLayerMarkerSymbolClass();
                //pMultiLayerMarkerSymbol.AddLayer(pPMarkerNorth);
                pMultiLayerMarkerSymbol.AddLayer(pPMarkerSun);
                pMultiLayerMarkerSymbol.AddLayer(pPMarkerEarth);

                pMarkerElement.Symbol = pMultiLayerMarkerSymbol;
                IElement    pElement    = pMarkerElement as IElement;
                IActiveView pActiveView = pPageLayoutControl.ActiveView;
                IPageLayout pPageLayout = (IPageLayout)pActiveView;
                IPage       pPage       = pPageLayout.Page;
                double      pWidth      = pPage.PrintableBounds.XMin + 3;
                double      pHeigth     = pPage.PrintableBounds.YMax - 5;
                IPoint      pPoint      = new PointClass();
                pPoint.PutCoords(pWidth, pHeigth);
                pElement.Geometry = (IGeometry)pPoint;
                pGraphicsContainer.AddElement(pElement, 0);

                pPageLayoutControl.ActiveView.Refresh();
            }
            catch
            {
                MessageBox.Show(e.ToString());
            }

            this.Close();
        }
示例#3
0
        //MultiLayerMarkerSymbol
        private void button5_Click(object sender, EventArgs e)
        {
            IMultiLayerMarkerSymbol multiLayerMarkerSymbol = new MultiLayerMarkerSymbolClass();
            IPictureMarkerSymbol    pictureMarkerSymbol    = new PictureMarkerSymbolClass();
            ICharacterMarkerSymbol  characterMarkerSymbol  = new CharacterMarkerSymbol();

            stdole.IFontDisp fontDisp = (stdole.IFontDisp)(new stdole.StdFontClass());
            IRgbColor        rgbColor = new RgbColor();

            rgbColor        = getRGB(0, 0, 0);
            fontDisp.Name   = "arial";
            fontDisp.Size   = 12;
            fontDisp.Italic = true;
            //创建字符符号
            characterMarkerSymbol.Angle          = 0;
            characterMarkerSymbol.CharacterIndex = 97;
            characterMarkerSymbol.Color          = rgbColor;
            characterMarkerSymbol.Font           = fontDisp;
            characterMarkerSymbol.Size           = 24;
            characterMarkerSymbol.XOffset        = 0;
            characterMarkerSymbol.YOffset        = 0;
            //创建图片符号
            //string fileName = @"E:\vs2005\第五章\lesson2\lesson2\data\qq.bmp";
            string path     = Directory.GetCurrentDirectory();
            string fileName = path + @"\qq.bmp";

            pictureMarkerSymbol.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureBitmap, fileName);
            pictureMarkerSymbol.Angle = 0;
            pictureMarkerSymbol.BitmapTransparencyColor = rgbColor;
            pictureMarkerSymbol.Size    = 30;
            pictureMarkerSymbol.XOffset = 0;
            pictureMarkerSymbol.YOffset = 0;
            //添加图片、字符符号到组合符号中
            multiLayerMarkerSymbol.AddLayer(pictureMarkerSymbol);
            multiLayerMarkerSymbol.AddLayer(characterMarkerSymbol);
            multiLayerMarkerSymbol.Angle   = 0;
            multiLayerMarkerSymbol.Size    = 30;
            multiLayerMarkerSymbol.XOffset = 0;
            multiLayerMarkerSymbol.YOffset = 0;

            IPoint point1 = new PointClass();
            IPoint point2 = new PointClass();

            point1.PutCoords(5, 5);
            point2.PutCoords(5, 10);
            this.axMapControl1.FlashShape(point1 as IGeometry, 3, 200, multiLayerMarkerSymbol);
            this.axMapControl1.FlashShape(point2 as IGeometry);
        }
示例#4
0
文件: mainForm.cs 项目: hehao1999/GIS
 //组合点符号化
 private void MultiLayerMarkerSymbolToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         //获得点图层,要求当前地图文档第一个图层为点图层
         IFeatureLayer layer;
         layer = mainMapControl.get_Layer(0) as IFeatureLayer;
         //QI到IGeoFeatureLayer
         IGeoFeatureLayer geoFeatureLayer = layer as IGeoFeatureLayer;
         SimpleRenderer   simpleRender    = new SimpleRendererClass();
         //创建第一组成成分点符号的颜色
         IColor pColor = new RgbColorClass();
         pColor.RGB = 2256;
         //创建第二组成成分点符号的颜色
         IColor pColor1 = new RgbColorClass();
         pColor1.RGB = 0;
         //创建简单点符号
         ISimpleMarkerSymbol pMarkerSymbol = new SimpleMarkerSymbolClass();
         pMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSCross;
         pMarkerSymbol.Color = pColor;
         pMarkerSymbol.Angle = 60;
         //创建箭头点符号
         IArrowMarkerSymbol pArrowMarkerSymbol = new ArrowMarkerSymbolClass();
         pArrowMarkerSymbol.Length = 5;
         pArrowMarkerSymbol.Width  = 10;
         pArrowMarkerSymbol.Color  = pColor1;
         //创建以上两种符号的组合符号
         IMultiLayerMarkerSymbol pMultiLayerMarkerSymbol = new MultiLayerMarkerSymbolClass();
         pMultiLayerMarkerSymbol.AddLayer(pArrowMarkerSymbol);
         pMultiLayerMarkerSymbol.AddLayer(pMarkerSymbol);
         simpleRender.Symbol      = pMultiLayerMarkerSymbol as ISymbol;
         geoFeatureLayer.Renderer = simpleRender as IFeatureRenderer;
         mainMapControl.Refresh();
         axTOCControl1.Update();
     }
     catch
     {
         MessageBox.Show("没有可以实例化的图层");
     }
 }
示例#5
0
文件: Form1.cs 项目: Flame-c/CYHGIS
        private void GroupPointToolStripMenuItem_Click(object sender, EventArgs e)
        {
            IFeatureLayer layer;

            layer = axMapControl1.get_Layer(0) as IFeatureLayer;          //QI到IGeoFeatureLayer
            IGeoFeatureLayer geoFeatureLayer = layer as IGeoFeatureLayer; //新建SimpleRendererClass对象
            SimpleRenderer   simpleRender    = new SimpleRendererClass();
            //创建第一组成成分点符号的颜色
            IColor pColor = new RgbColorClass();

            pColor.RGB = 2256;
            //创建第二组成成分点符号的颜色
            IColor pColor1 = new RgbColorClass();

            pColor1.RGB = 0;
            //创建简单点符号
            ISimpleMarkerSymbol pMarkerSymbol = new SimpleMarkerSymbolClass();

            pMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSCross;
            pMarkerSymbol.Color = pColor;
            pMarkerSymbol.Angle = 60;
            //创建箭头点符号
            IArrowMarkerSymbol pArrowMarkerSymbol = new ArrowMarkerSymbolClass();

            pArrowMarkerSymbol.Length = 5;
            pArrowMarkerSymbol.Width  = 10;
            pArrowMarkerSymbol.Color  = pColor1;
            //创建以上两种符号的组合符号
            IMultiLayerMarkerSymbol pMultiLayerMarkerSymbol = new  MultiLayerMarkerSymbolClass();

            pMultiLayerMarkerSymbol.AddLayer(pArrowMarkerSymbol);
            pMultiLayerMarkerSymbol.AddLayer(pMarkerSymbol);
            simpleRender.Symbol      = pMultiLayerMarkerSymbol as ISymbol;
            geoFeatureLayer.Renderer = simpleRender as IFeatureRenderer;
            axMapControl1.Refresh();
            axTOCControl1.Update();
        }
示例#6
0
        private void btn3D_Click(object sender, EventArgs e)
        {
            try
            {
                IGraphicsContainer3D graphicsContainer3D = pSceneControl.Scene.ActiveGraphicsLayer as IGraphicsContainer3D;
                graphicsContainer3D.DeleteAllElements();
                pSceneControl.Scene.SceneGraph.RefreshViewers();
                //屏幕大小
                double PageX    = pSceneControl.SceneGraph.Extent.Envelope.XMax;
                double PageY    = pSceneControl.SceneGraph.Extent.Envelope.YMax;
                double PageZ    = pSceneControl.SceneGraph.Extent.Envelope.ZMax;
                double PageXmin = pSceneControl.SceneGraph.Extent.Envelope.XMin;

                double pMarkerSize = (PageX - PageXmin) / 10;

                IMarkerElement pMarkerElement = new MarkerElementClass();
                //正北方向
                IMarker3DSymbol pMarker3DSymbolNorth = new Marker3DSymbolClass();
                string          NorthPath            = ClsGDBDataCommon.GetParentPathofExe() + @"Resource\BMP\NorthArrow.3DS";
                pMarker3DSymbolNorth.CreateFromFile(NorthPath);
                IMarker3DPlacement pMarker3DPlacement = pMarker3DSymbolNorth as IMarker3DPlacement;

                pMarker3DPlacement.Size = pMarkerSize;
                pMarker3DPlacement.SetRotationAngles(-90, 0, 0);

                //IRgbColor pRgbColorNorth = new RgbColorClass();
                //pRgbColorNorth.Red = Color.Black.R;
                //pRgbColorNorth.Green = Color.Black.G;
                //pRgbColorNorth.Blue = Color.Black.B;
                pMarker3DPlacement.Color = ClsGDBDataCommon.ColorToIColor(Color.Black);

                //太阳方向
                IMarker3DSymbol pMarker3DSymbolSun = new Marker3DSymbolClass();
                string          SunPath            = ClsGDBDataCommon.GetParentPathofExe() + @"Resource\BMP\SunArrow.3DS";
                pMarker3DSymbolSun.CreateFromFile(SunPath);
                IMarker3DPlacement pMarker3DPlacement1 = pMarker3DSymbolSun as IMarker3DPlacement;
                pMarker3DPlacement1.Size = pMarkerSize;
                double SunAngleX = SunIncli.Value - 90;
                double SunAngleY = 0;
                double SunAngleZ = 0 - SunAzimuth.Value;
                pMarker3DPlacement1.SetRotationAngles(SunAngleX, SunAngleY, SunAngleZ);

                //IRgbColor pRgbColorSun = new RgbColorClass();
                //pRgbColorSun.Red = Color.Red.R;
                //pRgbColorSun.Green = Color.Red.G;
                //pRgbColorSun.Blue = Color.Red.B;
                pMarker3DPlacement1.Color = ClsGDBDataCommon.ColorToIColor(Color.Red);

                //地球方向
                IMarker3DSymbol pMarker3DSymbolEarth = new Marker3DSymbolClass();
                string          EarthPath            = ClsGDBDataCommon.GetParentPathofExe() + @"Resource\BMP\EarthArrow.3DS";
                pMarker3DSymbolEarth.CreateFromFile(EarthPath);
                IMarker3DPlacement pMarker3DPlacement2 = pMarker3DSymbolEarth as IMarker3DPlacement;
                pMarker3DPlacement2.Size = pMarkerSize;

                double EarthAngleX = EarIncli.Value - 90;
                double EarthAngleY = 0;
                double EarthAngleZ = 0 - EarAzimuth.Value;
                pMarker3DPlacement2.SetRotationAngles(EarthAngleX, EarthAngleY, EarthAngleZ);

                //IRgbColor pRgbColorEarth = new RgbColorClass();
                //pRgbColorEarth.Red = Color.BlueViolet.R;
                //pRgbColorEarth.Green = Color.BlueViolet.G;
                //pRgbColorEarth.Blue = Color.BlueViolet.B;
                pMarker3DPlacement2.Color = ClsGDBDataCommon.ColorToIColor(Color.BlueViolet);

                //合并成一个整体
                IMultiLayerMarkerSymbol pMultiLayerMarkerSymbol = new MultiLayerMarkerSymbolClass();
                pMultiLayerMarkerSymbol.AddLayer(pMarker3DSymbolNorth as IMarkerSymbol);
                pMultiLayerMarkerSymbol.AddLayer(pMarker3DSymbolSun as IMarkerSymbol);
                pMultiLayerMarkerSymbol.AddLayer(pMarker3DSymbolEarth as IMarkerSymbol);

                pMarkerElement.Symbol = pMultiLayerMarkerSymbol;
                IElement pElement = pMarkerElement as IElement;

                //确定添加位置
                IPoint pPoint = new PointClass();
                pPoint.X = PageX;
                pPoint.Y = PageY;
                pPoint.Z = PageZ + PageZ / 10;

                IZAware zAware = pPoint as IZAware;
                zAware.ZAware = true;
                IGeometry pointGeometry = pPoint as IGeometry;
                pointGeometry.SpatialReference = pSceneControl.Scene.SpatialReference;
                pElement.Geometry = pointGeometry;

                graphicsContainer3D.AddElement(pElement);
                pSceneControl.Scene.SceneGraph.RefreshViewers();
            }
            catch
            {
                MessageBox.Show(e.ToString());
            }

            this.Close();
        }
        private void UpdateMapControlWithMarker(IMapControl4 updateMapControl, string action)
        {
            IRgbColor redRgbColor = new RgbColorClass();
            redRgbColor.Red = 255;
            redRgbColor.Green = 0;
            redRgbColor.Blue = 0;

            IRgbColor yellowRgbColor = new RgbColorClass();
            yellowRgbColor.Red = 255;
            yellowRgbColor.Green = 255;
            yellowRgbColor.Blue = 115;

            IRgbColor blackRgbcolor = new RgbColorClass();
            blackRgbcolor.Red = 0;
            blackRgbcolor.Green = 0;
            blackRgbcolor.Blue = 0;

            IRgbColor greenRgbColor = new RgbColorClass();
            greenRgbColor.Red = 0;
            greenRgbColor.Green = 255;
            greenRgbColor.Blue = 0;

            IEnvelope extentEnvelope = updateMapControl.Extent;
            IGraphicsContainer graphicsContainer = updateMapControl.Map.BasicGraphicsLayer as IGraphicsContainer;

            if (action == "DeleteMarker")
            {
                DeleteElement(updateMapControl, action);
            }
            else if (action == "AcceptMarker")
            {
                DeleteElement(updateMapControl, action);
            }

            IMultiLayerMarkerSymbol multiLayerMarkerSymbol = new MultiLayerMarkerSymbolClass();

            stdole.IFontDisp esriDefaultMarkerFont = new stdole.StdFontClass() as stdole.IFontDisp;
            esriDefaultMarkerFont.Name = "ESRI Default Marker";
            esriDefaultMarkerFont.Size = Convert.ToDecimal(48);

            IPoint markerLocation = new PointClass();
            markerLocation.SpatialReference = updateMapControl.SpatialReference;

            markerLocation.X = extentEnvelope.LowerLeft.X + extentEnvelope.Width / 10;
            markerLocation.Y = extentEnvelope.LowerLeft.Y + extentEnvelope.Height / (10 * (extentEnvelope.Height / extentEnvelope.Width));

            IMarkerElement markerElement = new MarkerElementClass();
            ((IElement)markerElement).Geometry = markerLocation;

            ISimpleMarkerSymbol backgroundMarkerSymbol = new SimpleMarkerSymbolClass();
            backgroundMarkerSymbol.Color = (IColor)yellowRgbColor;
            backgroundMarkerSymbol.Size = 45;
            backgroundMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSSquare;
            backgroundMarkerSymbol.Outline = true;
            backgroundMarkerSymbol.OutlineColor = blackRgbcolor;
            backgroundMarkerSymbol.OutlineSize = 2;

            multiLayerMarkerSymbol.AddLayer((IMarkerSymbol)backgroundMarkerSymbol);

            if (action == "DeleteMarker")
            {
                ICharacterMarkerSymbol deleteMarkerSymbol = new CharacterMarkerSymbolClass();
                deleteMarkerSymbol.Font = esriDefaultMarkerFont;
                deleteMarkerSymbol.CharacterIndex = 68;
                deleteMarkerSymbol.Color = redRgbColor;
                deleteMarkerSymbol.Size = 48;

                multiLayerMarkerSymbol.AddLayer(deleteMarkerSymbol);

                ((IElementProperties)markerElement).Name = "DeleteMarker";

            }
            else if (action == "AcceptMarker")
            {
                ICharacterMarkerSymbol acceptMarkerSymbol = new CharacterMarkerSymbolClass();

                acceptMarkerSymbol.Font = esriDefaultMarkerFont;
                acceptMarkerSymbol.CharacterIndex = 105;
                acceptMarkerSymbol.Color = greenRgbColor;
                acceptMarkerSymbol.Size = 48;

                multiLayerMarkerSymbol.AddLayer(acceptMarkerSymbol);

                ((IElementProperties)markerElement).Name = "AcceptMarker";
            }

            markerElement.Symbol = (IMarkerSymbol)multiLayerMarkerSymbol;

            graphicsContainer.AddElement((IElement)markerElement, 99);

            updateMapControl.Refresh(esriViewDrawPhase.esriViewGraphics, null, null);
        }
        /// <summary>
        /// this method will create the multi layer marker symbol with the generic marker symbol and modifier marker symbols form the Symbol ID Code
        /// </summary>
        /// <param name="sic"></param>
        /// <returns></returns>
        public IMarkerSymbol GetMarkerSymbolFromSIC(string sic)
        {
            if (string.IsNullOrEmpty(sic) || !IsValidSic(sic))
            {
                LogError(String.Format("Invalid SIC passed to GetMarkerSymbolFromSIC: " + sic));
                return null;
            }

            string symbolId = sic.ToUpper();

            // addCentralIconId
            IMarkerSymbol result = null;
            IMarkerSymbol ms = GetGenericMarkerSymbolFromSIC(symbolId);

            if (ms == null)
            {
                LogError(String.Format("Generic MarkerSymbol returned null when looking for sic : {0}", symbolId));
                return null;
            }

            // workaround for the Marker symbol problem where the symbol size randomly loads at size 8 instead of 25
            if (ms.Size < 25)
            {
                ms.Size = 25;
            }

            char codingScheme = symbolId[0];

            // Done if Tactical Graphic
            if ((codingScheme == 'G') || (codingScheme == 'W'))
                return ms;

            IMultiLayerMarkerSymbol mlms = new MultiLayerMarkerSymbolClass();
            mlms.ClearLayers();

            // workaround for the Marker symbol problem where the symbol size randomly loads at size 8 instead of 25
            if (mlms.Size != 25)
            {
                mlms.Size = 25;
            }

            // add base symbol
            if (!AddSymbolToMultiLayerSymbol(mlms, ms))
            {
                LogError(String.Format("Error when adding generic SIC marker symbol to the main multilayer marker symbol, {0}", symbolId));
            }

            addDamaged(symbolId, mlms);
            addFrameModifier(symbolId, mlms);
            addEchelon(symbolId, mlms);
            addFeintDummy(symbolId, mlms);
            addTaskForce(symbolId, mlms);
            addHeadQuarters(symbolId, mlms);
            addMobility(symbolId, mlms);
            addInstallation(symbolId, mlms);

            // Lastly add dashed frame:
            addDashedFrame(symbolId, mlms);

            // TODO: if needed
            IMapLevel mapLevel = mlms as IMapLevel;
            IMapLevel levelma = ms as IMapLevel;

            result = mlms as IMarkerSymbol;

            return result;
        }
示例#9
0
        private void frmSymbolProperty_Load(object sender, EventArgs e)
        {
            if (this.m_pStyleGalleryItem != null)
            {
                this.txtName.Text       = this.m_pStyleGalleryItem.Name;
                this.txtCategory.Text   = this.m_pStyleGalleryItem.Category;
                this.symbolItem1.Symbol = this.m_pStyleGalleryItem.Item;
                if (this.symbolItem1.Symbol is IMarkerSymbol)
                {
                    this.m_SymbolType = enumSymbolType.enumSTPoint;
                }
                else if (this.symbolItem1.Symbol is ILineSymbol)
                {
                    this.m_SymbolType = enumSymbolType.enumSTLine;
                }
                else if (this.symbolItem1.Symbol is IFillSymbol)
                {
                    this.m_SymbolType = enumSymbolType.enumSTFill;
                }
                else if (this.symbolItem1.Symbol is ITextSymbol)
                {
                    this.m_SymbolType = enumSymbolType.enumSTText;
                }
                else if (this.symbolItem1.Symbol is IColorRamp)
                {
                    this.m_SymbolType = enumSymbolType.enumSTColorRamp;
                }
                else if (this.symbolItem1.Symbol is IColor)
                {
                    this.m_SymbolType = enumSymbolType.enumSTColor;
                }
                else if (this.symbolItem1.Symbol is ISymbolBorder)
                {
                    this.m_SymbolType = enumSymbolType.enumSTBorder;
                }
                else if (this.symbolItem1.Symbol is ISymbolBackground)
                {
                    this.m_SymbolType = enumSymbolType.enumSTBackground;
                }
                else if (this.symbolItem1.Symbol is ISymbolShadow)
                {
                    this.m_SymbolType = enumSymbolType.enumSTShadow;
                }
                else if (this.symbolItem1.Symbol is IMarkerNorthArrow)
                {
                    this.m_SymbolType = enumSymbolType.enumSTNorthArrow;
                }
                else if (this.symbolItem1.Symbol is IScaleBar)
                {
                    this.m_SymbolType = enumSymbolType.enumSTScaleBar;
                }
                else if (this.symbolItem1.Symbol is IScaleText)
                {
                    this.m_SymbolType = enumSymbolType.enumSTScaleText;
                }
                else if (this.symbolItem1.Symbol is ILegendItem)
                {
                    this.m_SymbolType = enumSymbolType.enumSTLegendItem;
                }
                else
                {
                    this.m_SymbolType = enumSymbolType.enumSTUnknown;
                }
            }
            else
            {
                this.m_pStyleGalleryItem = new ServerStyleGalleryItemClass();
                object obj2 = null;
                switch (this.m_SymbolType)
                {
                case enumSymbolType.enumSTPoint:
                    this.txtName.Text = "点符号";
                    obj2 = new MultiLayerMarkerSymbolClass();
                    ((IMultiLayerMarkerSymbol)obj2).AddLayer(new SimpleMarkerSymbolClass());
                    break;

                case enumSymbolType.enumSTLine:
                    this.txtName.Text = "线符号";
                    obj2 = new MultiLayerLineSymbolClass();
                    ((IMultiLayerLineSymbol)obj2).AddLayer(new SimpleLineSymbolClass());
                    break;

                case enumSymbolType.enumSTFill:
                    this.txtName.Text = "面符号";
                    obj2 = new MultiLayerFillSymbolClass();
                    ((IMultiLayerFillSymbol)obj2).AddLayer(new SimpleFillSymbolClass());
                    break;

                case enumSymbolType.enumSTText:
                case enumSymbolType.enumSTColorRamp:
                case enumSymbolType.enumSTColor:
                case enumSymbolType.enumSTLinePatch:
                case enumSymbolType.enumSTAreaPatch:
                    return;

                case enumSymbolType.enumSTNorthArrow:
                    this.txtName.Text = "指北针";
                    obj2 = new MarkerNorthArrowClass();
                    break;

                case enumSymbolType.enumSTScaleBar:
                    this.txtName.Text = "比例尺";
                    obj2 = new ScaleLineClass();
                    break;

                case enumSymbolType.enumSTScaleText:
                    this.txtName.Text = "比例尺文本";
                    obj2 = new ScaleTextClass();
                    break;

                case enumSymbolType.enumSTBorder:
                    this.txtName.Text = "边界";
                    obj2 = new SymbolBorderClass();
                    break;

                case enumSymbolType.enumSTShadow:
                    this.txtName.Text = "阴影";
                    obj2 = new SymbolShadowClass();
                    break;

                case enumSymbolType.enumSTBackground:
                    this.txtName.Text = "背景";
                    obj2 = new SymbolBackgroundClass();
                    break;

                case enumSymbolType.enumSTLegendItem:
                    this.txtName.Text = "图例项";
                    obj2 = new HorizontalLegendItemClass();
                    break;

                case enumSymbolType.enumSTLabel:
                    this.txtName.Text = "标注";
                    obj2 = new LabelStyleClass();
                    break;

                default:
                    return;
                }
                this.symbolItem1.Symbol           = obj2;
                this.m_pStyleGalleryItem.Name     = this.txtName.Text;
                this.m_pStyleGalleryItem.Category = this.txtCategory.Text;
                this.m_pStyleGalleryItem.Item     = obj2;
            }
        }