//绘制单个点操作 public void DrawPoint(IActiveView activeView, IPoint p, bool red) { if (activeView == null) { return; } ESRI.ArcGIS.Display.IScreenDisplay screenDisplay = activeView.ScreenDisplay; screenDisplay.StartDrawing(screenDisplay.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); ESRI.ArcGIS.Display.ISimpleMarkerSymbol simpleMarkerSymbol = new ESRI.ArcGIS.Display.SimpleMarkerSymbolClass(); simpleMarkerSymbol.Style = ESRI.ArcGIS.Display.esriSimpleMarkerStyle.esriSMSCross; simpleMarkerSymbol.Size = 15; if (red) { simpleMarkerSymbol.Color = redColor; } else { simpleMarkerSymbol.Color = greenColor; } ESRI.ArcGIS.Display.ISymbol symbol = simpleMarkerSymbol as ESRI.ArcGIS.Display.ISymbol; // Dynamic cast. screenDisplay.SetSymbol(symbol); ESRI.ArcGIS.Display.IDisplayTransformation displayTransformation = screenDisplay.DisplayTransformation; screenDisplay.DrawPoint(p); screenDisplay.FinishDrawing(); }
public IGeometry DrawPolyline(ESRI.ArcGIS.Carto.IActiveView activeView) { if (activeView == null) { return(null); } ESRI.ArcGIS.Display.IScreenDisplay screenDisplay = activeView.ScreenDisplay; // Constant screenDisplay.StartDrawing(screenDisplay.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); // Explicit Cast ESRI.ArcGIS.Display.IRgbColor rgbColor = new ESRI.ArcGIS.Display.RgbColor(); rgbColor.Red = 255; ESRI.ArcGIS.Display.IColor color = rgbColor; // Implicit Cast ESRI.ArcGIS.Display.ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbol(); simpleLineSymbol.Color = color; simpleLineSymbol.Style = esriSimpleLineStyle.esriSLSDashDot; ESRI.ArcGIS.Display.ISymbol symbol = (ESRI.ArcGIS.Display.ISymbol)simpleLineSymbol; // Explicit Cast ESRI.ArcGIS.Display.IRubberBand rubberBand = new RubberLine(); ESRI.ArcGIS.Geometry.IGeometry geometry = rubberBand.TrackNew(screenDisplay, symbol); screenDisplay.SetSymbol(symbol); screenDisplay.DrawPolyline(geometry); screenDisplay.FinishDrawing(); return(geometry); }
public ESRI.ArcGIS.Geometry.IEnvelope DrawRectangle(ESRI.ArcGIS.Carto.IActiveView activeView) { if (activeView == null) { return(null); } else { ESRI.ArcGIS.Display.IScreenDisplay screenDisplay = activeView.ScreenDisplay; // Constant screenDisplay.StartDrawing(screenDisplay.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); // Explicit Cast //ESRI.ArcGIS.Display.IRgbColor rgbColor = new ESRI.ArcGIS.Display.RgbColorClass(); //rgbColor.Red = 255; //ESRI.ArcGIS.Display.IColor color = rgbColor; // Implicit Cast ESRI.ArcGIS.Display.ISimpleFillSymbol simpleFillSymbol = new ESRI.ArcGIS.Display.SimpleFillSymbolClass(); //simpleFillSymbol.Color = color; simpleFillSymbol.Style = esriSimpleFillStyle.esriSFSHollow; ESRI.ArcGIS.Display.ISymbol symbol = simpleFillSymbol as ESRI.ArcGIS.Display.ISymbol; // Dynamic Cast ESRI.ArcGIS.Display.IRubberBand rubberBand = new ESRI.ArcGIS.Display.RubberEnvelopeClass(); ESRI.ArcGIS.Geometry.IGeometry geometry = rubberBand.TrackNew(screenDisplay, symbol); screenDisplay.SetSymbol(symbol); ESRI.ArcGIS.Geometry.IEnvelope pEnvelope = geometry as ESRI.ArcGIS.Geometry.IEnvelope; screenDisplay.DrawRectangle(pEnvelope); // Dynamic Cast screenDisplay.FinishDrawing(); return(pEnvelope); } }
void ESRI.ArcGIS.esriSystem.IClone.Assign(ESRI.ArcGIS.esriSystem.IClone src) { GIS.IGasPressureSymbol srcLogoSym = null; ESRI.ArcGIS.Display.IMarkerSymbol srcMarkerSym = null; ESRI.ArcGIS.Display.IMarkerSymbol recMarkerSym = null; ESRI.ArcGIS.Display.ISymbol srcSym = null; ESRI.ArcGIS.Display.ISymbol recSym = null; ESRI.ArcGIS.Display.ISymbolRotation srcRotSym = null; ESRI.ArcGIS.Display.ISymbolRotation recRotSym = null; ESRI.ArcGIS.Display.IMapLevel srcMapLev = null; ESRI.ArcGIS.Display.IMapLevel recMapLev = null; if (src != null) { if (src is GIS.IGasPressureSymbol) { // Assign custom interface properties of Source to Reciever. // Color objects are returned from these properties by value. srcLogoSym = src as IGasPressureSymbol; m_colorBorder = srcLogoSym.ColorBorder; m_colorLeft = srcLogoSym.ColorLeft; m_colorRight = srcLogoSym.ColorRight; m_colorTop = srcLogoSym.ColorTop; // Assign IMarkerSymbol interface properties of Source to Reciever, but // dont need to set Color because this is set in ColorTop. // We know that a Logo markerSymbol implements IMarkerSymbol. srcMarkerSym = src as IMarkerSymbol; recMarkerSym = this; recMarkerSym.Angle = srcMarkerSym.Angle; recMarkerSym.Size = srcMarkerSym.Size; recMarkerSym.XOffset = srcMarkerSym.XOffset; recMarkerSym.YOffset = srcMarkerSym.YOffset; // Assign ISymbol interface properties of Source to Reciever. // We know that a Logo markerSymbol implements ISymbol. srcSym = src as ISymbol; recSym = this; recSym.ROP2 = srcSym.ROP2; // Assign ISymbolRotation interface properties of Source to Reciever. // We know that a Logo markerSymbol implements ISymbolRotation. srcRotSym = src as ISymbolRotation; recRotSym = this; recRotSym.RotateWithTransform = srcRotSym.RotateWithTransform; // Assign IMapLevel interface properties of Source to Reciever. // We know that a Logo markerSymbol implements IMapLevel. srcMapLev = src as IMapLevel; recMapLev = this; recMapLev.MapLevel = srcMapLev.MapLevel; // Also implements IMarkerMask, but this interface has no properties, only // a method, and therefore we dont have to assign anything for IMarkerMask. // Also implements IDiplayName, but this interface only has one property, // which is read-only, so we dont set anything for IDisplayName either. } } }
public static void FlashGeometry(ESRI.ArcGIS.Geometry.IGeometry geometry, System.Int32 delay) { var mxdoc = ArcMap.Application.Document as IMxDocument; if (mxdoc == null) { return; } var av = (IActiveView)mxdoc.FocusMap; var display = av.ScreenDisplay; var envelope = av.Extent.Envelope; IRgbColor color = new RgbColorClass(); color.Green = 255; color.Red = 0; color.Blue = 0; if ((geometry == null) || (color == null) || (display == null) || (envelope == null) || (delay < 0)) { return; } display.StartDrawing(display.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); // Explicit Cast if (geometry.GeometryType != ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint) { return; } //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 markerSymbol = (ESRI.ArcGIS.Display.ISymbol)simpleMarkerSymbol; markerSymbol.ROP2 = ESRI.ArcGIS.Display.esriRasterOpCode.esriROPNotXOrPen; ESRI.ArcGIS.Display.ISimpleLineSymbol simpleLineSymbol = new ESRI.ArcGIS.Display.SimpleLineSymbolClass(); simpleLineSymbol.Width = 1; simpleLineSymbol.Color = color; ESRI.ArcGIS.Display.ISymbol lineSymbol = (ESRI.ArcGIS.Display.ISymbol)simpleLineSymbol; lineSymbol.ROP2 = ESRI.ArcGIS.Display.esriRasterOpCode.esriROPNotXOrPen; DrawCrossHair(geometry, display, envelope, markerSymbol, lineSymbol); //Flash the input point geometry. display.SetSymbol(markerSymbol); display.DrawPoint(geometry); System.Threading.Thread.Sleep(delay); display.DrawPoint(geometry); display.FinishDrawing(); }
public void DrawPolygon(ESRI.ArcGIS.Carto.IActiveView activeView) { if (activeView == null) { return; } ESRI.ArcGIS.Display.IScreenDisplay screenDisplay = activeView.ScreenDisplay; screenDisplay.StartDrawing(screenDisplay.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); // Explicit Cast ESRI.ArcGIS.Display.IRgbColor rgbColor = new ESRI.ArcGIS.Display.RgbColorClass(); rgbColor.Red = 255; ESRI.ArcGIS.Display.IColor color = rgbColor; // Implicit Cast 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 ESRI.ArcGIS.Display.IRubberBand rubberBand = new ESRI.ArcGIS.Display.RubberPolygonClass(); ESRI.ArcGIS.Geometry.IGeometry geometry = rubberBand.TrackNew(screenDisplay, symbol); screenDisplay.SetSymbol(symbol); screenDisplay.DrawPolygon(geometry); screenDisplay.FinishDrawing(); }
//绘制线操作 public void DrawLine(IActiveView activeView, IPoint fromP, IPoint toP) { if (activeView == null) { return; } IPolyline polyline = new PolylineClass(); polyline.FromPoint = fromP; polyline.ToPoint = toP; ESRI.ArcGIS.Display.IScreenDisplay screenDisplay = activeView.ScreenDisplay; screenDisplay.StartDrawing(screenDisplay.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); ILineSymbol lineSymbol = new SimpleLineSymbolClass(); lineSymbol.Color = blackColor; lineSymbol.Width = 1; ESRI.ArcGIS.Display.ISymbol symbol = lineSymbol as ESRI.ArcGIS.Display.ISymbol; // Dynamic cast. screenDisplay.SetSymbol(symbol); ESRI.ArcGIS.Display.IDisplayTransformation displayTransformation = screenDisplay.DisplayTransformation; IGeometry pGeo = polyline; screenDisplay.DrawPolyline(pGeo); screenDisplay.FinishDrawing(); }
public void DrawPoint(ESRI.ArcGIS.Carto.IActiveView activeView, System.Int32 x, System.Int32 y) { if (activeView == null) { return; } ESRI.ArcGIS.Display.IScreenDisplay screenDisplay = activeView.ScreenDisplay; // Constant screenDisplay.StartDrawing(screenDisplay.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); // Explicit Cast ESRI.ArcGIS.Display.ISimpleMarkerSymbol simpleMarkerSymbol = new ESRI.ArcGIS.Display.SimpleMarkerSymbolClass(); ESRI.ArcGIS.Display.ISymbol symbol = simpleMarkerSymbol as ESRI.ArcGIS.Display.ISymbol; // Dynamic Cast screenDisplay.SetSymbol(symbol); ESRI.ArcGIS.Display.IDisplayTransformation displayTransformation = screenDisplay.DisplayTransformation; // x and y are in device coordinates ESRI.ArcGIS.Geometry.IPoint point = displayTransformation.ToMapPoint(x, y); screenDisplay.DrawPoint(point); screenDisplay.FinishDrawing(); }
///<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> public static void FlashGeometry(ESRI.ArcGIS.Geometry.IGeometry geometry, ESRI.ArcGIS.Display.IRgbColor color, ESRI.ArcGIS.Display.IDisplay display, System.Int32 delay, IEnvelope envelope) { 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.esriSMSCircle; simpleMarkerSymbol.Size = 12; simpleMarkerSymbol.Color = color; ESRI.ArcGIS.Display.ISymbol markerSymbol = simpleMarkerSymbol as ESRI.ArcGIS.Display.ISymbol; // Dynamic Cast markerSymbol.ROP2 = ESRI.ArcGIS.Display.esriRasterOpCode.esriROPNotXOrPen; ESRI.ArcGIS.Display.ISimpleLineSymbol simpleLineSymbol = new ESRI.ArcGIS.Display.SimpleLineSymbolClass(); simpleLineSymbol.Width = 1; simpleLineSymbol.Color = color; ESRI.ArcGIS.Display.ISymbol lineSymbol = simpleLineSymbol as ESRI.ArcGIS.Display.ISymbol; // Dynamic Cast lineSymbol.ROP2 = ESRI.ArcGIS.Display.esriRasterOpCode.esriROPNotXOrPen; //Flash the input polygon geometry. display.SetSymbol(markerSymbol); display.SetSymbol(lineSymbol); ArcMapHelpers.DrawCrossHair(geometry, display, envelope, markerSymbol, lineSymbol); //Flash the input point geometry. display.SetSymbol(markerSymbol); 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(); }
public void FlashGeometry(ESRI.ArcGIS.Geometry.IGeometry geometry) { try { IRgbColor color = Globals.FlashFeatureColor; IDisplay display = (IDisplay)mDoc.ActiveView.ScreenDisplay; Int32 delay = Globals.FlashFeatureDelay; 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.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 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(); } catch (Exception ex) { log.WriteError(ex, TAG, System.Security.Principal.WindowsIdentity.GetCurrent().Name, null); } }
bool ESRI.ArcGIS.esriSystem.IClone.IsEqual(ESRI.ArcGIS.esriSystem.IClone other) { bool tempIClone_IsEqual = false; GIS.IGasPressureSymbol srcLogoSym = null; GIS.IGasPressureSymbol pRecLogoSym = null; ESRI.ArcGIS.Display.IMarkerSymbol srcMarkerSym = null; ESRI.ArcGIS.Display.IMarkerSymbol recMarkerSym = null; ESRI.ArcGIS.Display.ISymbol srcSym = null; ESRI.ArcGIS.Display.ISymbol recSym = null; ESRI.ArcGIS.Display.IDisplayName srcDispName = null; ESRI.ArcGIS.Display.IDisplayName recDispName = null; ESRI.ArcGIS.Display.ISymbolRotation srcSymRot = null; ESRI.ArcGIS.Display.ISymbolRotation recSymRot = null; ESRI.ArcGIS.Display.IMapLevel srcMapLev = null; ESRI.ArcGIS.Display.IMapLevel recMapLev = null; if (other != null) { if (other is GIS.IGasPressureSymbol) { // Check for equality on default interface. srcLogoSym = other as IGasPressureSymbol; pRecLogoSym = this; tempIClone_IsEqual = tempIClone_IsEqual & (System.Drawing.ColorTranslator.FromOle(System.Convert.ToInt32(pRecLogoSym.ColorBorder.RGB)).Equals(System.Drawing.ColorTranslator.FromOle(System.Convert.ToInt32(srcLogoSym.ColorBorder.RGB)))); tempIClone_IsEqual = tempIClone_IsEqual & (System.Drawing.ColorTranslator.FromOle(System.Convert.ToInt32(pRecLogoSym.ColorLeft.RGB)).Equals(System.Drawing.ColorTranslator.FromOle(System.Convert.ToInt32(srcLogoSym.ColorLeft.RGB)))); tempIClone_IsEqual = tempIClone_IsEqual & (System.Drawing.ColorTranslator.FromOle(System.Convert.ToInt32(pRecLogoSym.ColorRight.RGB)).Equals(System.Drawing.ColorTranslator.FromOle(System.Convert.ToInt32(srcLogoSym.ColorRight.RGB)))); tempIClone_IsEqual = tempIClone_IsEqual & (System.Drawing.ColorTranslator.FromOle(System.Convert.ToInt32(pRecLogoSym.ColorTop.RGB)).Equals(System.Drawing.ColorTranslator.FromOle(System.Convert.ToInt32(srcLogoSym.ColorTop.RGB)))); // Check for equality on IMarkerSymbol interface. // We know that a LogoMarkerSymbol implements IMarkerSymbol. srcMarkerSym = other as IMarkerSymbol; recMarkerSym = this; tempIClone_IsEqual = tempIClone_IsEqual & (recMarkerSym.Angle == srcMarkerSym.Angle); tempIClone_IsEqual = tempIClone_IsEqual & (System.Drawing.ColorTranslator.FromOle(System.Convert.ToInt32(recMarkerSym.Color.RGB)).Equals(System.Drawing.ColorTranslator.FromOle(System.Convert.ToInt32(srcMarkerSym.Color.RGB)))); tempIClone_IsEqual = tempIClone_IsEqual & (recMarkerSym.Size == srcMarkerSym.Size); tempIClone_IsEqual = tempIClone_IsEqual & (recMarkerSym.XOffset == srcMarkerSym.XOffset); tempIClone_IsEqual = tempIClone_IsEqual & (recMarkerSym.YOffset == srcMarkerSym.YOffset); // Check for equality on ISymbol interface. // We know that a Logo markerSymbol implements ISymbol. srcSym = other as ISymbol; recSym = this; tempIClone_IsEqual = tempIClone_IsEqual & (recSym.ROP2 == srcSym.ROP2); // Check for equality on IDisplayName interface. // We know that a Logo markerSymbol implements IDisplayName. srcDispName = other as IDisplayName; recDispName = this; tempIClone_IsEqual = tempIClone_IsEqual & (recDispName.NameString == srcDispName.NameString); // Check for equality on ISymbolRotation // We know that a Logo markerSymbol implements IDisplayName. srcSymRot = other as ISymbolRotation; recSymRot = this; tempIClone_IsEqual = tempIClone_IsEqual & (recSymRot.RotateWithTransform == srcSymRot.RotateWithTransform); // Check for equality on IMapLevel // We know that a Logo markerSymbol implements IMapLevel. srcMapLev = other as IMapLevel; recMapLev = this; tempIClone_IsEqual = tempIClone_IsEqual & (recMapLev.MapLevel == srcMapLev.MapLevel); // Also implements IMarkerMask, but IMarkerMask has no properties to check. } } return tempIClone_IsEqual; }