public override void RenderNode(RenderCallback renderCallback, RenderContext renderContext, PointOfInterest poi) { if (Display.NEVER == this.display) { return; } if (Bitmap != null) { renderCallback.RenderPointOfInterestSymbol(renderContext, this.display, this.priority, this.bitmap, poi); } }
public override void RenderNode(RenderCallback renderCallback, RenderContext renderContext, PointOfInterest poi) { // do nothing }
private void RenderPointOfInterest(RenderContext renderContext, PointOfInterest pointOfInterest) { renderContext.DrawingLayers = pointOfInterest.Layer; renderContext.renderTheme.MatchNode(this, renderContext, pointOfInterest); }
/// <param name="renderCallback"> /// a reference to the receiver of all render callbacks. </param> /// <param name="renderContext"> </param> /// <param name="poi"> </param> public abstract void RenderNode(RenderCallback renderCallback, RenderContext renderContext, PointOfInterest poi);
public void RenderPointOfInterestCircle(RenderContext renderContext, float radius, IPaint fill, IPaint stroke, int level, PointOfInterest poi) { Point poiPosition = MercatorProjection.GetPixelRelativeToTile(poi.Position, renderContext.rendererJob.tile); renderContext.AddToCurrentDrawingLayer(level, new ShapePaintContainer(new CircleContainer(poiPosition, radius), stroke)); renderContext.AddToCurrentDrawingLayer(level, new ShapePaintContainer(new CircleContainer(poiPosition, radius), fill)); }
public void RenderPointOfInterestSymbol(RenderContext renderContext, Display display, int priority, IBitmap symbol, PointOfInterest poi) { Point poiPosition = MercatorProjection.GetPixelAbsolute(poi.Position, renderContext.rendererJob.tile.MapSize); renderContext.labels.Add(new SymbolContainer(poiPosition, display, priority, symbol)); }
public void RenderPointOfInterestCaption(RenderContext renderContext, Display display, int priority, string caption, float horizontalOffset, float verticalOffset, IPaint fill, IPaint stroke, Position position, int maxTextWidth, PointOfInterest poi) { Point poiPosition = MercatorProjection.GetPixelAbsolute(poi.Position, renderContext.rendererJob.tile.MapSize); renderContext.labels.Add(this.graphicFactory.CreatePointTextContainer(poiPosition.Offset(horizontalOffset, verticalOffset), display, priority, caption, fill, stroke, null, position, maxTextWidth)); }
internal virtual void MatchNode(RenderCallback renderCallback, RenderContext renderContext, IList <RenderInstruction> matchingList, PointOfInterest pointOfInterest) { if (MatchesNode(pointOfInterest.Tags, renderContext.rendererJob.tile.ZoomLevel)) { for (int i = 0, n = this.renderInstructions.Count; i < n; ++i) { this.renderInstructions[i].RenderNode(renderCallback, renderContext, pointOfInterest); matchingList.Add(this.renderInstructions[i]); } for (int i = 0, n = this.subRules.Count; i < n; ++i) { this.subRules[i].MatchNode(renderCallback, renderContext, matchingList, pointOfInterest); } } }
public override void RenderNode(RenderCallback renderCallback, RenderContext renderContext, PointOfInterest poi) { renderCallback.RenderPointOfInterestCircle(renderContext, GetRenderRadius(renderContext.rendererJob.tile.ZoomLevel), GetFillPaint(renderContext.rendererJob.tile.ZoomLevel), GetStrokePaint(renderContext.rendererJob.tile.ZoomLevel), this.level, poi); }
/// <summary> /// Matches a node with the given parameters against this RenderTheme. </summary> /// <param name="renderCallback"> /// the callback implementation which will be executed on each match. </param> /// <param name="renderContext"> </param> /// <param name="poi"> /// the point of interest. </param> public virtual void MatchNode(RenderCallback renderCallback, RenderContext renderContext, PointOfInterest poi) { lock (this) { MatchingCacheKey matchingCacheKey = new MatchingCacheKey(poi.Tags, renderContext.rendererJob.tile.ZoomLevel, Closed.NO); IList <RenderInstruction> matchingList = this.poiMatchingCache.Get(matchingCacheKey); if (matchingList != null) { // cache hit for (int i = 0, n = matchingList.Count; i < n; ++i) { matchingList[i].RenderNode(renderCallback, renderContext, poi); } return; } // cache miss matchingList = new List <RenderInstruction>(); for (int i = 0, n = this.rulesList.Count; i < n; ++i) { this.rulesList[i].MatchNode(renderCallback, renderContext, matchingList, poi); } this.poiMatchingCache.Add(matchingCacheKey, matchingList); } }
public override void RenderNode(RenderCallback renderCallback, RenderContext renderContext, PointOfInterest poi) { if (Display.NEVER == this.display) { return; } string caption = this.textKey.GetValue(poi.Tags); if (string.ReferenceEquals(caption, null)) { return; } float horizontalOffset = 0f; float verticalOffset = this.dyScaled[renderContext.rendererJob.tile.ZoomLevel] ?? this.dy; if (this.bitmap != null) { horizontalOffset = ComputeHorizontalOffset(); verticalOffset = ComputeVerticalOffset(renderContext.rendererJob.tile.ZoomLevel); } renderCallback.RenderPointOfInterestCaption(renderContext, this.display, this.priority, caption, horizontalOffset, verticalOffset, getFillPaint(renderContext.rendererJob.tile.ZoomLevel), getStrokePaint(renderContext.rendererJob.tile.ZoomLevel), this.position, this.maxTextWidth, poi); }