Skip to content

panaaj/signalk-pmtiles-plugin

Repository files navigation

ProtoMaps (PMTiles) Chart provider for Signal K server

Signal K Node server resource provider plugin enabling the use of PMTiles map files.

Note: Requires Signal K server running on NodeJS v18 or later!


PMTiles is a single-file archive for pyramids of tiled data that can be hosted on simple storage and does not require a database (eg. SQLite) to be installed.

Your MBTiles files can be easily converted to PMTiles using the go-pmtiles utility.

Read more about PMTiles here: ProtoMaps


The plugin supports the Signal K server v2 Resources API and can be used in conjunction with other chart resource provider plugins.

Chart metadata is made available to client apps via both v1 and v2 API paths.

Note: Freeboard-SK v2 or later supports the use of PMTiles charts.

Server Version API Path
1.x.x v1 /signalk/v1/api/resources/charts
2.x.x v2 /signalk/v2/api/resources/charts

Example: /signalk/v2/api/resources/charts

{
	"kvarken.pmtiles": {
		"identifier": "kvarken.pmtiles",
		"name": "kvarken.pmtiles",
		"description": "",
		"type": "tilelayer",
		"scale": 250000,
		"minzoom": 3,
		"maxzoom": 17,
		"bounds": [17.899475, 62.6097716, 23.0905151, 63.8346133],
		"format": "png",
		"url": "/pmtiles/kvarken.pmtiles",
		"layers": []
	}
}

Example: /signalk/v1/api/resources/charts

{
	"kvarken.pmtiles": {
		"identifier": "kvarken.pmtiles",
		"name": "kvarken.pmtiles",
		"description": "",
		"type": "tilelayer",
		"scale": 250000,
		"minzoom": 3,
		"maxzoom": 17,
		"bounds": [17.899475, 62.6097716, 23.0905151, 63.8346133],
		"format": "png",
		"tilemapUrl": "/pmtiles/kvarken.pmtiles",
		"chartLayers": []
	}
}

The plugin also creates a path from which map tile data is served /pmtiles.

Visiting this url will display a list of discovered PMTiles files (.pmtiles) in the location provided in the Plugin Config screen.

["kvarken.pmtiles","NBottenv.pmtiles"]

Usage

  1. Install signalk-pmtiles-plugin from the Appstore screen in the Signal K server admin console

  2. Once installed, restart the server and the locate PMTiles Chart provider in the Plugin Config screen

  3. Enter the path to the folder in which you will store .pmtiles files in Path to chart files. Note: If omitted the path will default to .signalk/charts/pmtiles

  4. Click Submit to save the changes.

  5. Place your chart files (.pmtiles) into folder entered in the previous step

  6. Enable plugin


Sytem Requirements

  • Signal K server running on NodeJS v18 (or later).