diff --git a/python/pmtiles/reader.py b/python/pmtiles/reader.py index f5aa366..09a7ea0 100644 --- a/python/pmtiles/reader.py +++ b/python/pmtiles/reader.py @@ -72,6 +72,8 @@ class Reader: else: if len(self.header().leaves) > 0: level_diff = z - self._leaf_level() + if level_diff < 0: + return None leaf = ( self._leaf_level(), x // (1 << level_diff), diff --git a/python/test/test_reader.py b/python/test/test_reader.py index 5e57a9d..42b8d1b 100644 --- a/python/test/test_reader.py +++ b/python/test/test_reader.py @@ -7,11 +7,10 @@ from pmtiles.reader import Reader, MemorySource class TestReader(unittest.TestCase): def test_roundtrip(self): buf = BytesIO() - writer = Writer(buf, 7) + writer = Writer(buf, 5) writer.write_tile(1, 0, 0, b"0") writer.write_tile(1, 0, 1, b"1") writer.write_tile(1, 1, 0, b"2") - writer.write_tile(1, 1, 1, b"3") writer.write_tile(2, 0, 0, b"4") writer.write_tile(3, 0, 0, b"5") writer.write_tile(2, 0, 1, b"6") @@ -24,8 +23,8 @@ class TestReader(unittest.TestCase): self.assertEqual(reader.get(1, 0, 0), b"0") self.assertEqual(reader.get(1, 0, 1), b"1") self.assertEqual(reader.get(1, 1, 0), b"2") - self.assertEqual(reader.get(1, 1, 1), b"3") self.assertEqual(reader.get(2, 0, 0), b"4") self.assertEqual(reader.get(3, 0, 0), b"5") self.assertEqual(reader.get(2, 0, 1), b"6") self.assertEqual(reader.get(3, 0, 2), b"7") + self.assertEqual(reader.get(1, 1, 1), None)