BRD Mobile 2.3.2 Отображение на карте
Направление работ: Mobile
Код раздела: 2.3.2
Раздел: Поиск > Список вариантов > Отображение на карте
Статус: черновик
Ответственный: Панкова Л.А.
Версия: 0.1
Обновлено: 20.07.26
1. Назначение
Раздел описывает отображение результатов поиска площадок на карте мобильного приложения.
Пользовательская цель - найти подходящую площадку на карте и перейти к ее карточке.
2. Ключевые понятия
Отображение на карте - экран результатов поиска, на котором объекты партнеров и их площадки представлены маркерами на карте и карточками в нижней панели.
Объект партнера - сущность, которая объединяет площадки партнера по местоположению и другим общим данным.
Площадка партнера - помещение, привязанное к объекту партнера, на которое пользователь может оформить заказ.
Сгруппированный маркер - маркер на карте, который объединяет несколько объектов в одной точке и показывает их количество.
3. Scope
Входит
S1: Отображение результата поиска на карте и переходы к другим шагам
S2: Отображение группы объектов на карте
S3: Отображение объекта на карте
S4: Состояние загрузки
Не входит
- Mobile 2.2 Поиск > Параметры поиска.
- Mobile 2.3.1 Поиск > Список вариантов > Фильтрация списка.
- услуге.
4. BR
Указаны в пункте 4 разделов Back 2.1 Объекты партнеров, Back 2.2 Площадки партнеров и Back 2.6 Цены.
5. Функциональные требования (UC + FR)
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: FR2.3.2-1 | Пользователь открывает результаты поиска на карте. | Интерфейс открывает экран отображения на карте и показывает найденные объекты одиночными и сгруппированными маркерами. На экране отображаются кнопка возврата на предыдущий экран, поле поиска “Название или метро”, кнопка перехода к фильтрации и элементы увеличения и уменьшения масштаба карты. | 1 | Частично OQ2.3.2-1 | |
| S1: FR2.3.2-2 | Пользователь открыл карту без выбранной даты и времени. | Интерфейс отображает действие “Выбрать дату”, а цены объектов и площадок - в формате “От N ₽“. | 1 | Не реализовано OQ2.3.2-2 | |
| S1: FR2.3.2-3 | Пользователь открыл карту с выбранными датой, временем и опциями. | Интерфейс отображает активные параметры поиска тегами над картой, а для объектов и площадок показывает фиксированные цены. | 1 | Не реализовано OQ2.3.2-2 | |
| S1: FR2.3.2-4 | Пользователь ищет объект по названию или метро. | Интерфейс позволяет выполнить поиск через поле “Название или метро” и обновляет результаты на карте в соответствии с введенным значением. | 1 | Не реализовано OQ2.3.2-1 | |
| S1: FR2.3.2-5 | Пользователь меняет дату или опции поиска. | Интерфейс открывает раздел Mobile 2.2 “Параметры поиска” поверх карты и после применения параметров обновляет результаты и теги над картой. | 1 | Не реализовано OQ2.3.2-3 | |
| S1: FR2.3.2-6 | Пользователь переходит к фильтрации результатов. | Интерфейс открывает раздел Mobile 2.3.1 “Фильтрация списка”. | 1 | Реализовано OQ2.3.2-8 | |
| S1: FR2.3.2-7 | Пользователь управляет областью просмотра карты. | Интерфейс позволяет изменить масштаб карты и перейти к текущему местоположению пользователя. | 2 | Реализовано OQ2.3.2-8 | |
| S2: FR2.3.2-8 | Несколько объектов находятся в одной точке карты. | Интерфейс объединяет объекты в сгруппированный маркер и отображает на нем количество объектов. | 1 | Реализовано OQ2.3.2-8 | |
| S2: FR2.3.2-9 | Пользователь выбирает сгруппированный маркер. | Интерфейс открывает под картой нижнюю панель с количеством найденных объектов и списком их карточек. Карточка объекта содержит фото, название, цену, рейтинг, количество оценок, диапазон площади, расстояние, количество площадок, условие предоплаты и информацию о лимите оплаты M-баллами. | 1 | Частично OQ2.3.2-4 | |
| S2: FR2.3.2-10 | Пользователь раскрывает объект в списке группы. | Интерфейс раскрывает внутри карточки объекта блок “Площадки” и отображает карточки его площадок с фото, названием, объектом, площадью, рейтингом, ценой и информацией о лимите оплаты M-баллами. Если для площадки действует скидка, интерфейс отображает цену до и после применения скидки. | 1 | Частично OQ2.3.2-5 | |
| S3: FR2.3.2-11 | Пользователь выбирает одиночный маркер объекта. | Интерфейс открывает под картой нижнюю панель с карточкой выбранного объекта и блоком “Площадки” со списком связанных площадок. | 1 | Реализовано OQ2.3.2-9 | |
| S3: FR2.3.2-12 | Пользователь выбирает площадку в нижней панели. | Интерфейс открывает раздел услуге” для выбранной площадки. | 1 | Реализовано OQ2.3.2-9 | |
| S4: FR2.3.2-13 | Выполняется загрузка объектов для выбранной точки карты. | Интерфейс открывает нижнюю панель и отображает плейсхолдеры карточек объектов до получения списка объектов. | 1 | Не реализовано OQ2.3.2-6 | |
| S4: FR2.3.2-14 | Объекты загружены, выполняется загрузка площадок выбранного объекта. | Интерфейс сохраняет загруженные данные объекта и отображает плейсхолдеры карточек площадок в блоке “Площадки” до получения списка площадок. | 1 | — OQ2.3.2-6 |
6. Открытые вопросы
Сверка с кодом: BRD 2.3.2 v0.1 · репозиторий
booking.mobile.flutter· commit89ca502/dev· 26.07.26 · якорьlib/src/feature/map_searchСводка: 9 вопросов (Open 7 · Подтверждено 2) Маршрутизация без сверки с гайдбуком (гайдбук не передавался).
| ID | Источник | Вопрос | Кому | Статус | Рекомендации | Итоговое решение |
|---|---|---|---|---|---|---|
| OQ2.3.2-1 | Код FR2.3.2-4, FR2.3.2-1 | Требование говорит: на карте есть поле «Название или метро», и ввод в него обновляет результаты. В коде поле поиска нарисовано, но не работает: при вводе отправляется только событие аналитики, а рядом стоит авторский комментарий «функциональность поиска можно добавить здесь, если понадобится». Текст-подсказка — «Поиск», а не «Название или метро». Контроллер поля создаётся и очищается, но к самому полю не подключён, поэтому введённое значение никуда не попадает и результаты на карте не меняются. \ map_search_screen.dart:453-476 (поле и заглушка вместо поиска), :82 и :92 (неподключённый контроллер) | Разработка | Open | Завести тикет в Bitrix: подключить поле к поиску по названию и метро и поправить подсказку. Продуктового выбора нет — поле уже показано пользователю и создаёт ложное ожидание. Уточнить у разработки, есть ли готовый метод поиска по названию/метро в репозитории площадок: если да, работа сводится к подключению. | подключить поле к поиску по названию и метро и поправить подсказку. |
| OQ2.3.2-2 | Код FR2.3.2-2, FR2.3.2-3 | Требование говорит: без выбранной даты карта показывает действие «Выбрать дату» и цены в формате «От N ₽», а с выбранными параметрами — теги активных параметров над картой и фиксированные цены. В коде ни того, ни другого нет: над картой только кнопка «назад», поле поиска и кнопка фильтра — ни кнопки выбора даты, ни тегов параметров. Цена всегда считается одинаково — как диапазон по площадкам объекта: «12000₽», если цены совпали, иначе «12000-18000₽». Формата «От N ₽» в коде нет вовсе, различий между «дата выбрана» и «дата не выбрана» в отображении цены тоже нет. \ map_search_screen.dart:408-420 (состав верхней панели), :1631-1643 (расчёт цены) | Бизнес | Open | (А) Подтвердить требование (рекоменд.): различать состояния «дата выбрана / не выбрана» — это влияет на доверие к цене, пользователь должен понимать, что «12000₽» без даты — это ориентир, а не цена его заказа. Тогда работа делится на два тикета: теги параметров и формат цены. (Б) Если решено оставить единый формат — переписать FR2.3.2-2 и FR2.3.2-3 под фактическое поведение. Вопрос лучше решать вместе с Mobile 2.2 Параметры поиска — там же живёт выбор даты. | Вопрос к бизнесу, чтобы это релизовать надо делать еще как минимум 2 апи чисто для карт. |
| OQ2.3.2-3 | Код FR2.3.2-5 | Требование говорит: с карты открывается раздел «Параметры поиска» (дата, время, опции), и после применения обновляются результаты и теги. В коде с карты открывается только модальное окно фильтрации (Mobile 2.3.1); экрана параметров поиска с карты не открыть — дату и опции можно поменять только вернувшись на предыдущий экран. Параметры поиска при этом читаются (из хранилища и из состояния приложения) и участвуют в запросе точек, но изменить их прямо на карте нельзя. \ map_search_screen.dart:478-499 (единственная кнопка — фильтр), :500-560 (открывается модалка фильтрации), :158-170 (параметры только читаются) | Бизнес | Open | (А) Подтвердить требование — тогда доработка: открывать параметры поиска поверх карты и перезапрашивать точки после применения. (Б) Признать текущий сценарий достаточным (пользователь возвращается назад и меняет параметры там) и снять FR2.3.2-5. Решение связано с OQ2.3.2-2: теги над картой имеют смысл только если параметры можно менять не уходя с карты. | Признать текущий сценарий достаточным (пользователь возвращается назад и меняет параметры там) |
| OQ2.3.2-4 | Код FR2.3.2-9 | Требование говорит: карточка объекта в нижней панели содержит фото, название, цену, рейтинг, количество оценок, диапазон площади, расстояние, количество площадок, условие предоплаты и информацию о лимите оплаты М-баллами. В коде все эти данные выводятся, но два элемента сделаны небрежно. (1) Лимит М-баллов берётся у первой площадки объекта и показывается как характеристика всего объекта: если у площадок объекта разные лимиты, значок покажет чужой процент. (2) Условие предоплаты выводится голым числом с процентом («30%») сразу после «N площадок», без подписи, поэтому в строке «1.2км, 5 площадок, 30%» непонятно, что означает последнее число. \ map_search_screen.dart:724-775 (лимит М-баллов от первой площадки), :837-865 (расстояние, количество площадок и предоплата одной строкой) | Разработка | Open | Завести тикет в Bitrix: (1) показывать лимит М-баллов по объекту — либо максимум по площадкам, либо диапазон, решение согласовать с бизнесом, если максимум неочевиден; (2) добавить подпись к проценту предоплаты. Второй пункт — чистый дефект отображения, первый может потребовать ответа бизнеса, но текущее поведение (значение случайной площадки) неверно в любом случае. | поправить баг |
| OQ2.3.2-5 | Код FR2.3.2-10 | Требование говорит: карточка площадки в блоке «Площадки» содержит фото, название, объект, площадь, рейтинг, цену и информацию о лимите оплаты М-баллами, а при действующей скидке — цену до и после её применения. В коде выводятся только фото, название, площадь, рейтинг и цена. Отсутствуют: название объекта, лимит М-баллов и отображение скидки — цена всегда одна, «12000₽», перечёркнутой цены до скидки в карточке нет. \ map_search_screen.dart:1002-1081 (полный состав карточки площадки) | Разработка | Open | Завести тикет в Bitrix: дополнить карточку площадки недостающими элементами. По скидке уточнить у разработки, приходит ли в модели площадки цена до скидки: если приходит только итоговая, задача расширяется до правки контракта, и её стоит оценивать отдельно. Название объекта в этом контексте, возможно, избыточно (карточки и так вложены в карточку объекта) — этот пункт стоит подтвердить у бизнеса перед реализацией. | поправить надо в коде |
| OQ2.3.2-6 | Код FR2.3.2-13, FR2.3.2-14 | Требование говорит: пока грузятся объекты, в нижней панели показываются плейсхолдеры их карточек; когда объекты загружены и грузятся площадки — плейсхолдеры карточек площадок в блоке «Площадки». В коде плейсхолдеров карточек нет: на время загрузки поверх карты показывается одна общая анимация ожидания. Второй сценарий вообще не может возникнуть: площадки приходят вместе с объектом одним ответом и лежат внутри его модели, отдельной загрузки площадок нет — поэтому у FR2.3.2-14 статус «—», а не «Не реализовано». \ map_search_screen.dart:1514 (общая анимация загрузки), :666 и :928 (площадки уже внутри объекта) | Бизнес | Open | (А) Подтвердить требование по объектам (рекоменд.) — заменить общую анимацию на плейсхолдеры карточек: панель открывается сразу, и пользователь видит, что список грузится, а не пустой экран. (Б) Признать общую анимацию достаточной и снять FR2.3.2-13. FR2.3.2-14 в любом случае стоит переписать или удалить: он описывает двухэтапную загрузку, которой в приложении нет. | Признать общую анимацию достаточной и снять FR2.3.2-13 |
| OQ2.3.2-7 | Код вне BRD | Что нашли: два обстоятельства, которых нет в BRD. (1) Карта построена на OpenStreetMap с тайлами CARTO (в правом нижнем углу — обязательная подпись об авторских правах), а не на Яндекс- или Google-картах; масштаб ограничен диапазоном 3–19, стартовая точка — центр Москвы. (2) При переходе из карточки площадки в раздел «Информация о площадке/услуге» модель площадки собирается на месте, и часть полей заполняется пустыми значениями — например, адрес передаётся пустой строкой, а признак наличия оборудования — «нет», независимо от реальных данных. \ map_search_screen.dart:1426-1429 и :1483-1500 (карта и подпись), :1416-1417 (границы масштаба), :38-41 (стартовая точка), :975-1000 (сборка модели площадки) | Разработка | Open | По картам — вопрос информационный: если выбор провайдера согласован, достаточно упомянуть его в BRD, потому что от него зависят и внешний вид, и лицензионная подпись. По второму пункту — завести тикет в Bitrix: проверить, не показывает ли раздел 2.4 пустой адрес и «нет оборудования» при переходе именно с карты. Это проверяется на стенде за пару минут и, если подтвердится, чинится передачей полной модели площадки. | не баг |
| OQ2.3.2-8 | Код FR2.3.2-6, FR2.3.2-7, FR2.3.2-8 | Что подтверждено: переход к фильтрации открывает модальное окно фильтров и после применения перезапрашивает точки; управление картой работает — кнопки увеличения и уменьшения масштаба, кнопка перехода к своему местоположению, а также жесты (щипок, перетаскивание, двойное касание); положение пользователя отслеживается и показывается отдельным маркером. Объекты в одной точке объединяются в сгруппированный маркер с числом внутри. \ map_search_screen.dart:500-560 (фильтрация), :1501-1512 (кнопки масштаба и местоположения), :1419-1423 (жесты), :141-155 и :1431-1447 (местоположение), :1449-1478 (группировка с количеством) | — | Подтверждено | Расхождения нет. | — |
| OQ2.3.2-9 | Код FR2.3.2-11, FR2.3.2-12 | Что подтверждено: выбор одиночного маркера открывает нижнюю панель с карточкой этого объекта, внутри которой раскрывается блок «Площадки (N)» со списком связанных площадок; выбор сгруппированного маркера открывает панель со списком объектов группы. Нажатие на площадку открывает раздел Mobile 2.4 для выбранной площадки. \ map_search_screen.dart:308 (панель для одного объекта), :296 и :1275 (панель для группы), :911-930 (блок «Площадки»), :989-1001 (переход в 2.4) | — | Подтверждено | Расхождения нет. | — |