Round-3 task ONE (был разобран, но не внедрён — попап показывал «шляпу»). OSM-попап: вместо сырого «Тип: power=substation» — человеческая подпись (humanOsmType по source_tag: power=substation→Электроподстанция, power=tower→ Опора ЛЭП, power=line→ЛЭП, man_made=water_tower→Водонапорная башня и т.д.; pipeline/tower уточняются по виду ресурса). Неизвестный тег → строку «Тип» не показываем (без сырого кода). НСПД-точки подключения: реальные атрибуты дампа cat 36328 лежат в props["options"] (params_name с напряжением/типом «КЛ 10кВ ТП…», params_purpose, object_type_value, адрес, год/протяжённость/собственность), а _get_engineering_structures_by_boundary читал НЕсуществующие top-level ключи → попап показывал «Объект». Теперь читаем options.* + собираем строку характеристик (год · протяжённость · собственность). EngineeringStructure получает additive-поле characteristics (api-types регенерирован, @/types/nspd зеркалит). НСПД-попап показывает имя/назначение/характеристики/адрес. Тесты: humanOsmType (5 кейсов) + _clean_struct_str/_build_structure_characteristics (3). |
||
|---|---|---|
| .. | ||
| 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 | ||