Координаты в HERE Maps API базируются на глобальной модели геопространственных данных, где каждая точка описывается через систему географических координат и затем преобразуется в плоское представление карты. Основная сложность заключается в том, что поверхность Земли не является плоскостью, поэтому любая веб-карта вынуждена использовать математические проекции, переводящие сферические координаты в двумерное пространство экрана.
Базовой системой координат в большинстве веб-карт, включая HERE, выступает WGS84. Она определяет положение точки через два значения:
Формально точка задаётся как:
Широта изменяется в диапазоне от −90° до +90°, долгота — от −180° до +180°.
В JavaScript API HERE такие координаты обычно передаются в виде объекта:
const coord = {
lat: 48.8566,
lng: 2.3522
};
или через специализированные структуры геометрии, где координаты являются базовым строительным блоком для маркеров, маршрутов и геообъектов.
Любая попытка отобразить Землю на экране требует проекции. Прямое отображение сферических координат приводит к искажениям расстояний, площадей и углов. Поэтому используются картографические проекции, преобразующие WGS84 в плоские координаты.
Наиболее распространённой в веб-картографии является Web Mercator projection.
Web Mercator (EPSG:3857) преобразует географические координаты в декартову систему (x, y), где:
Преобразование можно выразить формулами:
где R — радиус Земли в модели.
В рамках этой проекции:
Именно поэтому карты обрезают отображение примерно на ±85.0511° широты.
Внутри HERE Maps API координаты абстрагированы в единый тип данных, который используется во всех слоях:
Типичная структура:
const point = {
lat: 52.5200,
lng: 13.4050
};
Однако внутри движка такие координаты преобразуются в пиксельное пространство тайловой системы.
Веб-карты используют тайловую модель, где карта делится на квадраты фиксированного размера (обычно 256×256 пикселей). Каждый тайл имеет координаты:
Формулы перехода от географических координат к тайлам основаны на Web Mercator:
n = 2^z
x_tile = n * ((lng + 180) / 360)
y_tile = n * (1 - (ln(tan(lat) + sec(lat)) / π)) / 2
Это позволяет эффективно загружать только видимую часть карты, уменьшая объём данных.
В HERE Maps API координаты часто проходят несколько стадий трансформации:
Каждый этап важен для корректного отображения и взаимодействия с картой.
При работе с API часто используется камера карты, которая оперирует проекционными координатами:
map.getViewModel().setLookAtData({
position: { lat: 59.9311, lng: 30.3609 },
zoom: 10
});
Здесь позиция остаётся в WGS84, но внутри движка она конвертируется в Web Mercator для расчёта сцены.
Использование Web Mercator влечёт ряд математических и визуальных последствий:
Площади стран на высоких широтах визуально увеличиваются. Например, Гренландия выглядит сопоставимой с Африкой, хотя в реальности отличается в десятки раз.
При φ → ±90° значение y стремится к бесконечности, поэтому карта ограничивается диапазоном широт.
Один и тот же масштаб на разных широтах соответствует разному реальному расстоянию.
В веб-картографии координаты обычно хранятся в формате double precision (IEEE 754). Однако при преобразованиях возникают нюансы:
Для задач маршрутизации и геоаналитики это компенсируется использованием геодезических библиотек внутри платформы HERE.
Особую сложность представляет переход через 180-й меридиан. При долготе:
наивная интерполяция даёт длинную линию через всю карту. Поэтому в HERE Maps API применяется нормализация:
В дополнение к Web Mercator в геоаналитике могут использоваться альтернативные системы:
Однако в стандартном веб-рендеринге HERE Maps API почти всегда остаётся в рамках EPSG:3857.
В современных версиях карт добавляется слой перспективной проекции:
Это позволяет наклонять карту, изменять угол обзора и строить псевдо-3D визуализацию без изменения исходной геодезической модели.
Любые операции над объектами карты требуют учёта системы координат:
Внутренне HERE Maps API часто переключается между представлениями:
При интеграции данных из разных систем координат возникает необходимость преобразований:
Без корректного преобразования данные могут смещаться на десятки или сотни метров.
Координатная архитектура строится как многоуровневая система:
Такое разделение позволяет одновременно поддерживать геодезическую точность и высокопроизводительный рендеринг интерактивных карт в браузере.