IBC (метод)
Материал из post-API.ru
Данный метод (аббр. - Index By City) предназначен для определения индекса адресного объекта, идентифицируемого двумя входными параметрами: а) фрагмент названия города, б) фрагмент названия улицы. Метод может быть использован следующим образом.
- Рядом с полем ввода индекса выводится ссылка "Не знаете индекс?".
- При нажатии на ссылку, открывается диалоговое окно, в котором имеется два поля "Фрагмент названия города" и "Фрагмент названия улицы", и кнопка "Искать".
- При вводе фрагментов и нажатии "Искать" из post-API.ru загружаются названия объектов, соответствующие введенным фрагментам, и их индексы. Индексы рекомендуется оформить ссылками.
- При нажатии на конкретный индекс, должен вызываться метод ABI, который вернет информацию "до дома".
- После того, как клиент найдет визуально свой дом, при клике на него, диалоговое окно закрывается, а форма ввода адреса сразу заполняется всеми элементами адресной информации.
Содержание
Версия API
Версия 2.0
Вызов
http://post-api.ru/api/v2/ibc.php?c=сан&s=нев&apikey=dev&d=1
Параметры
Ключ | Обязательный | Описание |
c | О | фрагмент наименования города, начиная с первого символа (при вводе "сан" будет найден "Санкт-Петербург", но не "Александров"). Название города может вводиться без учета регистра. |
s | О | фрагмент наименования улицы, начиная с первого символа (при вводе "нев" будет найден "Невский проспект", но не "Вишневая ул."). Название улицы может вводиться без учета регистра. |
apikey | О | Ключ доступа к API. |
d | Н | Отладочный режим. |
Возвращаемое значение
C этим методом используются массивы-ответы: IBCv2_content, route.
Успешное выполнение запроса
[id] => IBC // Тип результирующей структуры [api_ver] => 2.0 // Входит в семейство методов версии 2.0 [status] => ok // Результат вызова метода. Может быть error и ok [access] => active // Статус ключа доступа к post-API.ru [access_status] => ok // Статус доступа с использованием ключа [executed_time] => 0.24212 // Время исполнения скрипта (без учета сетевых задержек) [source] => Array // Исходные данные, передаваемый в базу данных (контроль) ( [city] => сан [search] => нев ) [content] => // структура IBCv2_content
Ошибка
[id] => IBC [api_ver] => 2.0 [access] => active [access_status] => ok [executed_time] => 0 [status] => error [content] => Array ( [msg] => Фрагмент имени улицы должен содержать не менее 2 символов [err] => ibc_fewchars )
Особенности
- Поиск информации осуществляется с базе данных размером свыше 20 млн. записей. Это определяет среднее время работы метода 0.9 - 1.1 сек. Поэтому рекомендуется в форме запроса использовать кнопку "Искать", которой пользователь принудительно вызовет метод IBC. Допускается вызов метода IBC при каждом изменении полей ввода фрагментов города/улицы, но при этом может возникать задержка, снижающая юзабилити сайта.
- В возвращаемой структуре названия улиц отсортированы по возрастанию.
- Фрагмент имени города/улицы может передаваться как текстом, так и в виде строки, закодированной urlencode (Например, "Невский проспект" - %D0%9D%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9). Настоятельно рекомендуется отправлть в API запрос именно в кодированном формате для гарантии корректной обработки символов "пробел", "кавычки" и прочие.
- Если длина переданного фрагмента улицы равен одному символу - то будет возвращена ошибка. Фрагмент имени города может содержать один символ.
- 04.05.2013 метод был скорректирован. До этого момента метод работал таким образом, что при превышении количества найденных городов 25, формат структуры менялся, чтобы не допустить больших задержек в работе (например при вводе "Ново/Лен" время работы метода превышало 64 секунды). С этого момента количество результатов жестко ограничено 25.
Обсуждение
Форум для обсуждения метода IBC
Примеры использования
нет
Фрагменты кода
нет
История
- 04.05.2013 - жестко задано количество городов, которое может быть в результирующем ответе. Количество ограничено 25-ю.