/// <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; })); }
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); }
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); }