mirror of
https://github.com/protomaps/PMTiles.git
synced 2026-02-04 10:51:07 +00:00
python reader: fix leaf level querying
This commit is contained in:
@@ -72,6 +72,8 @@ class Reader:
|
|||||||
else:
|
else:
|
||||||
if len(self.header().leaves) > 0:
|
if len(self.header().leaves) > 0:
|
||||||
level_diff = z - self._leaf_level()
|
level_diff = z - self._leaf_level()
|
||||||
|
if level_diff < 0:
|
||||||
|
return None
|
||||||
leaf = (
|
leaf = (
|
||||||
self._leaf_level(),
|
self._leaf_level(),
|
||||||
x // (1 << level_diff),
|
x // (1 << level_diff),
|
||||||
|
|||||||
@@ -7,11 +7,10 @@ from pmtiles.reader import Reader, MemorySource
|
|||||||
class TestReader(unittest.TestCase):
|
class TestReader(unittest.TestCase):
|
||||||
def test_roundtrip(self):
|
def test_roundtrip(self):
|
||||||
buf = BytesIO()
|
buf = BytesIO()
|
||||||
writer = Writer(buf, 7)
|
writer = Writer(buf, 5)
|
||||||
writer.write_tile(1, 0, 0, b"0")
|
writer.write_tile(1, 0, 0, b"0")
|
||||||
writer.write_tile(1, 0, 1, b"1")
|
writer.write_tile(1, 0, 1, b"1")
|
||||||
writer.write_tile(1, 1, 0, b"2")
|
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(2, 0, 0, b"4")
|
||||||
writer.write_tile(3, 0, 0, b"5")
|
writer.write_tile(3, 0, 0, b"5")
|
||||||
writer.write_tile(2, 0, 1, b"6")
|
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, 0), b"0")
|
||||||
self.assertEqual(reader.get(1, 0, 1), b"1")
|
self.assertEqual(reader.get(1, 0, 1), b"1")
|
||||||
self.assertEqual(reader.get(1, 1, 0), b"2")
|
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(2, 0, 0), b"4")
|
||||||
self.assertEqual(reader.get(3, 0, 0), b"5")
|
self.assertEqual(reader.get(3, 0, 0), b"5")
|
||||||
self.assertEqual(reader.get(2, 0, 1), b"6")
|
self.assertEqual(reader.get(2, 0, 1), b"6")
|
||||||
self.assertEqual(reader.get(3, 0, 2), b"7")
|
self.assertEqual(reader.get(3, 0, 2), b"7")
|
||||||
|
self.assertEqual(reader.get(1, 1, 1), None)
|
||||||
|
|||||||
Reference in New Issue
Block a user