Часто можно увидеть, как координаты обрезают до нескольких знаков после запятой перед сохранением или отображением, нередко только ради того, чтобы число выглядело аккуратнее в таблице или в URL. Легко упустить из виду, что каждый знак после запятой в значении широты или долготы соответствует конкретному вычислимому расстоянию на местности, и отбрасывая цифры, вы отбрасываете реальную физическую точность, а не просто визуальный шум.
Вблизи экватора координата с четырьмя знаками после запятой различает места, находящиеся примерно в десяти метрах друг от друга, что близко к ширине здания. Оставьте вместо этого два знака, и вы будете различать места, удалённые друг от друга примерно на километр, а это вполне может быть разницей между одним районом и соседним. Округлите до нуля знаков, и вы будете различать лишь целые градусы, охватывающие многие километры. Точное расстояние на один знак после запятой немного уменьшается по мере удаления от экватора к полюсам, причём именно для долготы, поскольку меридианы сходятся, но общая связь между знаками после запятой и реальным расстоянием сохраняется везде.
Это становится реальной проблемой в нескольких распространённых ситуациях. Хранение координат в столбце базы данных с недостаточной десятичной точностью незаметно обрезает данные при записи, и ничто в этом сбое не выглядит как ошибка, поскольку получившееся число по-прежнему является корректной координатой, просто менее точной. Передача координат через систему, которая округляет их для отображения, с последующим использованием этого округлённого значения в дальнейших расчётах, например при проверке расстояния или поиске поблизости, переносит исходное округление в каждый последующий результат. Ручное копирование координат между системами, когда человек обрезает цифры, потому что полное значение показалось ему излишне длинным, даёт тот же эффект.
Безопасная привычка состоит в том, чтобы хранить и передавать координаты с десятичной точностью, достаточной для вашего реального сценария, как правило не менее пяти-шести знаков после запятой для всего, что должно оставаться достаточно точным на уровне здания или улицы, и округлять для отображения только на самом последнем шаге перед тем, как показать число человеку, и никогда перед расчётом. Если вам действительно нужно различать только города, округлять раньше вполне допустимо, но это должно быть осознанным решением, основанным на потребностях вашего приложения, а не случайностью, вызванной шириной столбца в базе данных или привычкой форматирования.
Координаты, которые здесь возвращают прямое и обратное геокодирование, имеют десятичную точность, достаточную для сценариев на уровне зданий. То, что вы делаете с этой точностью дальше, особенно при хранении и округлении, стоит проверить намеренно, а не предполагать, что она без изменений проходит через каждый этап вашего конвейера.
Адрес в хорошо картографированном центре города почти ничего не говорит о том, как ваша система справится с сельским маршрутом, спорной границей или запросом вблизи полюсов. Тестируйте сложные случаи намеренно.
Не каждый набор данных с общедоступными на вид сведениями о местоположении можно законно использовать в платном продукте. Реальную границу часто задают условия лицензии, а не техническая доступность.