Автодополнение физических адресов по базе ФИАС.
Для инициализации необходимо запустить init.php. Поддерживаются 3 режима работы:
php cli/init.php— скачает с сайта ФИАСа последнюю версию базы, распакует и импортирует;php cli/init.php /path/to/archive.rar— распакует и импортирует архив;php cli/init.php /path/to/fias_directory— импортирует уже распакованный архив.
Пример запроса:
http://fias.loc/api/complete?pattern=Невск&limit=20
Ответ:
{
"items": [
{"title": "г Москва, пр Невский", "is_complete": false, "tags": ["address"]},
{"title": "г Москва, Невское урочище", "is_complete": false, "tags": ["address"]},
{"title": "Невский вокзал", "is_complete": true, "tags": ["place", "railway"]}
]
}
GET-параметры:
pattern— дополняемый адрес;limit— максимальное количество вариантов дополнения в ответе (не более 50, см.config/config.ini);regions— массив номеров регионов для ограничения поиска адресов (см.database/02_system_data.sql);max_address_level— максимальная детализация адреса.
Максимальная детализация влияет на состав дополняемых вариантов (см. ниже).
Поля ответа:
items— массив вариантов дополнения адреса;title— текст варианта дополнения;is_complete—trueдля адресов, которым не нужно дальнейшее дополнение (набран точный адрес, либо достигнута максимальная детализация адреса);tags— присущие варианту ответа свойства (см. раздел теги).
Параметр is_complete помогает отличить точные адреса от промежуточных вариантов дополнения.
Например, если на Невском проспекте есть дом 11, то
при дополнении строки "Санкт-Петербург" для варианта "Санкт-Петербург, Невский проспект" is_complete=false,
а дополнении строки "Санкт-Петербург, Невский проспект" для варианта "Санкт-Петербург, Невский проспект 11" is_complete=true.
Параметр is_complete не учитывает параметры детализации.
Примеры запросов с ограничением детализации:
http://fias.loc/api/complete?pattern=Москва, Невский пр.&limit=20
В ответе будут все варианты вплоть до номеров домов:
{
"items": [
{"title": "г Москва, пр Невский, 10", "is_complete": true, "tags": ["address"]},
{"title": "г Москва, пр Невский, 11", "is_complete": true, "tags": ["address"]}
]
}
http://fias.loc/api/complete?pattern=Мос&limit=20&max_address_level=region
В ответе будут только регионы без дальнейшей детализации:
{
"items": [
{"title": "г Москва", "is_complete": true, "tags": ["address"]},
{"title": "обл Московская", "is_complete": true, "tags": ["address"]}
]
}
Пример запроса:
http://fias.loc/api/validate?pattern=Москва, Невский пр.
Ответ:
{
"items": [
{
"is_complete": false,
"tags": ["address"]
},
{
"is_complete": true,
"tags": ["place", "railway"]
}
]
}
GET-параметры:
pattern— проверяемый адрес.
Поля ответа:
items— массив вариантов корректных объектов;is_complete—trueдля точного адреса (вместе с домом, корпусом и т.п.);tags— присущие варианту ответа свойства (см. раздел теги):
Пример запроса:
http://fias.loc/api/postal_code_location?postal_code=198504
Ответ:
{
"address_parts": [
{"title": "г Санкт-Петербург", "address_level": "region"},
{"title": "р-н Петродворцовый", "address_level": "city_district"}
]
}
GET-параметры:
postal_code— почтовый индекс.
Поля ответа:
address_parts— массив частей адреса по уровням детализации;title— название;address_level— уровень детализации (район, город и т.п.).
Если соединить по порядку title всех частей адреса в строку,
получится общий префикс для всех адресов по указанному почтовому индексу.
Пример запроса:
http://fias.loc/api/address_postal_code?address=обл Псковская, р-н Новосокольнический, д Мошино
Ответ:
{
"postal_code": 182200
}
GET-параметры:
address— адрес.
Поля ответа:
postal_code— почтовый индекс илиnull, если индекс не найден.
region— регион: Санкт-Петербург, Московская область, Хабаровский край;area— округ: пока данные отсутствуют, заложено для дальнейшей совместимости с ФИАС, когда ФИАС перенесет часть элементов из region;area_district— район округа/региона: Волжский район, Ломоносовский район, Гатчинский район;city— город: Петергоф, Сосновый бор, Пушкин;city_district— район города: микрорайон № 13, Кировский район, Центральный район;settlement— населенный пункт: поселок Парголово, станция Разлив, поселок Металлострой;street— улица: проспект Косыгина, улица Ярославская, проспект Художников;territory— дополнительная территория: Рябинушка снт (садовое некоммерческое товарищество), Победа гск (гаражно-строительный кооператив);sub_territory— часть дополнительной территории: Садовая улица, 7-я линия;building— конкретный дом (максимальная детализация).
"address"— текст найден в ФИАС;"place"— текст найден в списке places (аэропорты, вокзалы, порты и т.д.);"airport"— аэропорт;"railway_station"— вокзал;"bus_terminal"— автовокзал;"port"— порт;"airport_terminal"— терминал аэропорта;"riverside_station"— речной вокзал.
Для указания формата необходимо добавить его к названию ресурса:
.jsonдля JSON (по умолчанию).jsonpдля JSONP. Для JSONP требуется дополнительный GET параметр callback.
Пример запроса:
http://fias.loc/api/complete.jsonp?pattern=Невск&limit=20&callback=someFunction
Ответ:
someFunction(
{
"items": [
{"title": "г Москва, пр Невский", "is_complete": false, "tags": ["address"]},
{"title": "г Москва, Невское урочище", "is_complete": false, "tags": ["address"]},
{"title": "Невский вокзал", "is_complete": true, "tags": ["place", "railway"]}
]
}
)