From c98d8efe8d7a028ef9da787e06ef5dc92190290e Mon Sep 17 00:00:00 2001 From: Rob Labs Date: Fri, 9 May 2025 15:36:41 -0700 Subject: [PATCH] rio pmtiles: Add "PMTiles metadata attribution" to the Python code (#570) * rio pmtiles: Add "PMTiles metadata attribution" to the Python code * rio pmtiles: Add "tileSize" to the Metadata --- python/rio-pmtiles/README.rst | 1 + python/rio-pmtiles/rio_pmtiles/scripts/cli.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/python/rio-pmtiles/README.rst b/python/rio-pmtiles/README.rst index 7b7efdc..96efec6 100644 --- a/python/rio-pmtiles/README.rst +++ b/python/rio-pmtiles/README.rst @@ -47,6 +47,7 @@ Usage --name TEXT PMTiles metadata name. --description TEXT PMTiles metadata description. + --attribution TEXT PMTiles metadata attribution. --overlay Export as an overlay (the default). --baselayer Export as a base layer. -f, --format [JPEG|PNG|WEBP] Tile image format. [default: WEBP] diff --git a/python/rio-pmtiles/rio_pmtiles/scripts/cli.py b/python/rio-pmtiles/rio_pmtiles/scripts/cli.py index 3581900..8541e34 100644 --- a/python/rio-pmtiles/rio_pmtiles/scripts/cli.py +++ b/python/rio-pmtiles/rio_pmtiles/scripts/cli.py @@ -120,6 +120,7 @@ def guess_maxzoom(crs, bounds, width, height, tile_size): @output_opt @click.option("--name", help="PMTiles metadata name.") @click.option("--description", help="PMTiles metadata description.") +@click.option("--attribution", help="PMTiles metadata attribution.") @click.option( "--overlay", "layer_type", @@ -226,6 +227,7 @@ def pmtiles( output, name, description, + attribution, layer_type, img_format, tile_size, @@ -300,6 +302,7 @@ def pmtiles( # Name and description. name = name or os.path.basename(src.name) description = description or src.name + attribution = attribution or None # Compute the geographic bounding box of the dataset. (west, east), (south, north) = transform( @@ -374,7 +377,7 @@ def pmtiles( outfile.write(b"\x00" * 16384) entries = [] - metadata = gzip.compress(json.dumps({'name':name,'type':layer_type,'description':description,'writer':f'rio-pmtiles {rio_pmtiles_version}'}).encode()) + metadata = gzip.compress(json.dumps({'name':name,'type':layer_type,'description':description,'writer':f'rio-pmtiles {rio_pmtiles_version}','attribution':attribution,'tileSize':int(tile_size)}).encode()) outfile.write(metadata) header = {}