Web Mercator (EPSG:3857) — стандартная картографическая проекция, лежащая в основе большинства веб-картографических систем, включая MapLibre GL JS. Её ключевая задача — преобразование сферических координат Земли (широта/долгота) в двумерное плоское пространство, пригодное для отрисовки на экране.
В основе лежит цилиндрическая проекция Меркатора, адаптированная для веба. Земля аппроксимируется сферой, а координаты преобразуются так, чтобы углы сохранялись (конформность), что критически важно для навигации и интерактивных карт.
Ключевая особенность: Web Mercator не сохраняет площади и сильно искажает размеры объектов при удалении от экватора, но обеспечивает стабильную визуальную навигацию и совместимость между слоями данных.
Преобразование из географических координат (λ, φ) в Web Mercator осуществляется по формулам:
Идея заключается в переводе угловых координат в метрическую систему, где единицей измерения становится «псевдометр» на сфере радиуса Земли.
Особенности преобразования широты:
Это ограничение связано с тем, что при приближении к полюсам значение функции стремится к бесконечности.
Причины доминирования Web Mercator:
1. Простота тайлинга Карта легко разбивается на квадратные тайлы (256×256 или 512×512 пикселей), что идеально подходит для CDN-доставки и кеширования.
2. Масштабирование через зум-уровни Каждый уровень зума удваивает разрешение карты, создавая пирамидальную структуру данных.
3. Совместимость между источниками данных Большинство провайдеров картографических данных используют одну и ту же систему координат.
4. Быстрая отрисовка в GPU Современные движки, включая MapLibre GL JS, используют WebGL, где Web Mercator легко транслируется в экранное пространство.
MapLibre GL JS строится вокруг предположения, что базовая карта работает в EPSG:3857. Это означает:
Внутренний pipeline можно упростить:
Несмотря на популярность, Web Mercator имеет фундаментальные недостатки.
На высоких широтах объекты визуально увеличиваются:
Это не ошибка рендеринга, а следствие цилиндрической проекции.
Из-за асимптотического поведения функции:
Web Mercator не является геодезически точной системой:
Web Mercator напрямую определяет структуру тайловой пирамиды.
На нулевом зуме:
На каждом следующем уровне:
Где n — уровень зума.
Каждый тайл определяется:
MapLibre GL JS использует эту систему для:
В MapLibre GL JS Web Mercator не является финальной системой координат, а промежуточным этапом.
Преобразование проходит через несколько стадий:
Матрица проекции учитывает:
Камера в MapLibre GL JS работает не с географическими координатами напрямую, а с проекционной плоскостью.
Масштабирование не линейно:
Каждый шаг zoom соответствует удвоению разрешения.
При наклоне карты:
Это создаёт эффект 3D-карты без изменения исходной проекции.
Хотя Web Mercator доминирует, существуют альтернативы:
Lambert Conformal Conic
Albers Equal Area
WGS84 / EPSG:4326
Однако в веб-картографии они почти всегда преобразуются в Web Mercator для визуализации.
Векторные тайлы в MapLibre GL JS хранят геометрию уже в проекционном виде.
Особенности:
Это позволяет:
На высоких уровнях зума Web Mercator сталкивается с проблемой:
MapLibre GL JS решает это через:
Каждый слой карты интерпретирует Web Mercator по-своему:
Это создаёт единый визуальный слой поверх искажённой, но предсказуемой проекции.
Web Mercator формирует «виртуальный квадрат мира»:
Эта особенность позволяет:
При переходе через ±180° долготы:
Это достигается не географической точностью, а математической нормализацией в Web Mercator пространстве.
Web Mercator стал де-факто стандартом благодаря сочетанию:
MapLibre GL JS использует эту проекцию как фундамент, вокруг которого строится вся система визуализации, стилизации и интерактивности карты.