Как стать автором
Обновить

Работа с очередями в RabbitMQ на основе EAV-модели: превращаем плоское в реалистичное

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.6K
Всего голосов 19: ↑19 и ↓0+20
Комментарии12

Комментарии 12

Мы добавили реалистичные дороги в навигатор 2ГИС.

Чтобы что? Реалистичную дорогу с реалистичными машинами я и так вижу за лобовым стеклом. А на карте навигатора я хочу видеть схематичное изображение дороги - по той же причине, по которой на дорожном знаке "обгон запрещен" рисуют схематичные плоские силуэты автомобилей, а не их реалистичное изображение в 3D.

Есть общие тренды в картографических сервисах и мы должны им следовать, чтобы продолжать отвечать запросам пользователей. А ещё мы сейчас аналитим возможность перехода на навигацию по полосам, а без реальных размеров дорог и разметки это никак не сделать.
А если вам кажется это лишним, то вы можете отключить эту функциональность прям в приложении и всё будет по старому.

Тогда почему автомобиль размером с трёхэтажный дом и занимает на дороге четыре полосы?

Сейчас это просто замена стандартного курсора. Пользователь может сменить синий треугольник на модельку, которая ему кажется более интересной. По ссылке из начала статьи можно посмотреть примеры как это может выглядеть.

Подобный сервис видел в гарминовских автонавигаторах еще в 2014-м году. Касалось это разного рода развязок - подъезжаешь к развязке и на полэкрана она рисуется в "реалистичном виде" - так, как ее видно через лобовое. С всеми знаками движения по полосам и в какой полосе тебе ехать нужно. Очень наглядно и удобно.

Работало, естсетсвенно, только с официальными картами от гармина. Если делать самому из OSM, то там такого не было.

Для хранения данных мы используем EAV-модель.

Но зачем?

Честный ответ - так исторически сложилось. И это очень удобно с точки зрения добавления новых поддерживаемых геообъектов. Но сейчас с этим есть ряд проблем от производительности до сложности запросов.

У нас в бэклоге есть задачи по переводу сущностей в реляционную структуру, думаю в обозримом будущем займемся этим.

а почему в модели кольцевая связь? ну то есть 2 пути от value до feature ??? И по какому ходить?

Между таблицами FeatureClass/Feature и FeatureAttribute/FeatureAttributeValue связь один ко многим. Через FeatureClass и FeatureAttribute добраться до конкретного значения не получится.

А ямы и колдобины на дорогах тоже будут отображаться, или где? :-D

Это был один из первых вопросов на внутренней презентации фичи :)

У нас есть наработки по распознаванию качества дорожного покрытия, работает на основе того, о чем мы писали тут https://habr.com/ru/companies/2gis/articles/457342. Так что кто знает..

Интересная статья, спасибо!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий