Качество данных

Почему «просто используйте lat и lon» упрощает точность местоположения

Две пары координат могут выглядеть на бумаге совершенно одинаково и означать очень разные вещи в зависимости от того, откуда они взялись. Одна может быть прямым показанием GPS устройства, находящегося точно в этом месте. Другая может быть центроидом города, возвращённым потому, что это было лучшее доступное совпадение для неполного или неоднозначного адреса. Напечатанные в виде голых чисел, обе выглядят одинаково точными. Только сопутствующие метаданные говорят, какой из них действительно можно доверять в сценарии, требующем высокой детализации.

Это главная причина, по которой «просто используйте широту и долготу» является реальным упрощением всякий раз, когда источник и точность координат важны для того, что вы создаёте. Пара координат сама по себе не несёт информации о том, как она была получена, какую площадь представляет или насколько источник был уверен в совпадении. Когда каждая пара координат считается одинаково достоверной независимо от происхождения, приложения в итоге незаметно принимают решения, например о маршруте доставки или о срабатывании оповещения по местоположению, на основе того, что на деле является приближением на уровне целого города, а не конкретной точкой.

Именно этот пробел призваны закрыть поля precision и confidence. Точность (precision) говорит, какой тип совпадения дал координату: дом, улица, почтовый индекс или город, а это напрямую указывает, какую площадь на местности эта точка правдоподобно представляет. Уверенность (confidence) говорит, насколько надёжным было само совпадение, независимо от его уровня точности. Вместе они превращают голую пару координат в то, о чём действительно можно рассуждать: не просто «вот точка», а «вот точка, вот примерно насколько точной она себя заявляет и вот насколько мы уверены, что это заявление верно».

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

Именно поэтому каждый результат геокодирования от наших эндпоинтов прямого и обратного геокодирования содержит type, precision и confidence вместе с координатами. Передача всего этого через ваш собственный конвейер, а не только широты и долготы, позволяет любой системе дальше по цепочке вынести такое же обоснованное суждение, какое было доступно вашему приложению в момент исходного запроса.