0
Отвечен

Стандартизация адреса с корпусом и строением одновременно

Анонимный 8 лет назад обновлен Владислав 2 года назад 14

Как через апи получить номер дома номер корпуса и номер строения отдельно? В JSON только 2 поля номер дома и block_type block

Ответ

Ответ
Отвечен

Добрый день!

Корпус и строение у нас живут в одном поле, номер – в block, тип в block_type.

Ответ
Отвечен

Добрый день!

Корпус и строение у нас живут в одном поле, номер – в block, тип в block_type.

Да посмотрел сейчас адрес Москва, Улица Рогова, дом 12, корпус 2, строение 1, block_type: "к" block: "2 стр 1" То есть если тип корпус то нужно проверять значение на наличие там "стр"? Это всегда так кодируется? Наоборот быть не может? Могут ли быть еще какие либо варианты что в block находится 2 значения? И не думали вы о том чтобы передавать дополнительно массив наподобие [{type: "дом", value: 12}, {type: "корпус", value: '2'}, {type:"строение", value: "1"}]?

Пока не думали, а зачем? Какой у вас сценарий использования?

Обработка адресов для выгрузки xml фидов по недвижимости. У яндекс недвижимости, мейл.ру, авито, циан, рбк, у всех адреса в xml идут по разному, вот этот вопрос возник из-за mail.ru у них номер дома пишется как -

Набор элементов, описывающих номер дома

number Номер дома, включая дробь

building Номер или литера строения
struct Номер корпуса

в примерах
<house>

<number>7</number>

<build>1</build>

<struct>2</struct>

</house>


В яндексе адрес пишется строкой, в циане улица и отдельно номер дома полностью(с корпусом строением ну и тд отдельное поле) И это только Москва город, в загороде все еще хуже(


То есть в идеале, хотелось бы весь адрес разобранный по частям без сокращений, что нужно - то и используешь, например районы без "р-н" если надо "р-н" можно вставить и так.

В Дадате так и сделано для всех полей, кроме района города и корпуса со строением.


Если у дома есть и корпус, и строение: в block_type будет «к», а внутри block — «стр». Подробности: корпус и строение.

ну правда, а что мешает и это отдавать отдельно, вроде бы не такие уж большие изменения? Я согласен, это не главное, если вы научитесь разбирать адреса вида - Московская область, ЖК Парк Рублево, я куда больше обрадуюсь... хотя бы давать Красногорский район...


Такие адреса планируем разбирать в 2016 году, подключим справочник дополнительных адресов, которых нет в ФИАС.

если ввести уровень распознавания по деталям, то есть улица, дом, город, и т.д. этому обрадуются многие, и тогда можно использовать и не четкое распознавание, просто ставить ему уровень низкий и все...

На рассмотрении

Мы отдаем уровень, до которого распознан адрес, в коде полноты, и в поле fias_level. Можете уточнить, что имеете в виду? Возможно, я неправильно понял вашу мысль.

Яндекс-Маркет требует отдельно корпус и строение и еще много чего в отдельных полях
https://yandex.ru/dev/market/partner-dsbs/doc/dg/reference/post-campaigns-id-outlets.html
Когда планируется разделять корпуса и строения?

Вышел из положения небольшим парсером, надеюсь формат записи у вас останется "N стрN"

//в корпусе может быть и строение.
$strs = explode('стр', $result[0]['block']);
$res['block'] = trim($strs[0]);
if(!empty($strs[1])){
$res['building'] = trim($strs[1]);
}

Владислав, справочник адресов России намного сложнее, чем представляет себе Яндекс. Распарсить все возможные варианты нереально, я бы и не пытался. Полагаю, если вы будете отдавать house + block Яндексу в поле house, он не расстроится.

Сервис поддержки клиентов работает на платформе UserEcho