private static void CheckPointOfInterest(PointOfInterest pointOfInterest) { Assert.AreEqual(7, pointOfInterest.Layer); Assert.AreEqual(0.04, pointOfInterest.Position.Latitude, 0.000001); Assert.AreEqual(0.08, pointOfInterest.Position.Longitude, 0); Assert.AreEqual(4, pointOfInterest.Tags.Count); Assert.True(pointOfInterest.Tags.Contains(new Tag("place=country"))); Assert.True(pointOfInterest.Tags.Contains(new Tag("name=АБВГДЕЖЗ"))); Assert.True(pointOfInterest.Tags.Contains(new Tag("addr:housenumber=абвгдежз"))); Assert.True(pointOfInterest.Tags.Contains(new Tag("ele=25"))); }
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); }
public override void RenderNode(RenderCallback renderCallback, RenderContext renderContext, PointOfInterest poi) { // do nothing }
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); }
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); } }
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); } } }
/// <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);
/// <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); } }