private void cboPlacement_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (MyMap == null) { return; } ArcGISDynamicMapServiceLayer dynamicLayer = MyMap.Layers["PopulationDynamicLayer"] as ArcGISDynamicMapServiceLayer; LabelPlacement placment = new LabelPlacement(); switch (cboPlacement.SelectedIndex) { case 0: placment = LabelPlacement.PointLabelPlacementAboveCenter; break; case 1: placment = LabelPlacement.PointLabelPlacementAboveLeft; break; case 2: placment = LabelPlacement.PointLabelPlacementAboveRight; break; case 3: placment = LabelPlacement.PointLabelPlacementBelowCenter; break; case 4: placment = LabelPlacement.PointLabelPlacementBelowLeft; break; case 5: placment = LabelPlacement.PointLabelPlacementBelowRight; break; case 6: placment = LabelPlacement.PointLabelPlacementCenterCenter; break; case 7: placment = LabelPlacement.PointLabelPlacementCenterLeft; break; case 8: placment = LabelPlacement.PointLabelPlacementCenterRight; break; } foreach (LabelClass lClass in dynamicLayer.LayerDrawingOptions[0].LabelClasses) { lClass.LabelPlacement = placment; } dynamicLayer.Refresh(); }
internal static void GenerateVisibleLabels(ChartAxis axis, LabelPlacement labelPlacement) { { var actualSeries = axis.Area.VisibleSeries .Where(series => series.ActualXAxis == axis) .Max(filteredSeries => filteredSeries.DataCount); actualSeries = actualSeries != null ? actualSeries : axis.Area is SfChart ? (axis.Area as SfChart).TechnicalIndicators.Where(series => series.ActualXAxis == axis) .Max(filteredSeries => filteredSeries.DataCount) : null; if (actualSeries == null) { return; } var visibleRange = axis.VisibleRange; double actualInterval = axis.ActualInterval; double interval = axis.VisibleInterval; double position = visibleRange.Start - (visibleRange.Start % actualInterval); int count = 0; var isPolarRadarSeries = actualSeries is PolarRadarSeriesBase; var isIndexed = (actualSeries is WaterfallSeries || actualSeries is HistogramSeries || actualSeries is ErrorBarSeries || isPolarRadarSeries) ? true : (axis as CategoryAxis).IsIndexed; count = isIndexed ? actualSeries.DataCount : actualSeries.DistinctValuesIndexes.Count; for (; position <= visibleRange.End; position += interval) { int pos = ((int)Math.Round(position)); if (visibleRange.Inside(pos) && pos < count && pos > -1) { object obj = null; obj = GetLabelContent(axis, pos, actualSeries); axis.VisibleLabels.Add(new ChartAxisLabel(pos, obj, pos)); } } position = visibleRange.Start - (visibleRange.Start % actualInterval); if (isPolarRadarSeries) { return; } for (; position <= visibleRange.End; position += 1) { if (labelPlacement != LabelPlacement.BetweenTicks) { continue; } if (position == 0 && (axis.VisibleRange.Inside(-0.5))) { axis.m_smalltickPoints.Add(-0.5); } AddBetweenTicks(axis, position, 1d); } } }
public static Point GetLabelOffset(LabelPlacement placement) { switch (placement) { case LabelPlacement.Top: return new Point(0, 0.5); case LabelPlacement.Bottom: return new Point(0, -0.5); case LabelPlacement.Left: return new Point(-0.5, 0); default: return new Point(0.5, 0); } }
/** * Constructs a new DatabaseRenderer. * * @param mapDatabase * the MapDatabase from which the map data will be read. */ public DatabaseRenderer(MapDatabase mapDatabase) { this.mapDatabase = mapDatabase; this.canvasRasterer = new CanvasRasterer(); this.labelPlacement = new LabelPlacement(); this.ways = new List <List <List <ShapePaintContainer> > >(LAYERS); this.wayNames = new List <WayTextContainer>(64); this.nodes = new List <pointTextContainer>(64); this.areaLabels = new List <pointTextContainer>(64); this.waySymbols = new List <SymbolContainer>(64); this.Pointsymbols = new List <SymbolContainer>(64); PAINT_WATER_TILE_HIGHTLIGHT.Style = Style.FILL; PAINT_WATER_TILE_HIGHTLIGHT.Color = Colors.Cyan; }
public static Point GetLabelOffset(LabelPlacement placement) { switch (placement) { case LabelPlacement.Top: return(new Point(0, 0.5)); case LabelPlacement.Bottom: return(new Point(0, -0.5)); case LabelPlacement.Left: return(new Point(-0.5, 0)); default: return(new Point(0.5, 0)); } }
private void cboPlacement_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (MyMap == null) return; ArcGISDynamicMapServiceLayer dynamicLayer = MyMap.Layers["PopulationDynamicLayer"] as ArcGISDynamicMapServiceLayer; LabelPlacement placment = new LabelPlacement(); switch (cboPlacement.SelectedIndex) { case 0: placment = LabelPlacement.PointLabelPlacementAboveCenter; break; case 1: placment = LabelPlacement.PointLabelPlacementAboveLeft; break; case 2: placment = LabelPlacement.PointLabelPlacementAboveRight; break; case 3: placment = LabelPlacement.PointLabelPlacementBelowCenter; break; case 4: placment = LabelPlacement.PointLabelPlacementBelowLeft; break; case 5: placment = LabelPlacement.PointLabelPlacementBelowRight; break; case 6: placment = LabelPlacement.PointLabelPlacementCenterCenter; break; case 7: placment = LabelPlacement.PointLabelPlacementCenterLeft; break; case 8: placment = LabelPlacement.PointLabelPlacementCenterRight; break; } foreach (LabelClass lClass in dynamicLayer.LayerDrawingOptions[0].LabelClasses) { lClass.LabelPlacement = placment; } dynamicLayer.Refresh(); }
/// <summary> /// Apply padding based on interval /// </summary> /// <param name="axis"></param> /// <param name="range"></param> /// <param name="interval"></param> /// <param name="labelPlacement"></param> /// <returns></returns> internal static DoubleRange ApplyRangePadding(ChartAxis axis, DoubleRange range, double interval, LabelPlacement labelPlacement) { var actualSeries = axis.Area.VisibleSeries .Where(series => series.ActualXAxis == axis) .Max(filteredSeries => filteredSeries.DataCount); if (!(actualSeries is PolarRadarSeriesBase) && labelPlacement == LabelPlacement.BetweenTicks) { return(new DoubleRange(-0.5, (int)range.End + 0.5)); } return(range); }