예제 #1
0
 public static CIMSymbolLayer AddOffset(
     this CIMSymbolLayer layer, double offset,
     GeometricEffectOffsetMethod method = GeometricEffectOffsetMethod.Bevelled,
     GeometricEffectOffsetOption option = GeometricEffectOffsetOption.Accurate)
 {
     return(layer.AddEffect(CreateEffectOffset(offset, method, option)));
 }
예제 #2
0
        /// <summary>
        /// Create a CIMPointGaphic which can be added to the MapView overlay.
        /// </summary>
        /// <param name="point">The location for the point (as a CIM point)</param>
        /// <returns></returns>
        public CIMPointGraphic MakeCIMPointGraphic(PointN point)
        {
            CIMMarker marker = SymbolFactory.Instance.ConstructMarker(Red, 10, SimpleMarkerStyle.Star);

            CIMSymbolLayer[] layers = new CIMSymbolLayer[1];
            layers[0] = marker;

            CIMPointSymbol pointSymbol = new CIMPointSymbol()
            {
                SymbolLayers = layers,
                ScaleX       = 1
            };
            CIMSymbolReference symbolRef = new CIMSymbolReference()
            {
                Symbol = pointSymbol
            };
            CIMPointGraphic pointGraphic = new CIMPointGraphic();

            ArcGIS.Core.Geometry.SpatialReference spatialRef = SpatialReferenceBuilder.CreateSpatialReference(point.SpatialReference.WKID);
            MapPoint mapPoint = MapPointBuilder.CreateMapPoint(point.X, point.Y, spatialRef);

            pointGraphic.Location = mapPoint;
            pointGraphic.Symbol   = symbolRef;

            return(pointGraphic);
        }
예제 #3
0
        /// <summary>
        /// Create a CIMPointGaphic which can be added to the MapView overlay.
        /// </summary>
        /// <param name="point">The location for the point (as a CIM point)</param>
        /// <returns></returns>
        public CIMPointGraphic MakeCIMPointGraphic(PointN point)
        {
            ////CIMMarker marker = SymbolHelper.ConstructMarker(Red, 10, SimpleMarkerStyle.Circle);

            CIMMarker marker = SymbolHelper.ConstructMarker(Red, 10, SimpleMarkerStyle.Star);

            CIMSymbolLayer[] layers = new CIMSymbolLayer[1];
            layers[0] = marker;

            CIMPointSymbol pointSymbol = new CIMPointSymbol();

            pointSymbol.SymbolLayers = layers;
            pointSymbol.ScaleX       = 1;

            CIMSymbolReference symbolRef = new CIMSymbolReference();

            symbolRef.Symbol = pointSymbol;

            CIMPointGraphic pointGraphic = new CIMPointGraphic();

            pointGraphic.Location = point;
            pointGraphic.Symbol   = symbolRef;

            return(pointGraphic);
        }
예제 #4
0
 public static CIMSymbolLayer AddDashes(
     this CIMSymbolLayer layer, double[] pattern,
     LineDashEnding ending             = LineDashEnding.NoConstraint,
     double customEndingOffset         = 0.0, double offsetAlongLine = 0.0,
     LineDashEnding controlPointEnding = LineDashEnding.NoConstraint)
 {
     return(layer.AddEffect(CreateEffectDashes(pattern, ending, customEndingOffset,
                                               offsetAlongLine, controlPointEnding)));
 }
예제 #5
0
 static public bool IsNeutralColor(CIMSymbolLayer layer)
 {
     if (layer is CIMSolidStroke solidStroke)
     {
         return(IsNeutralColor(solidStroke.Color));
     }
     if (layer is CIMSolidFill solidFill)
     {
         return(IsNeutralColor(solidFill.Color));
     }
     return(false);
 }
예제 #6
0
 static public bool IsWhiteLayer(CIMSymbolLayer layer)
 {
     if (layer is CIMSolidFill)
     {
         return(IsWhiteColor((layer as CIMSolidFill).Color));
     }
     if (layer is CIMSolidStroke)
     {
         return(IsWhiteColor((layer as CIMSolidStroke).Color));
     }
     return(false);
 }
