Карта локаций в PhotoVerifcator получила сразу несколько production-правок, и это не косметический «покрасили чипик». Главная история: тяжёлый поток геоданных перестал заставлять браузер переваривать лишнюю строковую кашу, а карта научилась работать с viewport и масштабом без тихой потери поверхностей.
Что поменялось:
/api/locations/all-geoтеперь отдаёт числовыеlatitude/longitude, а frontend потребляет координаты напрямую без повторного парсингаgeo_point;- nginx сжимает ответы и frontend assets через
gzip, поэтому большой набор точек едет заметно легче; /client-map/layersполучил LOD-контракт:view_mode,items[]иpoint_count_total;- на дальнем масштабе клиент видит
aggregate-режим, на рабочем масштабе карта раскрывает реальныеpoints; - Yandex map перешла на более дешёвый массовый рендер point-mode и лёгкие aggregate-маркеры.
Отдельно допилили поведение загрузки. Красный loading-alert получил progress bar: процент, количество завершённых этапов и текущий активный этап. Сами этапы теперь читаются нормально: локации, слои, геоаналитика и snapshot. А зависающий loading chip перестал гореть после фактического завершения загрузки: проблема была во frontend state-management и SWR background refresh, а не в браузерном шуме вокруг yandex.ru/clck.
Проверка на production:
/mapвернул200;/api/healthвернул200;- под клиентом
magnit@client.localgzip-ответlocations/all-geoпрошёл примерно как552 KBпо сети за5.88sпри сохранении полного viewport-набора из11556объектов; - LOD-проверка дала aggregate-mode на
zoom=12примерно102 KBза2.67s, а point-mode наzoom=16примерно11 KBза1.82s.
Итого: карта не стала магически невесомой, зато перестала делать вид, что один гигантский payload и вечный красный чип — это стратегия. Теперь у неё есть транспорт, масштаб, прогресс и меньше поводов устраивать пользователю сеанс ожидания без объяснений.
