auto-sync: 2026-05-02 23:20:01
This commit is contained in:
@@ -196,15 +196,19 @@ async def get_tile(z: int, x: int, y: int):
|
||||
q_south = south - buf_y
|
||||
q_north = north + buf_y
|
||||
|
||||
# Лимиты по зуму
|
||||
if z <= 6:
|
||||
limit = 500
|
||||
elif z <= 8:
|
||||
limit = 3000
|
||||
elif z <= 10:
|
||||
limit = 8000
|
||||
# Минимальная длина трека по зуму — короткие треки не показываем на обзорных зумах.
|
||||
# Это даёт консистентную картину: трек либо виден на всех зумах >= порога, либо нет.
|
||||
# Значения подобраны эмпирически для ЦФО (~300км на z9, ~75км на z11).
|
||||
if z <= 7:
|
||||
min_length = 5000 # только треки длиннее 5 км
|
||||
elif z <= 9:
|
||||
min_length = 2000 # длиннее 2 км
|
||||
elif z <= 11:
|
||||
min_length = 500 # длиннее 500 м
|
||||
else:
|
||||
limit = 15000
|
||||
min_length = 0 # все треки
|
||||
|
||||
limit = 20000 # единый высокий лимит — фильтрация по длине важнее
|
||||
|
||||
try:
|
||||
conn = get_db()
|
||||
@@ -215,8 +219,10 @@ async def get_tile(z: int, x: int, y: int):
|
||||
FROM trails
|
||||
WHERE min_lon <= ? AND max_lon >= ?
|
||||
AND min_lat <= ? AND max_lat >= ?
|
||||
AND (length_m IS NULL OR length_m >= ?)
|
||||
ORDER BY length_m DESC
|
||||
LIMIT ?
|
||||
""", (q_east, q_west, q_north, q_south, limit))
|
||||
""", (q_east, q_west, q_north, q_south, min_length, limit))
|
||||
trails_rows = cur.fetchall()
|
||||
|
||||
cur.execute("""
|
||||
|
||||
Reference in New Issue
Block a user