Заменяет straight-line ST_Distance в POI-скоринге /analyze реальным дорожным расстоянием центроид→POI из локального OSRM (/table GET с annotations=distance → метры), за флагом use_osrm_distances. Флаг default OFF → деплой поведенчески-нейтрален: при OFF OSRM не дёргается вообще, /analyze байт-в-байт как сегодня. Включение сдвигает все POI-score на ~20-30% (дорога длиннее прямой) — осознанное позднее решение после валидации, НЕ этот PR. Graceful fallback: любой сбой OSRM (HTTP / timeout / code!=Ok / битая форма) → OsrmLocalUnavailableError → straight-line по всем POI, /analyze НЕ падает в 500. Недостижимый POI (null от OSRM) → сохраняет straight-line. Покрыто и для OSM POI (osm_poi_ekb), и для custom POI (user_custom_pois). Refs #39 |
||
|---|---|---|
| .. | ||
| analysis_runs | ||
| analytics | ||
| cadastre | ||
| chat | ||
| etl | ||
| exporters | ||
| forecasting | ||
| generative | ||
| llm | ||
| photos | ||
| scrapers | ||
| site_finder | ||
| __init__.py | ||
| analytics_queries.py | ||
| analytics_refresh.py | ||
| forecast_request_cache.py | ||
| insights.py | ||
| job_settings.py | ||
| objective_etl.py | ||
| objective_sync_config.py | ||
| own_projects.py | ||
| weather_cache.py | ||