Skip to main content
Широта и долгота: как на самом деле работают GPS-координаты
Guides

Широта и долгота: как на самом деле работают GPS-координаты

Широта измеряет положение по оси север-юг, долгота по оси восток-запад. Руководство по форматам координат, точности и типичной ошибке, когда их меняют местами.

Brent van der Heiden6 min read
#широта#долгота#gps координаты#wgs84#геокодирование#maps api

Широта и долгота это два числа, которые задают любую точку на Земле. Широта говорит, насколько далеко вы на севере или на юге. Долгота говорит, насколько далеко вы на востоке или на западе. Вместе они образуют пару координат, с которой работают любая карта, GPS-устройство, API геокодирования и ИИ-ассистент.

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

Что измеряет широта

Широта это угол в градусах между точкой на поверхности Земли и плоскостью экватора. У экватора широта 0 градусов, у Северного полюса +90, у Южного -90. Линии широты (параллели) опоясывают земной шар горизонтально, и расстояние между ними везде одинаковое.

Один градус широты на местности всегда примерно равен 111 километрам, где бы вы ни находились. Благодаря этому широта удобна для самых разных задач, от планирования авиарейсов до климатологии.

Что измеряет долгота

Долгота это угол между точкой и нулевым меридианом, линией, которая проходит через Гринвич в Лондоне и соответствует 0 градусов долготы. Долгота меняется от -180 градусов (запад) до +180 градусов (восток). Оба крайних значения встречаются на противоположной стороне планеты, на антимеридиане, вдоль которого проходит большая часть линии перемены дат.

В отличие от широты, расстояние на местности, которое приходится на один градус долготы, зависит от места. На экваторе один градус долготы равен примерно 111 км, как и градус широты. В Хельсинки это уже около 56 км. На полюсах расстояние сокращается до нуля, потому что там сходятся все меридианы.

Поэтому расчёт расстояний на плоской карте ошибается для длинных маршрутов и для точек у полюсов. Правильные функции расчёта расстояний используют формулу гаверсинусов или формулу Винсенти: они учитывают кривизну Земли.

Знаменитая перестановка и как её избежать

Одна из самых частых ошибок в геопространственном коде: широту и долготу меняют местами. Причина в том, что в разных форматах приняты разные правила:

  • Отображение для людей, адреса, GPS-приложения: сначала широта. 48.8584, 2.2945 означает lat 48.8584, lng 2.2945.
  • GeoJSON, WKT, большинство геопространственных стандартов: сначала долгота. [2.2945, 48.8584] это та же самая точка.
  • MapAtlas Geocoding API и большинство REST API первых версий: в ключах JSON сначала широта (lat, lng), но проверяйте документацию конкретного эндпоинта, потому что правила бывают разными.

Если вы берёте объект из GeoJSON и передаёте его в картографическую библиотеку, которая ждёт [lat, lng], координаты нужно поменять местами. Если забыть, точка окажется не в том полушарии, и следующие два дня вы будете выяснять, почему «Париж» стоит где-то у берегов Африки.

Простое правило защиты: в любой функции, которая принимает координаты, называйте параметры явно. function distance(latA, lngA, latB, lngB) труднее вызвать неправильно, чем function distance(a, b), где a и b это непонятные массивы.

Десятичные градусы и DMS

В коде чаще всего встречаются десятичные градусы (DD): 48.8584, 2.2945. Именно такой формат ждут все современные API и библиотеки.

Иногда попадается формат «градусы, минуты, секунды» (DMS): 48° 51' 30" N, 2° 17' 40" E. DMS пришёл из морской и авиационной традиции и до сих пор используется на официальных бумажных картах и в некоторых аппаратных GPS-приёмниках. Перевести DMS в DD просто: DD = градусы + (минуты / 60) + (секунды / 3600), а для южной широты и западной долготы значение берётся со знаком минус.

Для хранения хватает десятичных градусов с 5-6 знаками после запятой в любой реальной задаче. Больше 6 знаков это точность напоказ: GPS в смартфоне под открытым небом обычно ошибается примерно на 4,9 метра, и только геодезические приёмники с сервисами коррекции приближаются к сантиметровой точности.

Сколько знаков после запятой нужно

Каждый следующий знак после запятой уточняет положение примерно в 10 раз:

  • 0 знаков (48): около 111 км, уровень страны
  • 1 знак (48.8): около 11 км, уровень города
  • 2 знака (48.86): около 1,1 км, уровень района
  • 3 знака (48.858): около 110 метров, уровень улицы
  • 4 знака (48.8584): около 11 метров, уровень здания
  • 5 знаков (48.85844): около 1 метра, уровень входной двери
  • 6 знаков (48.858445): около 11 сантиметров, намного точнее любого бытового GPS
  • 7 и больше знаков: ложная точность почти для любого реального источника

Выбирайте точность под задачу. Если вы храните 8 знаков после запятой для сценария «доставить в этот район», вы тратите место и создаёте у пользователя ложное впечатление о точности данных.

Координаты и картографические проекции

