Автокомплит адресов (не ФИАС, так как не только Россия). Как получить необходимые данные?
Разрабатываю сервис для администрирования доставок товаров клиентам.
Столкнулся с проблемой построения базы данных адресов клиентов.
Есть основные сущности: Клиент и Доставка.
При создании нового клиента необходимо ввести адрес улицы (без номера дома), затем номер дома и т.д.
Затем по этим адресам необходимо производить поиск клиентов, например, при создании Доставки.
На данный момент располагаю базой данных своего города с таблицами "Улица", "Тип улицы", "Район", которые связаны между собой внешними ключами. Очень удобно производить поиск и сортировку.
Но:
1) Со временем данная БД теряет актуальность данных и приходится вручную править изменения, например, переименование улиц.
2) Найти такую базу для каждого города не реально. На данный момент разрабатываю сервис под Украину, но нацелен на СНГ.
Какое решение я ищу:
1) Автокомплит улиц при вводе.
2) При выборе нужного результата получение таких данных, как Страна, Город, Название улицы, Тип улицы, Район города.
3) Желательно получать данные из п.2 на разных языках, как минимум русский и украинский.
Если кто сталкивался с подобной задачей, прошу поделится своим опытом, или направить мои поиски в правильную сторону.
Уточнение:
Клиент делает заказ не через форму на сайте, а по телефону.
Принимает заказ оператор и делает поиск по базе клиентов. Ему нужно ввести в поле адрес, в форме создания доставки, например "просп акад глуш 5 22" и автокомплит дает ему список подходящих клиентов.
Используем это на практике уже 2 года (на старой версии сервиса), очень удобно. Скорость нахождения клиента 1-3 секунды.
Который год я удивляюсь, зачем люди усложняют себе жизнь.
Ну дайте человеку ввести адрес в произвольном формате и прогоните через геокодер. А если адрес не нашелся — ну пусть точку на карте поставит.
Но нет, надо разбить на -цать полей, и в каждом устроить проверку. Вот чтоб что?…
Чтобы записать данные по адресу в БД, и затем иметь возможность найти этого клиента и добавить ему доставку.
У меня организован автокомплит для поиска клиентов. При таком поиске придётся задергать геоеодер, чтобы найти совпадения.
Кроме того, есть необходимость соотносить улицы с зонами, так как для разных зон разная стоимость доставки.
Полностью поддерживаю, вам не нужен юридически верный адрес, пусть даже клиент напишет "улица Линена". В конечном итоге вам нужно место куда везти, пусть клиент его и укажет на карте. Или какой вам прок от адреса, который вы не знаете где находится?