WuGing.VectorTileRenderer
0.1.1-preview.6
Prefix Reserved
dotnet add package WuGing.VectorTileRenderer --version 0.1.1-preview.6
NuGet\Install-Package WuGing.VectorTileRenderer -Version 0.1.1-preview.6
<PackageReference Include="WuGing.VectorTileRenderer" Version="0.1.1-preview.6" />
<PackageVersion Include="WuGing.VectorTileRenderer" Version="0.1.1-preview.6" />
<PackageReference Include="WuGing.VectorTileRenderer" />
paket add WuGing.VectorTileRenderer --version 0.1.1-preview.6
#r "nuget: WuGing.VectorTileRenderer, 0.1.1-preview.6"
#:package WuGing.VectorTileRenderer@0.1.1-preview.6
#addin nuget:?package=WuGing.VectorTileRenderer&version=0.1.1-preview.6&prerelease
#tool nuget:?package=WuGing.VectorTileRenderer&version=0.1.1-preview.6&prerelease
VectorTileRenderer
Vector map tile rendering library for .NET.
Release notes - 0.1.1-preview.6
- Fixed upside-down, warped and truncated road labels; use intact glyphs and measured text width.
- Prefer gently bending road sections and reject unreadable placements while preserving tile-edge protections.
- Fixed area/building label cutoffs using measured multiline bounds, alignment, offsets and halos.
- Invalidate older rendered-tile cache entries so corrected labels appear after upgrading.
- Fixed sticky Auto CPU fallback and propagate GPU pixel-readback failures.
- Added label regressions and CPU/GPU visual and performance validation tooling.
- GPU support remains experimental; cross-tile label placement and Unicode shaping/fallback remain incomplete.
Rebuild and restart applications after upgrading. Labels that cannot fit fully within a tile are omitted; coordinated placement across tiles remains future work.
Highlights
- Renders OpenMapTiles/Mapbox-style vector tile data.
- Supports MBTiles and PBF vector tile sources.
- Supports raster overlays for hybrid map rendering.
- Includes CPU and experimental GPU backend selection.
Quick Start
var style = new WuGing.VectorTileRenderer.Style("styles/basic-style.json")
{
FontDirectory = "styles/fonts/"
};
using var source = new WuGing.VectorTileRenderer.Sources.SingleMbTilesSource("tiles/zurich.mbtiles");
style.SetSourceProvider("openmaptiles", source);
var canvas = WuGing.VectorTileRenderer.CanvasFactory.Create(WuGing.VectorTileRenderer.RenderBackend.Cpu);
var bitmap = await WuGing.VectorTileRenderer.Renderer.Render(style, canvas, 1439, 1227, 13, 512, 512, 1);
Multiple regional databases can be exposed as one source. Requests are routed using MBTiles coverage metadata and fall through when a matching database does not contain the requested tile:
using var source = new WuGing.VectorTileRenderer.Sources.CompositeMbTilesSource(
[
"tiles/region-a.mbtiles",
"tiles/region-b.mbtiles"
]);
style.SetSourceProvider("openmaptiles", source);
Backend Notes
RenderBackend.Cpu: safest default.RenderBackend.Gpu: attempts GPU usage; falls back when unavailable.RenderBackend.Auto: probes GPU availability and falls back to CPU.
For complete examples and demo integrations, see the repository README and demo projects.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Clipper2 (>= 2.0.0)
- mapbox-vector-tile (>= 5.3.0)
- Microsoft.CSharp (>= 4.7.0)
- SkiaSharp (>= 3.119.2)
- System.Data.SQLite.Core (>= 1.0.119)
- System.Text.Json (>= 10.0.5)
-
net10.0
- Clipper2 (>= 2.0.0)
- mapbox-vector-tile (>= 5.3.0)
- SkiaSharp (>= 3.119.2)
- System.Data.SQLite.Core (>= 1.0.119)
-
net7.0
- Clipper2 (>= 2.0.0)
- mapbox-vector-tile (>= 5.3.0)
- SkiaSharp (>= 3.119.2)
- System.Data.SQLite.Core (>= 1.0.119)
-
net8.0
- Clipper2 (>= 2.0.0)
- mapbox-vector-tile (>= 5.3.0)
- SkiaSharp (>= 3.119.2)
- System.Data.SQLite.Core (>= 1.0.119)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.1-preview.6 | 74 | 9/7/2026 |
| 0.1.1-preview.5 | 54 | 9/2/2026 |
| 0.1.1-preview.4 | 107 | 3/20/2026 |
| 0.1.0-preview.1 | 78 | 3/17/2026 |
0.1.1-preview.6
- Fixed upside-down, warped and truncated road labels; use intact glyphs and measured text width.
- Prefer gently bending road sections and reject unreadable placements while preserving tile-edge protections.
- Fixed area/building label cutoffs using measured multiline bounds, alignment, offsets and halos.
- Invalidate older rendered-tile cache entries so corrected labels appear after upgrading.
- Fixed sticky Auto CPU fallback and propagate GPU pixel-readback failures.
- Added label regressions and CPU/GPU visual and performance validation tooling.
- GPU support remains experimental; cross-tile label placement and Unicode shaping/fallback remain incomplete.