app svg-tileserver

A high performance SVG Leaflet/MapLibre compatible tile server

3 releases

0.1.2 May 18, 2024
0.1.1 Apr 27, 2024
0.1.0 Apr 27, 2024

25 downloads per month

MIT license

16KB
89 lines

SVG TileServer

Build Status Crates.io

A simple, memory-safe 🔥 and blazingly fast 🚀 Leaflet/MapLibre compatile tile-server that serves PNG tiles rasterized from an SVG image. This can be useful when needing to render highly complex and detailed SVGs.

Built using actix_web and crates from the resvg project.

Usage

Server side

A high performance SVG Leaflet/MapLibre compatible tile server

Usage: svg-tileserver [OPTIONS] <SVG_PATH>

Arguments:
  <SVG_PATH>  The path of the SVG that should be served

Options:
  -t, --tile-size <TILE_SIZE>        The size in pixels of a PNG tile [default: 256]
  -p, --port <PORT>                  The port to start the server on [default: 8080]
  -b, --bind-address <BIND_ADDRESS>  The address to bind the server on [default: 127.0.0.1]
  -h, --help                         Print help
  -V, --version                      Print version

Client side

import L from "leaflet";

const map = new L.Map("#map", {
  crs: L.CRS.Simple,
  center: [0, 0],
  zoom: 0,
});

L.tileLayer("http://localhost:8080/tile/{z}/{x}/{y}.png", {
  maxZoom: 19,
}).addTo(map);

Dependencies

~18–30MB
~524K SLoC