UI: «перекрыть» → «проверить» (рекомендации МЧС); геоформат «пункт, район, адрес»

1. Рекомендации не предписывают перекрывать водоёмы/ж/д — оператор ПРОВЕРЯЕТ
   их (правки в rules_analysis, scoring_service ×2 копии, water.py + доки).
2. Геокодирование: район нужен (дубли улиц между районами) — подсказка формата
   «пункт, район, адрес» и текст ошибки.

198 passed.
This commit is contained in:
2026-09-09 20:21:18 +03:00
parent c1bb7d5249
commit 5794cb74a9
5 changed files with 8 additions and 8 deletions
+3 -3
View File
@@ -7,8 +7,8 @@
чтобы подсветить их на карте зон поиска (SearchMap):
- водоёмы/болота: РАС water ×3.0, эпилепсия ×3.5, возраст 0–7 ×2.2–2.5,
критическое предупреждение «перекрыть ВСЕ водоёмы и ж/д»;
- ж/д пути: РАС railway ×2.5 — «немедленно перекрыть ВСЕ ж/д пути».
критическое предупреждение «проверить ВСЕ водоёмы и ж/д»;
- ж/д пути: РАС railway ×2.5 — «немедленно проверить ВСЕ ж/д пути».
Данные: OpenStreetMap, лицензия ODbL — attribution обязателен на карте.
Кэш дисковый; circuit breaker переиспользуем от geo_service, чтобы анализ
@@ -59,7 +59,7 @@ out geom;
"""
_CLASS_WARNING = 'Водоём в зоне поиска — приоритетная проверка (профиль: {profiles})'
_RAIL_WARNING = 'Ж/д пути в зоне поиска — перекрыть/проверить немедленно (профиль: {profiles})'
_RAIL_WARNING = 'Ж/д пути в зоне поиска — проверить немедленно (профиль: {profiles})'
class GeoFeature(BaseModel):
+1 -1
View File
@@ -112,7 +112,7 @@ class WeightedScorer:
'shelter': 2.0,
'settlement': 0.4,
'distance_mult': 2.0,
'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно перекрыть ВСЕ водоёмы и ж/д пути.'
'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно проверить ВСЕ водоёмы и ж/д пути.'
},
'эпилепсия': {
'water': 3.5,
@@ -44,7 +44,7 @@ const Step4Environment = ({ data, updateData }) => {
if (!hit) {
updateData({
geocode_loading: false,
geocode_error: "Адрес не найден. Уточните: «пункт, адрес» без района/области.",
geocode_error: "Адрес не найден. Уточните: пункт, район, адрес.",
});
return;
}
@@ -284,7 +284,7 @@ const Step4Environment = ({ data, updateData }) => {
)}
{!data.geocode_error && !data.geocode_found && (
<p style={{ fontSize: "12px", color: "#8b949e", marginTop: "4px" }}>
Формат «пункт, адрес» (район и область не нужны). Координаты заполнятся в поля выше.
Формат «пункт, район, адрес». Координаты заполнятся в поля выше.
</p>
)}
</div>
+1 -1
View File
@@ -90,7 +90,7 @@ def _immediate_actions(profiles: list[str]) -> list[str]:
'Опросить свидетелей в районе последнего местоположения',
]
if 'РАС' in profiles:
actions.insert(0, 'КРИТИЧНО: Перекрыть все водоёмы и ж/д пути в радиусе 5 км')
actions.insert(0, 'КРИТИЧНО: Проверить все водоёмы и ж/д пути в радиусе 5 км')
if 'велосипед' in profiles:
actions.insert(0, 'Расширить зону поиска до 10-15 км, проверить дорожные камеры')
return actions
+1 -1
View File
@@ -112,7 +112,7 @@ class WeightedScorer:
'shelter': 2.0,
'settlement': 0.4,
'distance_mult': 2.0,
'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно перекрыть ВСЕ водоёмы и ж/д пути.'
'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно проверить ВСЕ водоёмы и ж/д пути.'
},
'эпилепсия': {
'water': 3.5,