12.11.2022

Карты IV поколения или Глобальное обновление: часть вторая.

«Окей, Google, скачать исходники движка гугл карт онлнайн без платно и смс»

— Какой-то дебил — Виктор Олег, 2018 год

Визуально старая и новая версии «стандартного» слоя практически не отличаются друг от друга, но похожи они лишь внешне, принцип их работы, в каком-то смысле, противоположный. В первом случае используются заранее сгенерированные растровые «плиток», во втором — векторные.

Какие-то основы какого-то чего-то… Введение что ли?

Большинство интерактивных карт [реального мира] используют «плитки» для загрузки небольших порций данных. Эти плитки могут быть как растровыми, так и векторными. Под первыми подразумеваются небольшие квадратные изображения (обычно 256х256 px), например, в формате PNG, которые заранее генерируются исходя из имеющихся картографических данных. При этом, стиль таких «плиток» строго определен, это, всё-таки, просто картинка, и чтоб изменить стиль, нужно полностью перегенерировать карту.

Векторные «плитки» имеют аналогичное разрешение, однако, вместо картинки, с их помощью передаются данные об объектах, входящих в эту «плитку» (координаты и теги). Генерация таких плиток представляет собой лишь разрезание данных карты на «плитки» и упаковку в специальный формат, что занимает гораздо меньше времени, ведь рендера карты на этом этапе не происходит. Сам же рендер выполняется браузером пользователя (к слову, намного быстрее, чем рендер растровых «плиток»), отсюда появляется и гибкость настройки стилей для подобных карт: пользователю отправляется «нарезанная» карта и правила для её рендера. Нужно изменить стиль? Достаточно просто отправить пользователю новые правила.

Технология векторных «плиток» используются, например, на Яндекс.Картах, 2GIS и GoogleMaps. А вскоре и на OpenProvinceMap!

Преимущества векторных плиток

Все вышеперечисленное, но в виде списка, чтобы растянуть текст.

К одним из главных преимуществ можно отнести быстроту создания векторных «плиток», что позволяет чаще обновлять карту и поддерживать её визуальную часть в актуальном состоянии.

Сейчас на OpenProvinceMap используется три растровых стиля (читай, три растровые карты), рендер которых суммарно может занимать до 18-20 часов, из-за чего дополнительные стили обновляются крайне редко (год их генерации указан внизу страницы). Стиль векторных «плиток» задаётся правилами, которые передаются пользователю отдельно от «плиток», благодаря этому можно создавать n-ное количество стилей с актуальными данными и решить проблему неактуальности дополнительных слоёв.

Плавность и высокое качество векторных карт.
При приближении карты размер отображаемых на экране иконок и надписей остается постоянным (если иное не задано правилами).
При масштабировании векторные «плитки» практически не теряют своего качества. В случае плохого (или отсутствующего) интернета загруженную, к примеру, карту 13-го уровня масштаба, можно увеличить (приблизить) в несколько раз, прежде чем появятся дефекты (правда, при этом не будут грузиться названия дорог и точек, но это уже другая история…). Высокое качество самих карт более заметно с телефона**.

Возможность вращать* карту в любую сторону.
Карту можно повернуть в любую сторону. Даже если карту повернуть на 180, текст и иконки не будут отображаться вверх-ногами. Также карту можно рассматривать под некоторым углом к горизонту. Бесполезная, однако, функция. Разве что посмотреть на 3D-здания, которых нет.
___
* из-за ограничений используемого сейчас движка данная возможность отсутствует.

** При отображении карты на телефонах, растровые плитки [зачем-то] увеличиваются приблизительно в 2 раза, поэтому карта с телефона выглядит «мыльной». У векторных плиток такой проблемы нет, они сохраняют своё качество при увеличении.
Сейчас в мобильной версии вместо одной плитки 15-го масштаба отображаются четыре плитки 16-го, что убирает «размыленность», но уменьшает размер текста на карте в 2 раза.
Взаимодействие с картой через телефон.

Что будет с растровой картой?

Поддержка растрового слоя «Стандартный» прекращена не будет. Растровую карту OPM используют и другие внутриигровые компании: карта используется в боте ТБРУ, приложении «РИС», на сайте такси Uber, в некоторых статьях на ProvincePedia и т.д, поэтому прекращение поддержки нецелесообразно. К тому же, этот слой останется в качестве альтернативы, если векторная карта по каким-то причинам не загружается или имеет плохую производительность. Но обновления он будет получать реже. Транспортный же слой, вероятнее всего, будет удален и заменен на стиль для векторной карты.

Мне платят за количество заголовков…спасите….

Фактически, это карты IV поколения (III поколение — растровые «плитки»). Точной даты релиза нет, возможно, это произойдёт после перехода на новый движок, поддерживающий поворот карты и 3D–объекты, возможно, раньше. В настоящий момент ранний доступ к векторной карте на старом движке предоставлен пользователям с подпиской VK Donut (фега, эта статья это просто большая реклама подписки).

Цель создания векторных карт, похожих на гугл/яндекс была поставлена практически с самого создания сайта, с 2018 года, и, наконец, была достигнута. Спустя 4 года…

Дальше что, темная тема на карте?

Рандомные скрины с экспериментов…

3D-здания с отступом снизу.
Жаль, реальных 3D-объектов на карте не будет, поэтому Мирный-Сити будет выглядеть как куча высоких коробок.