diff --git a/python/bin/mbtiles2pmtiles b/python/bin/mbtiles2pmtiles deleted file mode 100755 index 5814c51..0000000 --- a/python/bin/mbtiles2pmtiles +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env python - -import argparse -import sqlite3 -from pmtiles.writer import write - -parser = argparse.ArgumentParser(description='Convert an MBTiles archive to PMTiles.') -parser.add_argument('mbtiles_file',help='input MBTiles') -parser.add_argument('pmtiles_file',help='output PMTiles') -parser.add_argument('--maxzoom', help='the maximum zoom level to include in the output.') -args = parser.parse_args() - -conn = sqlite3.connect(args.mbtiles_file) -cursor = conn.cursor() - -with write(args.pmtiles_file) as writer: - for row in cursor.execute('SELECT zoom_level,tile_column,tile_row,tile_data FROM tiles WHERE zoom_level <= ? ORDER BY zoom_level,tile_column,tile_row ASC',(args.maxzoom or 99,)): - writer.write_tile(row[0],row[1],row[2],row[3]) - - metadata = {} - for row in cursor.execute('SELECT name,value FROM metadata'): - metadata[row[0]] = row[1] - if args.maxzoom: - metadata['maxzoom'] = str(args.maxzoom) - result = writer.finalize(metadata) - print("Num tiles:",result['num_tiles']) - print("Num unique tiles:",result['num_unique_tiles']) - print("Num leaves:",result['num_leaves']) - -conn.close() \ No newline at end of file diff --git a/python/bin/pmtiles-convert b/python/bin/pmtiles-convert new file mode 100755 index 0000000..72a81c5 --- /dev/null +++ b/python/bin/pmtiles-convert @@ -0,0 +1,41 @@ +#!/usr/bin/env python + +#pmtiles to files +#pmtiles to mbtiles +#mbtiles to pmtiles + +import argparse +import sqlite3 +from pmtiles.writer import write + +parser = argparse.ArgumentParser(description='Convert between PMTiles and other archive formats.') +parser.add_argument('input',help='Input .mbtiles or .pmtiles') +parser.add_argument('output',help='Output .mbtiles, .pmtiles, or directory') +parser.add_argument('--maxzoom', help='the maximum zoom level to include in the output.') +args = parser.parse_args() + +if args.input.endswith('.mbtiles') and args.output.endswith('.pmtiles'): + conn = sqlite3.connect(args.input) + cursor = conn.cursor() + + with write(args.output) as writer: + for row in cursor.execute('SELECT zoom_level,tile_column,tile_row,tile_data FROM tiles WHERE zoom_level <= ? ORDER BY zoom_level,tile_column,tile_row ASC',(args.maxzoom or 99,)): + writer.write_tile(row[0],row[1],row[2],row[3]) + + metadata = {} + for row in cursor.execute('SELECT name,value FROM metadata'): + metadata[row[0]] = row[1] + if args.maxzoom: + metadata['maxzoom'] = str(args.maxzoom) + result = writer.finalize(metadata) + print("Num tiles:",result['num_tiles']) + print("Num unique tiles:",result['num_unique_tiles']) + print("Num leaves:",result['num_leaves']) + + conn.close() +elif args.input.endswith('.pmtiles') and args.output.endswith('.mbtiles'): + print("PMTiles to MBTiles not yet implemented") +elif args.input.endswith(".pmtiles"): + print("PMTiles to directory not yet implemented") +else: + print("Conversion not implemented") \ No newline at end of file