Служба поддержки DaData.ru
Если чего-то не хватает, или вы столкнулись с проблемой — оставьте сообщение, и мы ответим в течение 24 часов. Работаем с понедельника по пятницу, с 10 до 19 по Москве.
Как ограничить адрес по нескольким kladr_id?
Здравствуйте. Скажите, пожалуйста, можно ли в ограничении по kladr_id указать сразу 2 города?
Здравствуйте!
Конечно, можно указать массив ограничений в параметре locations при запросе через REST API.
При запросе через jQuery-плагин принцип тот же: передавать несколько КЛАДР-кодов в параметре locations в настройке constraints (пример).
Список городов среднего качества -> Очищенная таблица "Город - ФИАС"
Добрый день! Есть список городов со средним качеством информации, необходимо очистить названия городов и получить ФИАС населенного пункта. Это возможно сделать через сервис "Качество данных", или требуется иной инструмент?
Иван, здравствуйте!
Сервис Стандартизации создан как раз для этого: данные можно обработать в файле или через АПИ.
Попробуйте очистить один адрес, подходит ли вам такой результат?
Можете прислать пример города из вашего списка?
Возвращается qc: 1, fias_level: 8 для адреса
Адрес: г Краснодар, ул 1 Мая, д 338
Стандартизация возвращает qc: 1. Можно как-то узнать, почему?
Добрый день!
Дадата работает по ФИАС (всероссийский классификатор адресов налоговой), в котором есть две улицы 1 Мая в Краснодаре: в Карасунском и Прикубанском районах:


В ФИАСе дом 338 есть только на улице 1 Мая в Прикубанском районе, информацию по нему Дадата возвращает после стандартизации. Так как нельзя однозначно определить, что адрес распознан правильно (выбран нужный район), проставляется код качества qc = 1 (адрес распознан с допущениями).
Когда город записывается в city, а когда в settlement?
Изначально было сделано 1 поле для ввода города. При выборе города отправляю данные на обработку. Так вот хотел бы знать в каких случаях ответ приходит в разные поля я как понял если выбран AO, тогда город будет в suggestion.data.settlement, в некоторых местах приходит в suggestion.data.city
Подсказки работают по ФИАС (всероссийский классификатор адресов налоговой), в котором предусмотрено больше 10 разных уровней для адресных объектов (регион, автономный округ, город, населенный пункт и др.).
В Дадате тоже есть уровни, но не совсем такие, как в ФИАС — более привычные в быту и для отправки почты. Например:
suggestion.data.city — город (4ый уровень по ФИАС);
suggestion.data.settlement — населённый пункт (5ый и 6ой уровни в ФИАС).
Чтобы в одном поле для города учитывались и города и населённые пункты, можно вызывать подсказки с ограничением по этим параметрам:
from_bound:{value: "city"}
to_bound:{value: "settlement"}Такое решение вам подойдет?
Nuget для suggestions-csharp
Nuget существенно удобнее, чем просто DLL.
Но это имеет смысл только если библиотека полностью поддерживает API (http://dadata.userecho.com/topics/2224-v-biblioteke-suggestions-csharp-dostupnyi-ne-vse-polya-adresa-iz-api/), иначе ее приходится дорабатывать самостоятельно и Nuget будет бесполезен.
В библиотеке suggestions-csharp доступны не все поля адреса из API
В библиотеке suggestions-csharp доступны не все поля адреса из API. В частности, нет кодов ФИАС и КЛАДР для элементов адреса.
Это приводит, например, к следующим проблемам:
- http://dadata.userecho.com/topics/2220-kak-ponyat-dom-najden-v-intervale-ili-ne-najden.
- Не работают ограничения поиска по коду ФИАС.
Исправить это очень просто.
Как понять, дом найден в интервале или не найден?
Согласно документации, поле fias_id в подсказках может иметь следущий смысл:
HOUSE.HOUSEGUID, если дом найден в ФИАС по точному совпадению;HOUSEINT.INTGUID, если дом найден в ФИАС как часть интервала;ADDROBJ.AOGUIDв противном случае.
Проблема в том, что не все эти варианты можно различить.
Случай, когда дом найден по точному совпадению, можно определить по fias_level == 8.
Если дом найден в интервале, fias_id является кодом интервала и fias_level == 7 (улица).
Если дом не найден (но найдена улица), fias_id является кодом улицы и fias_level == 7 (улица).
Таким образом, невозможно отличить последние два случая, и неизвестно, чем является fias_id, следовательно, нельзя его использовать.
В принципе API дает возможность обойти эту проблему, сравнив fias_id и street_fias_id. Но.
- Получается, что поле fias_id бесполезно: его действительный смысл нужно выводить из других полей.
- Поле street_fias_id доступно не во всех интерфейсах к API. В частности, в библиотеке для C# есть только fias_id (впрочем, это проблема этой библиотеки сама по себе).
> Если fias_level == улица, то брать street_fias_id вместо fias_id
Если вам не нужны интервалы, то рекомендую именно так и делать. Более того, я бы вообще не использовал ФИАС-коды домов, а всегда хранил код улицы + номер дома. Потому что ФИАС-коды домов неустойчивые, они могут меняться (это противоречит идее уникального идентификатора, но факт — налоговая их меняет).
Можно ли отключить из подсказок города, которые не находятся на территории России?
Сейчас в подсказках появляются Брест, Ташкент, Минск, итд - можно ли это отключить?
Подсказки по иностранным городам можно отключить, ограничив область поиска
в теле REST-запроса:
locations:[{country: "Россия"}]или в параметре jQuery-плагина:
constraints: {
locations:{country: "Россия"}
}
Предоставление сокращенных названий адресных объектов
Здравствуйте. У нас возник вопрос: есть ли возможность в подсказках получать сокращенные имена регионов (и, возможно, других объектов)?
Наши партнеры жалуются на то, что не могут доставить посылку, когда адрес очень длинный, например, когда написано "Ханты-Мансийский Автономный Округ-Югра" вместо ХМАО.
Если в подсказки ввести ХМАО, то он это разворачивает правильно, но есть ли возможность от вас получать короткие названия?
Юрий, добрый день!
Можно взять список регионов, назначить замену для тех, которые вы считаете длинными, и использовать её при необходимости.
Уточните, пожалуйста, почему партнеры не могут доставить посылку по длинному адресу? Есть какое-то ограничение длины в поле ввода?
Сервис поддержки клиентов работает на платформе UserEcho