MCPcopy
hub / github.com/protomaps/PMTiles / get

Method get

python/pmtiles/pmtiles/reader.py:44–59  ·  view source on GitHub ↗
(self, z, x, y)

Source from the content-addressed store, hash-verified

42 return json.loads(metadata)
43
44 def get(self, z, x, y):
45 tile_id = zxy_to_tileid(z, x, y)
46 header = self.header()
47 dir_offset = header["root_offset"]
48 dir_length = header["root_length"]
49 for depth in range(0, 4): # max depth
50 directory = deserialize_directory(self.get_bytes(dir_offset, dir_length))
51 result = find_tile(directory, tile_id)
52 if result:
53 if result.run_length == 0:
54 dir_offset = header["leaf_directory_offset"] + result.offset
55 dir_length = result.length
56 else:
57 return self.get_bytes(
58 header["tile_data_offset"] + result.offset, result.length
59 )
60
61
62def traverse(get_bytes, header, dir_offset, dir_length):

Callers

nothing calls this directly

Calls 4

headerMethod · 0.95
zxy_to_tileidFunction · 0.85
deserialize_directoryFunction · 0.85
find_tileFunction · 0.85

Tested by

no test coverage detected