API для верификации физического адреса пользователя?
Пришел таск на верификацию физических адресов пользователей. Необходимо подобрать сервис для этого. Сервис должен определять существует ли такой адрес физически,или нет. Делать это по "улица,дом,город,страна || зип код".
Проблема в том,что не каждый подходит для нужд. Дело в том,что гугл апи дает список похожих адресов по запросу,в то время,как по моим данным я хочу получить true/false и если true,то дать полную инфу о найденом адресе,а USPS и подобные слишком узконаправленные и не имеют достаточное кол-во адресов для worldwide.
В общем,если кто-то сталкивался с подобным,подскажите,какие API могут подойти для моих нужд и на что обратить внимание.
А вы знаете, что, например, в РФ дом может вообще не стоять ни на какой улице (адреса типа "хутор Мусохраново, дом 4")? (к стати не удивлюсь что в очень маленьких населенных пунктах других государств тоже может быть подобная ситуация, ибо зачем вообще нужны имена улиц в селе из 3 домов?)
Поищите на хабре - там куча статей про проблемы верификации, систематизации да и вообще унификации формата информации об адресах.
честно говоря,я бы уже взял гугл,но (возможно я просто не шарю) его проблема именно в том,что он даже при фейковом адресе вернет похожие,а это никуда не годится. в остальном он неплох и для worlwide подойдет.
может есть возможность сделать так,чтоб он не давал списки похожих,а вернул условный false?
Voland69, имеешь в виду, что список можно распарсить и сравнить с запросом?
но тогда надо играться с парсером.
адрес пользователя : Strada Alexandru Vlahuță 16, Cluj-Napoca 400394, România
а в запросе он указал : str. Alexandru Vlahuta 16, Romania
гугл понимает,что это один адрес и вернет адрес пользователя ,но когда я буду сравнивать его с запросом я получу false на существующий адрес.
Алексей Толмачинский, да, парсить и вводить метрики для сравнения. метрики считается адрес тем же, но в другом порядке, без национальных символов и т.п. или похожим на фейковый нерелевантным придется составлять самому.
к примеру для цифр (номер дома, квартиры) сравниваем строго, для названий применяем Расстояние Левенштейна, или задаем правила сравнения что â == a == ă
Voland69, допустим. а что делать с сокращениями, фейковыми зипами, отсутсвиями городов,стран?
а так же : улица мира 10,она же strada pacii 10, peace street 10 и прочее (не так много языков знаю)
У гугла в ответе есть параметр partial_match у каждого адреса в ответе, судя по названию, он может содержать - нашёл гугл искомый адрес или что-то похожее.