-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Сделать ручку PUT /projects/{id}/extend
Что нужно сделать
Догенерация изолиний, если пользователь вышел за пределы.
Базовое описание
Запрос:
{
"bbox": [minLon, minLat, maxLon, maxLat]
}
Ответ: обновлённый список полигонов, добавленные уровни/части.
Логика работы
1. Проверить, пересекается ли запрошенный bbox с project.bbox.
3. Если полностью внутри → вернуть существующие полигоны (ничего не создаём).
4. Если частично/полностью вне → • Определить «недостающую» область missing = bbox - project.bbox; • Сгенерировать дополнительный набор полигонов внутри missing (IsolineGeneratorService); • В транзакции: insert в isolines, обновить project.bbox = ST_Envelope(ST_Union(old_bbox, missing)); • Вернуть новые + прежние полигоны.-- Прочая информация: в будущем можно заменить случайную генерацию на алгоритм на основе рельефа/доступности.