/// <summary>
        /// Create a line symbol with the markers placed at a 45 degree angle. <br/>
        /// ![LineSymbolAngleMarker](http://Esri.github.io/arcgis-pro-sdk/images/Symbology/line-marker-angle.png)
        /// </summary>
        /// <returns></returns>
        internal static Task <CIMLineSymbol> CreateMyMarkerLineSymbolAsync()
        {
            return(QueuedTask.Run <CIMLineSymbol>(() =>
            {
                //Create a marker from the "|" character.  This is the marker that will be used to render the line layer.
                var lineMarker = SymbolFactory.Instance.ConstructMarker(124, "Agency FB", "Regular", 12);

                //Default line symbol which will be modified
                var blackSolidLineSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 2, SimpleLineStyle.Solid);

                //Modifying the marker to align with line
                //First define "markerplacement"
                CIMMarkerPlacementAlongLineSameSize markerPlacement = new CIMMarkerPlacementAlongLineSameSize()
                {
                    AngleToLine = true,
                    ControlPointPlacement = PlacementEndings.WithMarkers,
                    PlacementTemplate = new double[] { 5 }
                };
                //assign the markerplacement to the marker
                lineMarker.MarkerPlacement = markerPlacement;
                //angle the marker if needed
                lineMarker.Rotation = 45;

                //assign the marker as a layer to the line symbol
                blackSolidLineSymbol.SymbolLayers[0] = lineMarker;

                return blackSolidLineSymbol;
            }));
        }
Esempio n. 2
0
        public static T SetMarkerPlacementAlongLine <T>(this T marker, params double[] template) where T : CIMMarker
        {
            var placement = new CIMMarkerPlacementAlongLineSameSize();

            placement.PlacementTemplate = template ?? new[] { 10 * DefaultStrokeWidth };

            return(marker.SetMarkerPlacement(placement));
        }
        private static CIMMarker CreateSquareMarkerPerSpecs()
        {
            var squareMarker = SymbolFactory.Instance.ConstructMarker(ColorFactory.Instance.BlueRGB, 5, SimpleMarkerStyle.Square) as CIMVectorMarker;
            CIMMarkerPlacementAlongLineSameSize markerPlacement2 = new CIMMarkerPlacementAlongLineSameSize()
            {
                AngleToLine       = true,
                Endings           = PlacementEndings.Custom,
                OffsetAlongLine   = 45,
                PlacementTemplate = new double[] { 60 },
            };

            squareMarker.MarkerPlacement = markerPlacement2;
            return(squareMarker);
        }
Esempio n. 4
0
        private static CIMMarker CreateCircleMarkerPerSpecs()
        {
            var circleMarker = SymbolFactory.Instance.ConstructMarker(ColorFactory.Instance.BlackRGB, 5, SimpleMarkerStyle.Circle) as CIMVectorMarker;
            //Modifying the marker to align with line
            //First define "markerplacement"
            CIMMarkerPlacementAlongLineSameSize markerPlacement = new CIMMarkerPlacementAlongLineSameSize()
            {
                AngleToLine       = true,
                Offset            = 0,
                Endings           = PlacementEndings.Custom,
                OffsetAlongLine   = 15,
                PlacementTemplate = new double[] { 60 }
            };

            //assign the markerplacement to the marker
            circleMarker.MarkerPlacement = markerPlacement;
            return(circleMarker);
        }