当前位置: 首页>>代码示例>>C#>>正文


C# ESRI.SetSymbol方法代码示例

本文整理汇总了C#中ESRI.SetSymbol方法的典型用法代码示例。如果您正苦于以下问题:C# ESRI.SetSymbol方法的具体用法?C# ESRI.SetSymbol怎么用?C# ESRI.SetSymbol使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ESRI的用法示例。


在下文中一共展示了ESRI.SetSymbol方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: FlashGeometry

        ///<summary>Flash geometry on the display. The geometry type could be polygon, polyline, point, or multipoint.</summary>
        ///
        ///<param name="geometry"> An IGeometry interface</param>
        ///<param name="color">An IRgbColor interface</param>
        ///<param name="display">An IDisplay interface</param>
        ///<param name="delay">A System.Int32 that is the time im milliseconds to wait.</param>
        /// 
        ///<remarks></remarks>
        private void FlashGeometry(ESRI.ArcGIS.Geometry.IGeometry geometry, ESRI.ArcGIS.Display.IRgbColor color, ESRI.ArcGIS.Display.IDisplay display, System.Int32 delay)
        {
            if (geometry == null || color == null || display == null)
            {
                return;
            }

            display.StartDrawing(display.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); // Explicit Cast


            switch (geometry.GeometryType)
            {
                case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon:
                    {
                        //Set the flash geometry's symbol.
                        ESRI.ArcGIS.Display.ISimpleFillSymbol simpleFillSymbol = new ESRI.ArcGIS.Display.SimpleFillSymbolClass();
                        simpleFillSymbol.Color = color;
                        ESRI.ArcGIS.Display.ISymbol symbol = simpleFillSymbol as ESRI.ArcGIS.Display.ISymbol; // Dynamic Cast
                        symbol.ROP2 = ESRI.ArcGIS.Display.esriRasterOpCode.esriROPNotXOrPen;

                        //Flash the input polygon geometry.
                        display.SetSymbol(symbol);
                        display.DrawPolygon(geometry);
                        System.Threading.Thread.Sleep(delay);
                        display.DrawPolygon(geometry);
                        break;
                    }

                case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline:
                    {
                        //Set the flash geometry's symbol.
                        ESRI.ArcGIS.Display.ISimpleLineSymbol simpleLineSymbol = new ESRI.ArcGIS.Display.SimpleLineSymbolClass();
                        simpleLineSymbol.Width = 4;
                        simpleLineSymbol.Color = color;
                        ESRI.ArcGIS.Display.ISymbol symbol = simpleLineSymbol as ESRI.ArcGIS.Display.ISymbol; // Dynamic Cast
                        symbol.ROP2 = ESRI.ArcGIS.Display.esriRasterOpCode.esriROPNotXOrPen;

                        //Flash the input polyline geometry.
                        display.SetSymbol(symbol);
                        display.DrawPolyline(geometry);
                        System.Threading.Thread.Sleep(delay);
                        display.DrawPolyline(geometry);
                        break;
                    }

                case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint:
                    {
                        //Set the flash geometry's symbol.
                        ESRI.ArcGIS.Display.ISimpleMarkerSymbol simpleMarkerSymbol = new ESRI.ArcGIS.Display.SimpleMarkerSymbolClass();
                        simpleMarkerSymbol.Style = ESRI.ArcGIS.Display.esriSimpleMarkerStyle.esriSMSDiamond;
                        simpleMarkerSymbol.Size = 12;
                        simpleMarkerSymbol.Color = color;
                        ESRI.ArcGIS.Display.ISymbol symbol = simpleMarkerSymbol as ESRI.ArcGIS.Display.ISymbol; // Dynamic Cast
                        symbol.ROP2 = ESRI.ArcGIS.Display.esriRasterOpCode.esriROPNotXOrPen;

                        //Flash the input point geometry.
                        display.SetSymbol(symbol);
                        display.DrawPoint(geometry);
                        System.Threading.Thread.Sleep(delay);
                        display.DrawPoint(geometry);
                        break;
                    }

                case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryMultipoint:
                    {
                        //Set the flash geometry's symbol.
                        ESRI.ArcGIS.Display.ISimpleMarkerSymbol simpleMarkerSymbol = new ESRI.ArcGIS.Display.SimpleMarkerSymbolClass();
                        simpleMarkerSymbol.Style = ESRI.ArcGIS.Display.esriSimpleMarkerStyle.esriSMSCircle;
                        simpleMarkerSymbol.Size = 12;
                        simpleMarkerSymbol.Color = color;
                        ESRI.ArcGIS.Display.ISymbol symbol = simpleMarkerSymbol as ESRI.ArcGIS.Display.ISymbol; // Dynamic Cast
                        symbol.ROP2 = ESRI.ArcGIS.Display.esriRasterOpCode.esriROPNotXOrPen;

                        //Flash the input multipoint geometry.
                        display.SetSymbol(symbol);
                        display.DrawMultipoint(geometry);
                        System.Threading.Thread.Sleep(delay);
                        display.DrawMultipoint(geometry);
                        break;
                    }
            }
            display.FinishDrawing();
        }
