Ваши комментарии
Код ФИАС, который вы считаете верным, принадлежит такому адресу:
г Екатеринбург, пр-кт Ленина, стр 24а
Легко проверить на сайте ФИАС:
Строение и дом в ФИАС – абсолютно разные вещи. Например, строение может принадлежать дому. Также на одной улице могут быть дом и строение с одинаковым номером, но это разные адреса.
Дома 24А по Ленинскому проспекту в ФИАС нет. Но в ФИАС вообще нет многих реально существующих домов. Поэтому этот дом мы парсим, и проставляем для него код ФИАС подходящего диапазона домов.
Проект https://github.com/gietos/dadata использует API стандартизации. В нем нет и не было параметров from_bound или to_bound. Эти параметры есть в API подсказок.
Ответил здесь: https://dadata.userecho.com/topics/1599
Метод cleanAddress возвращает объект типа Address. У него есть все необходимые поля. Ваш код неявно вызывает метод toString, который отдает конкретно поле result (адрес одной строкой).
Чтобы получить значения конкретных полей, запрашивайте их явно.
$address = $client->cleanAddress('екатеринбург ленина 24а'); $city = $address->$city;
Дело в том, что DaData работает по ФИАС (всероссийский классификатор адресов ФНС). В ФИАС корпус и строение – абсолютно разные типы здания. Здание может быть с корпусом и иметь строение, может иметь только корпус или только строение. Яркий пример – соседний адрес г Москва, ул Широкая, д 2 к 2 стр 3. Поэтому для корректного распознавания адреса нужно точно указывать тип в исходных данных. Вместо "к" можно передавать "корп"/"кор".
Москва, Широкая, дом 3, кор 1 корректно разбирается и получает точные геокоординаты.
Dadata говорит что адрес распознан хорошо qc=0, однако в block_type не заменяется на корпус, а ставится наше же строение. Но такого адреса не существует!
Вы правы, такого адреса нет. Но проблема в том, что в ФИАС в принципе нет многих реально существующих адресов. Проверять существование адресов по другим источникам сложно и противоречиво. Если же мы будем разбирать только адреса из ФИАС, то отрежем значительное количество реальных данных. Поэтому мы разбираем все адреса, в том числе похожие на реально существующие. Но предупреждаем о возможных несоответствиях с помощью кодов качества. В API это поле qc_house != 2. То же самое с геокоординатами – в вашем адресе они указаны до ближайшего дома, об этом сообщает qc_geo = 1.
Дело в том, что СЕВЕРО-КАВКАЗСКИЙ БАНК ПАО СБЕРБАНК в нашей базе есть, но согласно сайту ЦБ РФ он ликвидирован 31.03.2016. Думаю, что МойСклад подсказывает только активные банки, что логично. Уточните, пожалуйста, зачем вам ликвидированный банк в реквизитах?
Да, через сервис стандартизации мы проверяем e-mail на соответствие общепринятым правилам и отделяем корректные от некорректных. Также исправляем типовые опечатки и находим "однодневные" e-mail. Но мы не проверяем e-mail на существование.
Сервис поддержки клиентов работает на платформе UserEcho
Потому что адреса улица Малышева, дом 31а опять же нет в ФИАС. Есть дом 31, есть дом 31Б. В таком случае мы проставляем код ближайшего дома, если его нет – диапазона.