Координаты 55.75, 37.61: как не поменять широту и долготу местами
В сообщении написано: 55.7512, 37.6184. Для человека, привыкшего к картам, это широта и долгота точки в Москве. Но тот же набор, вставленный в поле или файл с другим порядком осей, может увести метку далеко от нужного места. Ошибка выглядит мелкой: числа правильные, перепутаны только позиции.
Универсального правила для любой записи нет. Сначала нужно понять формат, затем проверить диапазоны и только потом отправлять координаты дальше.
Что измеряют два числа
Широта показывает положение к северу или югу от экватора. Ее допустимый диапазон - от -90 до 90 градусов. Долгота отсчитывается к востоку или западу от начального меридиана и лежит в диапазоне от -180 до 180 градусов.
В обычной географической записи часто пишут широту первой: 55.7512 N, 37.6184 E. Буквы N и S обозначают северное и южное полушария, E и W - восточное и западное. В десятичной записи направление нередко задает знак: южная широта и западная долгота отрицательны.
Диапазон помогает поймать часть ошибок. Если первое число равно 145, широтой оно быть не может. Но пара 55 и 37 проходит проверку в обоих порядках, поэтому одного диапазона недостаточно.
Почему GeoJSON начинает с долготы
RFC 7946, официальный стандарт GeoJSON, задает позицию как массив минимум из двух чисел. Первые элементы идут в порядке longitude, latitude - долгота, затем широта. Для точки у Красной площади фрагмент выглядит примерно так: {"type":"Point","coordinates":[37.62,55.75]}.
Это порядок x, y: долгота соответствует горизонтальной оси, широта - вертикальной. Стандарт использует WGS 84 и десятичные градусы; третьим элементом при необходимости может идти высота.
В то же время географическая ссылка формата geo:, описанная RFC 5870, начинается с широты: geo:55.75,37.61. RFC 7946 отдельно показывает преобразование: geo:lat,lon становится точкой GeoJSON [lon,lat]. Именно на границе двух форматов и возникают частые перестановки.
Три записи одной точки
Одно положение можно записать несколькими способами:
- десятичные градусы:
55.7512, 37.6184; - градусы и десятичные минуты: 55 градусов 45.072 минуты N, 37 градусов 37.104 минуты E;
- градусы, минуты и секунды: 55 градусов 45 минут 4.32 секунды N, 37 градусов 37 минут 6.24 секунды E.
Смешивать части этих систем нельзя. Запись 55.4504 не означает 55 градусов 45 минут 4 секунды. В десятичных градусах дробь является долей градуса.
USGS приводит простой алгоритм перевода. У числа 45.63248 целая часть 45 остается градусами. Дробную часть умножают на 60: получается 37.9488, то есть 37 минут. Остаток 0.9488 снова умножают на 60 и получают 56.928 секунды. Обратная формула: градусы плюс минуты, деленные на 60, плюс секунды, деленные на 3600.
Знак и букву направления не дублируют вслепую
Для России широта обычно северная, а долгота восточная, поэтому обе величины положительны. Это удобство формирует опасную привычку: знак кажется необязательным. Для западного полушария -74.006 означает 74.006 градуса западной долготы. Если минус потерять, точка окажется восточнее Гринвича.
Перед передачей лучше выбрать один понятный вариант: либо 40.7128, -74.0060, либо запись с N, S, E, W. Конструкция вроде -74 W двусмысленна для программного импорта: человек поймет намерение, а парсер может воспринять двойное отрицание или отклонить значение.
Сколько знаков после запятой оставлять
NOAA объясняет, что один градус широты соответствует примерно 111 километрам, одна угловая секунда - примерно 30.7 метра. Отсюда можно оценить порядок величин: одна тысячная градуса широты - около 111 метров, одна десятитысячная - около 11 метров, одна стотысячная - около метра. Для долготы расстояние зависит от широты и уменьшается к полюсам.
Это геометрическая цена разряда, а не гарантия измерения. Телефон, адресная база или ручная отметка могут ошибаться сильнее. Запись десяти знаков после запятой не превращает приблизительно поставленный маркер в геодезическую точку. Она лишь создает впечатление точности.
Для входа в большое здание обычно достаточно пяти десятичных знаков, а для населенного пункта - значительно меньше. Для съемки, кадастра и инженерных работ нужны не только цифры, но метод измерения, система координат и оценка погрешности; координаты с бытовой карты для этого не подходят.
Проверка перед отправкой
- Подпишите порядок словами: широта 55.7512, долгота 37.6184.
- Укажите формат: десятичные градусы, WGS 84.
- Проверьте диапазоны и знак каждого числа.
- Вставьте пару в карту и сравните не только город, но улицу, сторону дороги и вход.
- Откройте результат во втором картографическом сервисе: так обнаруживаются ошибки копирования и неверная интерпретация поля.
- Передайте рядом обычное описание места и ориентир.
Последний пункт особенно полезен в практической ситуации. Сообщение "вход со двора, рядом с красными воротами" позволяет заметить, что метка попала на соседний корпус.
Координаты для файла и для человека - не одно и то же
В таблице сделайте отдельные столбцы latitude и longitude, а не одно поле с двумя числами. Укажите систему координат в документации. При экспорте в GeoJSON переставьте значения в порядок долгота-широта; при создании ссылки geo: верните широту на первое место.
Не удаляйте исходные значения после преобразования. Сохраненная исходная строка помогает понять, где возникла ошибка: при вводе, переводе из минут и секунд или экспорте.
Короткий тест здравого смысла
Если точка должна быть в России, северная широта обычно положительна, а долгота для основной территории также положительна. Если после импорта она оказалась в море, сначала проверьте порядок осей, затем знак, разделитель дробной части и формат исходных чисел.
Надежная пара координат - это не просто две дроби. Минимальный комплект включает подписи осей, формат, систему координат и проверенный маркер. Такая строка чуть длиннее, зато ее не приходится расшифровывать по догадке.
