Skip to content

Commit 08ae7f7

Browse files
committed
Do not recurse on tile limiting
1 parent 29e0f2e commit 08ae7f7

1 file changed

Lines changed: 9 additions & 13 deletions

File tree

pygeoapi_plugins/provider/mvt_postgresql.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -197,22 +197,18 @@ def get_tiles(
197197
)
198198

199199
matched = session.query(func.count(mvt_cte)).scalar()
200-
i_size = int(
201-
matched - matched * (self.tile_size / result_size)
202-
)
200+
new_limit = int(matched * (self.tile_size / result_size))
203201

204-
while self.tile_size < result_size:
205-
matched -= i_size
206-
new_mvt_cte = self._get_mvt_cte(
207-
envelope, envelope_srid, z, matched)
202+
new_mvt_cte = self._get_mvt_cte(
203+
envelope, envelope_srid, z, new_limit)
208204

209-
new_mvt_query = select(ST_AsMVT(new_mvt_cte, self.layer))
210-
new_result = session.execute(new_mvt_query).scalar()
211-
if new_result is None:
212-
return
205+
new_mvt_query = select(ST_AsMVT(new_mvt_cte, self.layer))
206+
new_result = session.execute(new_mvt_query).scalar()
207+
if new_result is None:
208+
return
213209

214-
result_bytes = bytes(new_result)
215-
result_size = len(result_bytes)
210+
result_bytes = bytes(new_result)
211+
result_size = len(result_bytes)
216212

217213
LOGGER.debug(f'Returning tile of size: {human_size(result_size)}')
218214
return result_bytes

0 commit comments

Comments
 (0)