Служба поддержки DaData.ru
Если чего-то не хватает, или вы столкнулись с проблемой — оставьте сообщение, и мы ответим в течение 24 часов. Работаем с понедельника по пятницу, с 10 до 19 по Москве.
Как понять, дом найден в интервале или не найден?
Согласно документации, поле 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: "Россия"} }
Предоставление сокращенных названий адресных объектов
Здравствуйте. У нас возник вопрос: есть ли возможность в подсказках получать сокращенные имена регионов (и, возможно, других объектов)?
Наши партнеры жалуются на то, что не могут доставить посылку, когда адрес очень длинный, например, когда написано "Ханты-Мансийский Автономный Округ-Югра" вместо ХМАО.
Если в подсказки ввести ХМАО, то он это разворачивает правильно, но есть ли возможность от вас получать короткие названия?
Юрий, добрый день!
Можно взять список регионов, назначить замену для тех, которые вы считаете длинными, и использовать её при необходимости.
Уточните, пожалуйста, почему партнеры не могут доставить посылку по длинному адресу? Есть какое-то ограничение длины в поле ввода?
Стандартизовать базу данных компаний
Здравствуйте! Стоит такая задача: есть список названий компаний в свободной форме, нужно дополнить базу полным названием, адресом, инн, кпп, статусом (ликвидация), в идеале еще и окпо. Названия конечно же даны с опечатками и их требуется сопоставить. Ваш сервис дополняет запросы пользователей по компаниям, но можно ли использовать его для стандартизации базы компаний? Если да, то я проглядела как. Спасибо за ответ.
Анастасия, добрый день!
Если помимо названия компании у вас есть её ОГРН, можно получить недостающую информацию через АПИ Подсказок.
Стандартизировать компанию, используя только название, возможно в "полуручном" режиме, т.к. очень много организаций с одинаковым наименованием. Придется просматривать каждый ответ в поиске нужной организации.
fixData() не находит подсказку
Метод fixData() возвращает пустое значение в некоторых случаях, покажу сразу на примере:
1. пишу в input "Михайловск" - выбираю "Ставропольский край, Шпаковский р-н, г Михайловск" - через метод formatSelected оставляю в input только "Михайловск".
2. поля перезагружаются ajax-ом, и я вызываю метод fixData() для получения объекта подсказок - подсказка не находится, поле сбрасывается. Если в formatSelected ставлю "Шпаковский р-н, г Михайловск" или "Ставропольский край, г Михайловск" - подсказка подхватывается, но мне нужен только город в этом поле.
3. Методом тыка выяснил, что аналогичная ситуация со всеми населенными пунктами, где указывается район - "Респ Бурятия, Муйский р-н, поселок Витим" ("поселок Витим" - подсказку не находит) и т.п..
Прошу подсказать, как решить эту проблему, спасибо.
Александр, спасибо за ссылку!
1) как вариант, можно подсказывать город с учетом региона, передав его название в настройке constraints. Единственное, названия регионов должны быть как в КЛАДР. Остальную часть адреса можно подсказывать с ограничением по городу.
2) метод fixData() применяется к конкретному полю, поэтому он будет работать только на нём и с учетом тех полей, которые с ним связаны (через параметр constraints для гранулярных).
Если остались вопросы, пожалуйста, спрашивайте)
Вывести список улиц используя API
Подскажите пож-та можно ли через API вытащить список улиц города?
Пока нигде подобного монстра найти не могу
Как на стороне сервера определить, что это чепуха (набор букв)?
Можно проверять введённые данные с помощью АПИ Стандартизации: отправлять запрос с пользовательским адресом, в ответ придет стандартизованный вариант разбора от Дадаты. Такой вариант подойдёт?
Вытащить список улиц через API Дадаты нельзя. Можно взять их из справочника ФИАС.
Нет координат для "МО, рп Заречье, ул Тихая, д 1"
"Подсказки" не возвращают геокоординаты для адреса "Московская обл, Одинцовский р-н, рп Заречье, ул Тихая, д 1"
502 ошибка при стандартизации
Сервис стандартизации вернул код, который отсутствует в документации
DaDataApi: dadata status - 502
Андрей, была большая нагрузка в период с 15 до 16:30, поэтому часть запросов отработала с ошибкой. После 16:30 все работает корректно.
Python-клиент для Стандартизации. Pull requests приветствуются.
В целом, в python есть requests. Но хочется быть менее многословным внутри проектов. И иметь интеграцию с основными фреймворками.
Нет координат домов на ул Летной в Мытищах
Пример адреса: Московская обл, г Мытищи, ул Летная, д 1
Ответ:
{"suggestions": [{ "value": "Московская обл, г Мытищи, ул Летная, д 1", "unrestricted_value": "Московская обл, г Мытищи, ул Летная, д 1", "data": { ... "geo_lat": null, "geo_lon": null, ... } }] }
Мы постоянно работаем над увеличением покрытия, в ближайшее время постараемся добавить координаты для домов на ул Летной. Спасибо за сообщение!
Сервис поддержки клиентов работает на платформе UserEcho