开发者ID:chinasio,项目名称:coordinate-tool-addin-dotnet,代码行数:91,代码来源:MainViewModel.cs

示例2: OnActiveViewEventsAfterDraw

        private void OnActiveViewEventsAfterDraw(ESRI.ArcGIS.Display.IDisplay display, ESRI.ArcGIS.Carto.esriViewDrawPhase phase)
        {

            ESRI.ArcGIS.Carto.esriViewDrawPhase m_phase = phase;

            //if the drawing pahse geography, find all feature layer and selected feature and draw them on screen if they are polygons. Please note don't call   display::StartDrawing as it is already started by the system.
            if (m_phase == ESRI.ArcGIS.Carto.esriViewDrawPhase.esriViewGeography)
            {
               
                IMap m_Map = m_MxDoc.FocusMap;
                ESRI.ArcGIS.esriSystem.UID m_UID = new ESRI.ArcGIS.esriSystem.UID();
                m_UID.Value = "{40A9E885-5533-11d0-98BE-00805F7CED21}";
                IEnumLayer m_EnumLayer = m_Map.Layers[m_UID];
                ILayer m_Layer = m_EnumLayer.Next();

                //if you want to change the selection color you can change it here.
                ISimpleFillSymbol m_FillSymbol = new SimpleFillSymbol();
                m_Rgb = new RgbColor();
                m_Rgb.Red = 255;
                m_FillSymbol.Color = m_Rgb;
                display.SetSymbol(m_FillSymbol as ISymbol);

                do
                {
                    if (m_Layer is IFeatureLayer)
                    {
                         if (m_Layer != null)
                         {
                        IFeatureSelection m_FeatureSelection = (IFeatureSelection)m_Layer;
                        ISelectionSet m_SelSet = m_FeatureSelection.SelectionSet;
                        IFeatureCursor m_FeatCur;
                        ICursor m_Cursor;
                        m_SelSet.Search(null, false, out m_Cursor);

                        m_FeatCur = (IFeatureCursor) m_Cursor;
                        IFeature m_Feature;

                        m_Feature = m_FeatCur.NextFeature();

                        do
                        {
                            if (m_Feature != null)
                            {
                                if (m_Feature.Shape is IPolygon)
                                {
                                    display.DrawPolygon(m_Feature.Shape);
                                }
                            }
                            m_Feature = m_FeatCur.NextFeature();
                        } while (m_Feature != null);



                    }
                    }
                   m_Layer = m_EnumLayer.Next();
                } while (m_Layer != null);


            }
        #endregion
        }
开发者ID:ApexGIS,项目名称:developer-support,代码行数:62,代码来源:ChangeSelectionColor.cs

示例3: Draw

        public void Draw(ESRI.ArcGIS.Geodatabase.IFeatureCursor cursor, ESRI.ArcGIS.esriSystem.esriDrawPhase DrawPhase, ESRI.ArcGIS.Display.IDisplay Display, ESRI.ArcGIS.esriSystem.ITrackCancel TrackCancel)
        {
            bool bContinue = true;
            IFeature pFeat = null;
            IFeatureDraw pFeatDraw = null;
            ISymbol pFeatSymbol = null;
            try
            {
                if (FeatureSelection != null)
                    this.SelectedOIDs = this.UpdateSelectedOIDs(FeatureSelection);

                pFeat = cursor.NextFeature();
                while (((pFeat != null) && bContinue == true))
                {
                    pFeatDraw = pFeat as IFeatureDraw;
                    pFeatSymbol = GetFeatureSymbol(pFeat);
                    Display.SetSymbol(pFeatSymbol);
                    pFeatDraw.Draw(DrawPhase, Display, pFeatSymbol, true, null, esriDrawStyle.esriDSNormal);
                    pFeat = cursor.NextFeature();
                    if ((TrackCancel != null))
                    {
                        bContinue = TrackCancel.Continue();
                    }
                }
            }
            catch (Exception ex)
            {
               // EngineLogger.Logger.LogException(ex);
            }
            finally
            {
                bContinue = false;
                pFeat = null;
                pFeatDraw = null;
                pFeatSymbol = null;
            }
        }
