Сравнение адресов: случай из практики

0. AnatolPopov 118 04.01.20 20:50 Сейчас в теме
Как с учетом обстоятельств сравнить два небрежно записанных адреса и решить, означают ли они одно и то же. Программный код написан для режима совместимости с 8.2.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Идальго 217 04.01.20 21:34 Сейчас в теме
А не проще верифицировать "не нормализованную" адресную строку на тойже DaData, которая в структурированном виде вернёт адрес, ну или там информацию об ошибке и т.п.? Там вроде ещё и коды ФИАС и Кладр будут, что удобно, ну и сами же наименования улиц также могут меняться и прочее.
2. AnatolPopov 118 05.01.20 00:26 Сейчас в теме
(1) Я в то время не знал про DaData. Хотя, скорее всего, не стал бы использовать. В любом случае воспринял бы задачу как свою личную головную боль ;)
К тому же, обращение к каким-то там сервисам потребовало бы прописывания доступа, бодания с отделом ИБ, в общем, эта идея была бы отброшена сразу.
3. EliasShy 48 14.01.20 07:05 Сейчас в теме
Решал подобную задачу по адресам - через Google Geocoding Api получаю координаты адреса, саму строку адреса хэширую, и хэш с координатами сохраняю.
Новый адрес ищу по координатам - если совпадает - то адреса одинаковые
4. AnatolPopov 118 15.01.20 20:24 Сейчас в теме
(3) Сурово ;) Как я понимаю, такие сведения необходимо получать при внесении адреса в базу? И как быть с погрешностью измерений, с последующими поправками картографии? Предусмотрен какой-то допуск?

В моем случае надо было работать с тем, что дают, и не добавлять отсебятины, даже если очень хочется. Мое решение хорошо тем, что это тупая молотилка, которая просто сравнивает, что дали, ничего не придумывает, а мы можем быть уверены, что вероятность ложных отказов будет просто мала, а вероятность ложных срабатываний - ничтожно мала. Причем второе условие гораздо важнее первого. Это как раз тот случай, когда лучше недоделать, чем потом исправлять.
5. EliasShy 48 16.01.20 08:18 Сейчас в теме
(4) погрешность решается количеством знаков в широте и долготе.
Сервисы геокодирования достаточно точно описывают точку и хорошо работают по пользовательскому представлению адреса.

Сведения о геоданных получаются не для всех адресов, а для участвующих в процессе (в моем случае доставка грузополучателю).
В месяц порядка 200 запросов идет - они проходят по бесплатному порогу Google.

Ранее пользовались Яндексом, однако с недавних пор они бесплатный порог убрали.
6. ivangrant 10 03.09.21 11:19 Сейчас в теме
Всё не так однозначно. Улицы состоят порой из 2-4 слов. Ещё есть в названии улиц числа. Например, Улица 1905-го года. А есть где в городе и улица и переулок имеют одинаковые названия.
Насчет описания достаточно точной геопозиции - не всегда работает эта схема.
Например с магазинами, где на одном адресе их может быть несколько.
Геокодирование удобно, когда 2-3 точки на 1 кв.км. Если больше, можно сколько угодно подбирать точки, погрешности при сопоставлении будут возрастать.
7. AnatolPopov 118 03.09.21 16:39 Сейчас в теме
(6)
Улицы состоят порой из 2-4 слов. Ещё есть в названии улиц числа. Например, Улица 1905-го года. А есть где в городе и улица и переулок имеют одинаковые названия.

Поэтому требуется большая подготовительная работа по устранению всяких вольностей в адресах, приведению названий к одному виду. Довольно муторно. А "-го" в конце "1905-го" убирается при создании формализованного адреса.
Оставьте свое сообщение
Вакансии
Функциональный архитектор
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб.
Полный день

Ведущий программист 1С (удаленно)
Пермь
зарплата от 150 000 руб.
Полный день

Программист 1С
Домодедово
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Аналитик-консультант 1C:ERP
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день