Вопрос

Я пишу компонент геокодирования для приложения, которое создаю, и решил использовать Yahoo Maps.Я написал оболочку API геокодирования и несколько модульных тестов и положил этому конец.Вернулся на следующий день, провел тесты и обнаружил, что широта и долгота изменились.Имейте в виду, изменение было достаточно небольшим, чтобы не иметь для меня значения, но оно было достаточно значительным, чтобы повлиять на округление до 4 знаков после запятой, которое я использовал в своем модульном тесте для сравнения результатов.

Я никогда раньше не слышал об изменении широты и долготы.Это то, чего мне следует ожидать/учитывать?Кто-нибудь может объяснить, почему?

Это было полезно?

Решение

Геокодирование, особенно если оно выполняется по адресам, редко дает 100% точность. Есть много компаний, которые делают только уличные данные, используемые для геокодирования.

Данные не точны, но часто обновляются для улучшения сопоставления адресов. Когда это произойдет, вы получите другой результат. Я предполагаю, что произошло одно из двух:

1) Yahoo обновила свои исходные данные.

2) Вы получили результат с другого сервера с другим набором исходных данных.

Другие советы

Continental Drift?

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

http://www.urisa.org/files/goldberg.pdf

Что говорит об этих алгоритмах.

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

Являются ли результаты согласованными сейчас или вы все еще получаете немного другие результаты?

Интересный.

Мне кажется, это очень похоже на то, что происходит, когда сравнивают «реальные» числа на предмет равенства.Обычное решение этой «проблемы» — вычислить Abs[x-y] < tol, где x, y — ваши действительные числа (или числа с плавающей запятой, или двойные значения), а tol — небольшое число, которое представляет собой критерий принятия решения о том, что числа достаточно близки к считаться равными для ваших целей.

Карта не является территорией

Нам, программистам, очень легко упустить из виду, что данные представляют мир, а НЕ являются фактическими аспектами мира.

У вас есть другие ответы, в которых говорится то же самое более подробно, в частности, о геокодировании, но также стоит помнить в целом ....

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top