Як я вчив клієнта правильно писати адресу

Під час реалізації одного із завдань по проекту зіткнувся з наступним – встановлена окрема конфігурація для керування транспортною логістикою, яка дозволяє скласти маршрут доставки замовлень. Тільки от під час завантаження даних із УТ виникала одна проблема – пошук адреси, яку ввів клієнт на сайті, ставив конфігурацію в ступор, так як клієнт вводив різноманітні комбінації, а парсинг адресу в програмі м’яко кажучи – не дуже. Було два варіанти:

  1. Навчити клієнта вводити адрес правильно, створивши на сайті окремі поля для країни, області, району, міста, вулиці, будинку і т.д. Я його зразу відкинув, тому що сайтів було більше 50 і їх переробляти на дуже хотілось.
  2. Навчити программу логістики правильно парсити адресу.

Я вибрав другий варіант.  Для цього вирішив використати сервіс геокодингу одного із веб-гігантів.

Отже, для цього я підмінив процедуру пошуку на свою власну. Я відсилав в сервіс геокодингу адресу,  а отримував структуру в форматі xml з координатами та розпарсеним адресом (дім, вулиця, місто, …). Далі по БД адрес в конфігурації  я шукав всі адреси, координати яких були в межах ±0,003 від отриманих координат. Отриманий масив адрес, я звіряв на відповідність вулиці, номеру будинку, номеру корпусу з отриманими даними через сервіс геокодингу. Відповідно так я знаходив  потрібну мені адресу. Процент успішного пошуку виріс із 70% до 95%, що відповідно для адрес в межах +300 досить гарний показник. А ті адреси, що не знайшли можна опрацювати вручну. Ось так.