开发者ID:Ramakrishnapv,项目名称:FuturaNetwork,代码行数:37,代码来源:DisplayFlowDirections.cs

示例4: DrawCrossHair

        private static void DrawCrossHair(ESRI.ArcGIS.Geometry.IGeometry geometry, ESRI.ArcGIS.Display.IDisplay display, IEnvelope extent, ISymbol markerSymbol, ISymbol lineSymbol)
        {
            var point = geometry as IPoint;
            var numSegments = 10;

            var latitudeMid = point.Y;//envelope.YMin + ((envelope.YMax - envelope.YMin) / 2);
            var longitudeMid = point.X;
            var leftLongSegment = (point.X - extent.XMin) / numSegments;
            var rightLongSegment = (extent.XMax - point.X) / numSegments;
            var topLatSegment = (extent.YMax - point.Y) / numSegments;
            var bottomLatSegment = (point.Y - extent.YMin) / numSegments;
            var fromLeftLong = extent.XMin;
            var fromRightLong = extent.XMax;
            var fromTopLat = extent.YMax;
            var fromBottomLat = extent.YMin;
            var av = (ArcMap.Application.Document as IMxDocument).ActiveView;

            var leftPolyline = new PolylineClass();
            var rightPolyline = new PolylineClass();
            var topPolyline = new PolylineClass();
            var bottomPolyline = new PolylineClass();

            leftPolyline.SpatialReference = geometry.SpatialReference;
            rightPolyline.SpatialReference = geometry.SpatialReference;
            topPolyline.SpatialReference = geometry.SpatialReference;
            bottomPolyline.SpatialReference = geometry.SpatialReference;

            var leftPC = leftPolyline as IPointCollection;
            var rightPC = rightPolyline as IPointCollection;
            var topPC = topPolyline as IPointCollection;
            var bottomPC = bottomPolyline as IPointCollection;

            leftPC.AddPoint(new PointClass() { X = fromLeftLong, Y = latitudeMid });
            rightPC.AddPoint(new PointClass() { X = fromRightLong, Y = latitudeMid });
            topPC.AddPoint(new PointClass() { X = longitudeMid, Y = fromTopLat });
            bottomPC.AddPoint(new PointClass() { X = longitudeMid, Y = fromBottomLat });

            for (int x = 1; x <= numSegments; x++)
            {
                //Flash the input polygon geometry.
                display.SetSymbol(markerSymbol);
                display.SetSymbol(lineSymbol);

                leftPC.AddPoint(new PointClass() { X = fromLeftLong + leftLongSegment * x, Y = latitudeMid });
                rightPC.AddPoint(new PointClass() { X = fromRightLong - rightLongSegment * x, Y = latitudeMid });
                topPC.AddPoint(new PointClass() { X = longitudeMid, Y = fromTopLat - topLatSegment * x });
                bottomPC.AddPoint(new PointClass() { X = longitudeMid, Y = fromBottomLat + bottomLatSegment * x });

                // draw
                display.DrawPolyline(leftPolyline);
                display.DrawPolyline(rightPolyline);
                display.DrawPolyline(topPolyline);
                display.DrawPolyline(bottomPolyline);

                System.Threading.Thread.Sleep(15);
                display.FinishDrawing();
                av.PartialRefresh(esriViewDrawPhase.esriViewForeground, null, null);
                //av.Refresh();
                System.Windows.Forms.Application.DoEvents();
                display.StartDrawing(display.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); // Explicit Cast
            }
        }
开发者ID:Esri,项目名称:coordinate-conversion-addin-dotnet,代码行数:62,代码来源:MainViewModel.cs


注:本文中的ESRI.SetSymbol方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。