feat(tiles): add LRU-cached tile endpoint with zoom-based geometry simplification

- /api/tiles/tracks/<z>/<x>/<y>.geojson — GeoJSON tile endpoint для MapLibre
- LRU-кэш тайлов по ключу (z, x, y) с лимитом 512 тайлов
- Упрощение геометрии треков через Shapely.simplify по зуму:
  - z < 5: tol=0.08 (очень сильное ~95% reduction)
  - z 5-6: tol=0.01-0.04
  - z 7-9: tol=0.002-0.004 (умеренное)
  - z >= 10: tol=0.0005 (почти как есть)
- Отдельный кэш упрощения по (z, track_id) на 4096 записей
- Cache-Control: public, max-age=3600 для HTTP-кэширования
- Gzip-сжатие ответов
- Удалены неиспользуемые импорты (shapely.ops.transform, shapely.wkt)
This commit is contained in:
Stream
2026-05-03 04:52:06 +00:00
parent 6fc5c8cf36
commit d5ec250c97

View File

@@ -27,8 +27,6 @@ import psycopg2.extras
from flask import Flask, jsonify, render_template_string, request, send_from_directory, Response
from dotenv import load_dotenv
from shapely.geometry import LineString
from shapely.ops import transform
from shapely import wkt
from noise_model import process_flight_for_map, get_noise_config, calc_zone_radii_for_point
from density_model import compute_density