예제 #7
0
        /// <summary>
        /// Create a line symbol with a dash and two markers.<br/>
        /// </summary>
        /// <remarks>
        /// This line symbol comprises three symbol layers listed below:
        /// 1. A solid stroke that has dashes.
        /// 1. A circle marker.
        /// 1. A square marker.
        /// ![LineSymbolTwoMarkers](http://Esri.github.io/arcgis-pro-sdk/images/Symbology/line-dash-two-markers.png)
        /// </remarks>
        /// <returns></returns>
        internal static async Task <CIMLineSymbol> CreateLineDashTwoMarkers()
        {
            var lineSymbol = await QueuedTask.Run(() =>
            {
                var dash2MarkersLine = new CIMLineSymbol();

                var mySymbolLyrs = new CIMSymbolLayer[]
                {
                    new CIMSolidStroke()
                    {
                        Color       = ColorFactory.Instance.BlackRGB,
                        Enable      = true,
                        ColorLocked = true,
                        CapStyle    = LineCapStyle.Round,
                        JoinStyle   = LineJoinStyle.Round,
                        LineStyle3D = Simple3DLineStyle.Strip,
                        MiterLimit  = 10,
                        Width       = 1,
                        CloseCaps3D = false,
                        Effects     = new CIMGeometricEffect[]
                        {
                            new CIMGeometricEffectDashes()
                            {
                                CustomEndingOffset = 0,
                                DashTemplate       = new double[] { 20, 10, 20, 10 },
                                LineDashEnding     = LineDashEnding.HalfPattern,
                                OffsetAlongLine    = 0,
                                ControlPointEnding = LineDashEnding.NoConstraint
                            },
                            new CIMGeometricEffectOffset()
                            {
                                Method = GeometricEffectOffsetMethod.Bevelled,
                                Offset = 0,
                                Option = GeometricEffectOffsetOption.Fast
                            }
                        },
                    },
                    CreateCircleMarkerPerSpecs(),
                    CreateSquareMarkerPerSpecs()
                };
                dash2MarkersLine.SymbolLayers = mySymbolLyrs;
                return(dash2MarkersLine);
            });

            return(lineSymbol);
        }
        /// <summary>
        /// Create a CIMPointGaphic which can be added to the MapView overlay.
        /// </summary>
        /// <param name="point">The location for the point (as a CIM point)</param>
        /// <returns></returns>
        public  CIMPointGraphic MakeCIMPointGraphic(PointN point)
        {

            ////CIMMarker marker = SymbolHelper.ConstructMarker(Red, 10, SimpleMarkerStyle.Circle);
            
            CIMMarker marker = SymbolHelper.ConstructMarker(Red, 10, SimpleMarkerStyle.Star);

            CIMSymbolLayer[] layers = new CIMSymbolLayer[1];
            layers[0] = marker;

            CIMPointSymbol pointSymbol = new CIMPointSymbol();
            pointSymbol.SymbolLayers = layers;
            pointSymbol.ScaleX = 1;

            CIMSymbolReference symbolRef = new CIMSymbolReference();
            symbolRef.Symbol = pointSymbol;

            CIMPointGraphic pointGraphic = new CIMPointGraphic();
            pointGraphic.Location = point;
            pointGraphic.Symbol = symbolRef;

            return pointGraphic;
        }
        /// <summary>
        /// Create a CIMPointGaphic which can be added to the MapView overlay.
        /// </summary>
        /// <param name="point">The location for the point (as a CIM point)</param>
        /// <returns></returns>
        public CIMPointGraphic MakeCIMPointGraphic(PointN point)
        {
            CIMMarker marker = SymbolFactory.ConstructMarker(Red, 10, SimpleMarkerStyle.Star);

            CIMSymbolLayer[] layers = new CIMSymbolLayer[1];
            layers[0] = marker;

            CIMPointSymbol pointSymbol = new CIMPointSymbol();
            pointSymbol.SymbolLayers = layers;
            pointSymbol.ScaleX = 1;

            CIMSymbolReference symbolRef = new CIMSymbolReference();
            symbolRef.Symbol = pointSymbol;

            CIMPointGraphic pointGraphic = new CIMPointGraphic();
            ArcGIS.Core.Geometry.SpatialReference spatialRef = SpatialReferenceBuilder.CreateSpatialReference(point.SpatialReference.WKID);
            MapPoint mapPoint = MapPointBuilder.CreateMapPoint(point.X, point.Y, spatialRef);
            pointGraphic.Location = mapPoint;
            pointGraphic.Symbol = symbolRef;

            return pointGraphic;
        }