UI: «перекрыть» → «проверить» (рекомендации МЧС); геоформат «пункт, район, адрес»
1. Рекомендации не предписывают перекрывать водоёмы/ж/д — оператор ПРОВЕРЯЕТ их (правки в rules_analysis, scoring_service ×2 копии, water.py + доки). 2. Геокодирование: район нужен (дубли улиц между районами) — подсказка формата «пункт, район, адрес» и текст ошибки. 198 passed.
This commit is contained in:
@@ -7,8 +7,8 @@
|
|||||||
чтобы подсветить их на карте зон поиска (SearchMap):
|
чтобы подсветить их на карте зон поиска (SearchMap):
|
||||||
|
|
||||||
- водоёмы/болота: РАС water ×3.0, эпилепсия ×3.5, возраст 0–7 ×2.2–2.5,
|
- водоёмы/болота: РАС water ×3.0, эпилепсия ×3.5, возраст 0–7 ×2.2–2.5,
|
||||||
критическое предупреждение «перекрыть ВСЕ водоёмы и ж/д»;
|
критическое предупреждение «проверить ВСЕ водоёмы и ж/д»;
|
||||||
- ж/д пути: РАС railway ×2.5 — «немедленно перекрыть ВСЕ ж/д пути».
|
- ж/д пути: РАС railway ×2.5 — «немедленно проверить ВСЕ ж/д пути».
|
||||||
|
|
||||||
Данные: OpenStreetMap, лицензия ODbL — attribution обязателен на карте.
|
Данные: OpenStreetMap, лицензия ODbL — attribution обязателен на карте.
|
||||||
Кэш дисковый; circuit breaker переиспользуем от geo_service, чтобы анализ
|
Кэш дисковый; circuit breaker переиспользуем от geo_service, чтобы анализ
|
||||||
@@ -59,7 +59,7 @@ out geom;
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
_CLASS_WARNING = 'Водоём в зоне поиска — приоритетная проверка (профиль: {profiles})'
|
_CLASS_WARNING = 'Водоём в зоне поиска — приоритетная проверка (профиль: {profiles})'
|
||||||
_RAIL_WARNING = 'Ж/д пути в зоне поиска — перекрыть/проверить немедленно (профиль: {profiles})'
|
_RAIL_WARNING = 'Ж/д пути в зоне поиска — проверить немедленно (профиль: {profiles})'
|
||||||
|
|
||||||
|
|
||||||
class GeoFeature(BaseModel):
|
class GeoFeature(BaseModel):
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ class WeightedScorer:
|
|||||||
'shelter': 2.0,
|
'shelter': 2.0,
|
||||||
'settlement': 0.4,
|
'settlement': 0.4,
|
||||||
'distance_mult': 2.0,
|
'distance_mult': 2.0,
|
||||||
'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно перекрыть ВСЕ водоёмы и ж/д пути.'
|
'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно проверить ВСЕ водоёмы и ж/д пути.'
|
||||||
},
|
},
|
||||||
'эпилепсия': {
|
'эпилепсия': {
|
||||||
'water': 3.5,
|
'water': 3.5,
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ const Step4Environment = ({ data, updateData }) => {
|
|||||||
if (!hit) {
|
if (!hit) {
|
||||||
updateData({
|
updateData({
|
||||||
geocode_loading: false,
|
geocode_loading: false,
|
||||||
geocode_error: "Адрес не найден. Уточните: «пункт, адрес» без района/области.",
|
geocode_error: "Адрес не найден. Уточните: пункт, район, адрес.",
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -284,7 +284,7 @@ const Step4Environment = ({ data, updateData }) => {
|
|||||||
)}
|
)}
|
||||||
{!data.geocode_error && !data.geocode_found && (
|
{!data.geocode_error && !data.geocode_found && (
|
||||||
<p style={{ fontSize: "12px", color: "#8b949e", marginTop: "4px" }}>
|
<p style={{ fontSize: "12px", color: "#8b949e", marginTop: "4px" }}>
|
||||||
Формат «пункт, адрес» (район и область не нужны). Координаты заполнятся в поля выше.
|
Формат «пункт, район, адрес». Координаты заполнятся в поля выше.
|
||||||
</p>
|
</p>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ def _immediate_actions(profiles: list[str]) -> list[str]:
|
|||||||
'Опросить свидетелей в районе последнего местоположения',
|
'Опросить свидетелей в районе последнего местоположения',
|
||||||
]
|
]
|
||||||
if 'РАС' in profiles:
|
if 'РАС' in profiles:
|
||||||
actions.insert(0, 'КРИТИЧНО: Перекрыть все водоёмы и ж/д пути в радиусе 5 км')
|
actions.insert(0, 'КРИТИЧНО: Проверить все водоёмы и ж/д пути в радиусе 5 км')
|
||||||
if 'велосипед' in profiles:
|
if 'велосипед' in profiles:
|
||||||
actions.insert(0, 'Расширить зону поиска до 10-15 км, проверить дорожные камеры')
|
actions.insert(0, 'Расширить зону поиска до 10-15 км, проверить дорожные камеры')
|
||||||
return actions
|
return actions
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ class WeightedScorer:
|
|||||||
'shelter': 2.0,
|
'shelter': 2.0,
|
||||||
'settlement': 0.4,
|
'settlement': 0.4,
|
||||||
'distance_mult': 2.0,
|
'distance_mult': 2.0,
|
||||||
'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно перекрыть ВСЕ водоёмы и ж/д пути.'
|
'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно проверить ВСЕ водоёмы и ж/д пути.'
|
||||||
},
|
},
|
||||||
'эпилепсия': {
|
'эпилепсия': {
|
||||||
'water': 3.5,
|
'water': 3.5,
|
||||||
|
|||||||
Reference in New Issue
Block a user