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
       )


Особенности

  1. Поиск информации осуществляется с базе данных размером свыше 20 млн. записей. Это определяет среднее время работы метода 0.9 - 1.1 сек. Поэтому рекомендуется в форме запроса использовать кнопку "Искать", которой пользователь принудительно вызовет метод IBC. Допускается вызов метода IBC при каждом изменении полей ввода фрагментов города/улицы, но при этом может возникать задержка, снижающая юзабилити сайта.
  2. В возвращаемой структуре названия улиц отсортированы по возрастанию.
  3. Фрагмент имени города/улицы может передаваться как текстом, так и в виде строки, закодированной urlencode (Например, "Невский проспект" - %D0%9D%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9). Настоятельно рекомендуется отправлть в API запрос именно в кодированном формате для гарантии корректной обработки символов "пробел", "кавычки" и прочие.
  4. Если длина переданного фрагмента улицы равен одному символу - то будет возвращена ошибка. Фрагмент имени города может содержать один символ.
  5. 04.05.2013 метод был скорректирован. До этого момента метод работал таким образом, что при превышении количества найденных городов 25, формат структуры менялся, чтобы не допустить больших задержек в работе (например при вводе "Ново/Лен" время работы метода превышало 64 секунды). С этого момента количество результатов жестко ограничено 25.

Обсуждение

 Форум для обсуждения метода IBC

Примеры использования

нет

Фрагменты кода

нет

История

  • 04.05.2013 - жестко задано количество городов, которое может быть в результирующем ответе. Количество ограничено 25-ю.