Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Десктоп разработчик, Бэкенд разработчик
Ведущий
От 370 000 ₽
Git
C++
ООП
Linux
Английский язык
Алгоритмы и структуры данных
C
C++ stl
Оптимизация кода
Системное программирование
Архитектура разделена на два слоя:
Рендеринг (MapLibre Native):
Векторные тайлы с встроенным LOD и frustum culling
Масштаб 1:1000000 — стандартный кейс для тайловых движков, грузятся только видимые тайлы z-уровня
Улицы приходят из vector tiles (OSM/MapTiler), не из H3
Геоиндексация (H3):
Иерархическая сетка, 16 резолюций (0-15), апертура 7
Индекс = uint64 (8 байт), ячейки не хранятся — вычисляются через
latLngToCell()Переход между масштабами:
cellToParent()/cellToChildren()за O(1)Viewport 512×512 при res 9 ≈ 2000-5000 ячеек = ~40 КБ на индексы
Граф для A*:
Строится лениво для видимой области + буфер
gridDisk()для соседей — O(k) где k = количество соседей (6-7)При zoom меняется resolution → граф пересчитывается для нового LOD
Воксели/AABB не нужны — H3 уже даёт иерархию с гарантированной вложенностью parent→children. Это по сути discrete global grid system (DGGS).
Да, спасибо, Вы правы!
Самое удобное что интеграция карт в приложение проста, на работе разрабатывал приложение с довольно большим числом объектов динамически перемещающиеся на карте(вся математика как и тут в c++, графика qml), был стабильный fps 60 и нагрузка на CPU меньше 0.4% на 4 летнем i7.