fix(tradein/ui): мини-карта адреса вместо статичного фото чужого дома в шапке #2529

Merged
lekss361 merged 1 commit from fix/tradein-v2-hero-house-map into main 2026-07-26 20:15:54 +00:00
Owner

Summary

Жалоба пользователя: «панорама дома сверху справа не подсасывает вид дома».

Диагноз: панорамы там никогда не было. HeroBar.tsx:319 грузил building.pngодин и тот же файл для любого адреса, поверх него лежал синий тонирующий слой. То есть на странице оценки конкретной квартиры клиенту показывали чужой дом, и он об этом не знал. Слот под настоящий вид (streetView) существовал, но mappers.ts:823 всегда писал в него пустую строку с пометкой TODO BE-3 — бэкенд его не отдавал никогда.

Заменено на мини-карту Leaflet + OSM 560×152, отцентрованную на target_lat/target_lon оценки, с маркером дома. Карточка адреса поверх карты сохранена. Убраны декоративные слои, которые существовали только чтобы «утопить» фотографию; левый градиент оставлен — он нужен для читаемости карточки адреса.

Мёртвые поля streetView и compass удалены из ObjectInfo, mappers.ts, fixtures.ts и EMPTY_OBJECT; на их место встали lat/lon. Грепом по всему frontend/src подтверждено ноль оставшихся использований.

Почему мини-карта, а не настоящая панорама

Ресёрч по всем доступным источникам:

вариант вывод
Яндекс Панорамы функция внутри платного JS API, коммерческая лицензия от ~195 тыс. ₽/год; документация по встраиванию найдена только для версии 2.1, поддержка в v3 не подтверждена
2ГИС публичного API панорам не найдено — похоже, это фича только потребительского приложения
Google Street View покрытие Екатеринбурга изначально дырявое, обновлений после 2022 не подтверждено; плюс проблемы с оплатой из РФ
Mapillary Meta — комплаенс-риск для B2B-продукта, продаваемого застройщикам; покрытие ЕКБ не подтверждено
фото из объявлений технически идеальны (это тот самый дом), но чужой объект авторского права; есть прецедент ФАС по копированию объявлений Avito в Cian

Мини-карта показывает правильный дом, ключа не требует и переиспользует подход, уже принятый в SourcesMap.tsx. Если лицензия Яндекса будет куплена — панорама встанет ровно в этот же блок.

Test plan

  • npx tsc --noEmit — чисто
  • npm run lint — чисто по изменённым файлам
  • package.json/lock не тронуты (Leaflet как и прежде с CDN)
  • Визуал на проде после мержа: карта в блоке 152px, читаемость карточки адреса поверх неё, кликабельность атрибуции OSM
## Summary Жалоба пользователя: «панорама дома сверху справа не подсасывает вид дома». Диагноз: панорамы там никогда не было. `HeroBar.tsx:319` грузил `building.png` — **один и тот же файл для любого адреса**, поверх него лежал синий тонирующий слой. То есть на странице оценки конкретной квартиры клиенту показывали чужой дом, и он об этом не знал. Слот под настоящий вид (`streetView`) существовал, но `mappers.ts:823` всегда писал в него пустую строку с пометкой `TODO BE-3` — бэкенд его не отдавал никогда. Заменено на мини-карту Leaflet + OSM 560×152, отцентрованную на `target_lat`/`target_lon` оценки, с маркером дома. Карточка адреса поверх карты сохранена. Убраны декоративные слои, которые существовали только чтобы «утопить» фотографию; левый градиент оставлен — он нужен для читаемости карточки адреса. Мёртвые поля `streetView` и `compass` удалены из `ObjectInfo`, `mappers.ts`, `fixtures.ts` и `EMPTY_OBJECT`; на их место встали `lat`/`lon`. Грепом по всему `frontend/src` подтверждено ноль оставшихся использований. ## Почему мини-карта, а не настоящая панорама Ресёрч по всем доступным источникам: | вариант | вывод | |---|---| | Яндекс Панорамы | функция внутри платного JS API, коммерческая лицензия от ~195 тыс. ₽/год; документация по встраиванию найдена только для версии 2.1, поддержка в v3 не подтверждена | | 2ГИС | публичного API панорам не найдено — похоже, это фича только потребительского приложения | | Google Street View | покрытие Екатеринбурга изначально дырявое, обновлений после 2022 не подтверждено; плюс проблемы с оплатой из РФ | | Mapillary | Meta — комплаенс-риск для B2B-продукта, продаваемого застройщикам; покрытие ЕКБ не подтверждено | | фото из объявлений | технически идеальны (это тот самый дом), но чужой объект авторского права; есть прецедент ФАС по копированию объявлений Avito в Cian | Мини-карта показывает **правильный** дом, ключа не требует и переиспользует подход, уже принятый в `SourcesMap.tsx`. Если лицензия Яндекса будет куплена — панорама встанет ровно в этот же блок. ## Test plan - [x] `npx tsc --noEmit` — чисто - [x] `npm run lint` — чисто по изменённым файлам - [x] `package.json`/lock не тронуты (Leaflet как и прежде с CDN) - [ ] Визуал на проде после мержа: карта в блоке 152px, читаемость карточки адреса поверх неё, кликабельность атрибуции OSM
lekss361 added 1 commit 2026-07-26 20:12:28 +00:00
fix(tradein/ui): заменить статичное фото чужого дома в HeroBar на мини-карту адреса
All checks were successful
CI Trade-In / frontend-checks (pull_request) Successful in 1m13s
CI Trade-In / changes (pull_request) Successful in 10s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
90e946a0c6
Пользователь видел одну и ту же фотографию здания (building.png) для ЛЮБОГО
адреса оценки — на странице оценки конкретной квартиры показывался чужой дом,
и клиент об этом не знал. Ставим Leaflet/OSM мини-карту (560x152),
отцентрованную на target_lat/target_lon оценки, с маркером дома; карточка
адреса поверх карты сохранена.

Ресёрч альтернатив: настоящих панорам без коммерческой лицензии Яндекса
(от ~195 тыс/год) не получить, у 2ГИС публичного API панорам нет, покрытие
Google по ЕКБ дырявое и не обновлялось с 2022, Mapillary — комплаенс-риск
для B2B. Фото из объявлений юридически небезопасны (прецедент ФАС Avito/Cian).

Заодно убраны мёртвые слоты streetView/compass — backend их никогда не
отдавал (TODO BE-3), грепом подтверждено 0 оставшихся использований.
lekss361 merged commit 06bf8dfada into main 2026-07-26 20:15:54 +00:00
lekss361 deleted branch fix/tradein-v2-hero-house-map 2026-07-26 20:15:55 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2529
No description provided.