Сами числа это угловые величины на поверхности Земли, а экран плоский. Любая картографическая проекция это математическая функция, которая превращает широту и долготу в пиксельные координаты x, y на экране.

Web Mercator (EPSG:3857) это проекция Google Maps, OpenStreetMap и почти всех интерактивных веб-карт. Она сохраняет форму и направления, но искажает площади: Гренландия выглядит размером с Африку, хотя на самом деле в четырнадцать раз меньше. Для обычных рабочих карт это не важно, пока пользователи узнают места. Для тематических карт, где сравнивают площади (население, результаты выборов, климат), используйте равновеликую проекцию.

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

Хранение и индексирование координат

В большинстве баз данных храните широту и долготу в двух числовых столбцах (или в geometry(point, 4326), если используете PostGIS). Для поиска точек внутри ограничивающего прямоугольника хватит B-tree индекса по каждому столбцу. Для запросов вида «ближайший сосед» нужен пространственный индекс: GIST в PostGIS, SPATIAL в MySQL или группировка по геохэшу.

Если хранить координаты строкой («48.8584,2.2945»), проблемы начнутся, как только понадобится фильтровать, сортировать или считать расстояние. Не делайте так.

Как ИИ-ассистенты используют координаты

Современные ИИ-ассистенты (ChatGPT, Perplexity, Gemini) работают с местами через координаты так же, как обычные приложения. Когда пользователь просит «найди кофейню рядом со мной», ассистент определяет координаты пользователя, обращается к API мест и сортирует результаты по расстоянию, посчитанному по формуле гаверсинусов. Правильно размеченные координаты в структурированных данных (свойство geo в JSON-LD, тип GeoCoordinates) дают ИИ-ассистенту однозначное местоположение вашего объекта, и ему не нужно угадывать его по тексту.

Если объект представлен в нескольких городах или конкурирует в разных странах, координата снимает любую неоднозначность. «Париж» неоднозначен: один во Франции, другой в Техасе. Координата однозначна.

Почему MapAtlas

MapAtlas это европейская картографическая платформа, созданная для эпохи ИИ-поиска. Каждый запрос геокодирования, обратного поиска, изохрон и маршрутов возвращает чистые координаты WGS84 в едином порядке, с соблюдением GDPR и размещением в ЕС. Откройте инструмент поиска координат, чтобы сразу перевести любой адрес в lat/lng, или прочитайте статью Что такое геокод, чтобы подробнее узнать, как API геокодирования работают в рабочих системах.

Часто задаваемые вопросы

В чём разница между широтой и долготой?

Широта задаёт положение на Земле по оси север-юг: от -90 на Южном полюсе до +90 на Северном. Долгота задаёт положение по оси восток-запад: от -180 до +180, а 0 проходит через Гринвичский меридиан. Линии широты (параллели) идут горизонтально и параллельны друг другу. Линии долготы (меридианы) идут вертикально и сходятся на полюсах. Вместе широта и долгота дают пару чисел, которая однозначно указывает на любую точку планеты.

Что пишут первым: долготу или широту?

Зависит от формата. В записи для людей (Google Maps, GPS-приложения, адреса) первой идёт широта: 48.8584, 2.2945 означает lat 48.8584, lng 2.2945. В машиночитаемых форматах, например в GeoJSON и большинстве геопространственных стандартов, первой идёт долгота: [2.2945, 48.8584]. Из-за этой путаницы в рабочих системах возникает множество ошибок на картах. Всегда проверяйте, какой порядок принят в формате, с которым вы работаете.

Насколько точны GPS-координаты?

Шесть знаков после запятой (например, 48.858444) дают точность около 11 сантиметров на экваторе. Пять знаков (48.85844) дают примерно 1 метр. Четыре знака (48.8584) дают около 11 метров, и для карт на уровне улиц этого достаточно. В большинстве рабочих задач шесть знаков избыточны, а пяти хватает с запасом. Лишняя точность занимает место и создаёт ложное впечатление, что данные точнее, чем на самом деле.

Почему меридианы сходятся на полюсах?

Параллели параллельны, потому что все они отсчитываются от одной оси Земли. Меридианы, напротив, это большие круги, и каждый проходит через Северный и Южный полюсы. Чем ближе к полюсам, тем меньше расстояние по оси восток-запад между двумя значениями долготы: на экваторе один градус долготы равен примерно 111 км, а на полюсах сокращается до нуля. Поэтому простые расчёты расстояний в плоских координатах на высоких широтах ошибаются, а правильные расчёты используют формулу гаверсинусов или формулу Винсенти.

Оказалось полезным? Поделитесь.

Об авторе

Brent van der Heiden

Автор

Brent van der Heiden

Co-Founder & CEO at MapAtlas

Brent built MapAtlas out of a conviction that developers deserve location APIs with fair pricing and genuine end-user privacy. Before that he co-founded MapMetrics, a community mapping and navigation app. He writes about geospatial infrastructure, map data, AI search visibility, and how location data powers the products people rely on every day.

Все статьи →
Вернуться в блог