0
Не ошибка
Неправильная стандартизация с предпочтительным регионом
На нашем сайте мы сделали строку ввода адреса, в которой выдаются подсказки. После ввода адреса происходит стандартизация по строке. По некоторым адресам странное поведение. Например, по адресу «улица Дмитрия Устинова д 3 кв 9» показывается верная подсказка. Если эту подсказку не выбрать и отправить запрос на стандартизацию (нажатием «сохранить»), то мы получим «Москва, б-р Дмитрия Донского д 3 кв 9». В чем может быть проблема?
(Я оставлял этот вопрос, но был не авторизован, поэтому пишу ещё раз)
(Я оставлял этот вопрос, но был не авторизован, поэтому пишу ещё раз)
Ответ
На рассмотрении
Добрый день!
Пожалуйста, дайте точный запрос, который вы отправляете на сервис стандартизации.
Пожалуйста, дайте точный запрос, который вы отправляете на сервис стандартизации.
Запрос: {"query":"улица устинова дом 3 кв 9","locations_boost":[{"kladr_id":78}]}
Ответ: [{"area": null, "area_type": null, "area_type_full": null, "block": null, "block_type": null, "city": null, "city_type": null, "city_type_full": null, "country": "\u0420\u043e\u0441\u0441\u0438\u044f", "fias_id": "459246c2-cb32-4794-9f88-dffa25e3405d", "flat": "9", "flat_area": "73.20", "flat_type": "\u043a\u0432", "geo_lat": "55.75537713650999", "geo_lon": "37.4067997249603", "house": "3", "house_type": "\u0434", "kladr_id": "7700000000070480005", "okato": "45268560000", "oktmo": "45319000", "postal_box": null, "postal_code": "121609", "qc": 0, "qc_complete": 0, "qc_geo": 0, "qc_house": 2, "region": "\u041c\u043e\u0441\u043a\u0432\u0430", "region_type": "\u0433", "region_type_full": "\u0433\u043e\u0440\u043e\u0434", "settlement": null, "settlement_type": null, "settlement_type_full": null, "source": "\u0443\u043b\u0438\u0446\u0430 \u0443\u0441\u0442\u0438\u043d\u043e\u0432\u0430 \u0434\u043e\u043c 3 \u043a\u0432 9", "street": "\u041e\u0441\u0435\u043d\u043d\u0438\u0439", "street_type": "\u0431-\u0440", "street_type_full": "\u0431\u0443\u043b\u044c\u0432\u0430\u0440", "tax_office": "7731", "timezone": "UTC+3", "unparsed_parts": null}]
Или:
запрос: {"query":"улица дмитрия устинова д 3 кв 9","locations_boost":[{"kladr_id":78}]}
ответ: [{"area": null, "area_type": null, "area_type_full": null, "block": null, "block_type": null, "city": null, "city_type": null, "city_type_full": null, "country": "\u0420\u043e\u0441\u0441\u0438\u044f", "fias_id": "a8f32744-cb62-4a09-be9e-54c0c04c4ccc", "flat": "9", "flat_area": null, "flat_type": "\u043a\u0432", "geo_lat": "55.56929020853665", "geo_lon": "37.575853208742195", "house": "3", "house_type": "\u0434", "kladr_id": "77000000000329600", "okato": "45293582000", "oktmo": "45906000", "postal_box": null, "postal_code": "117216", "qc": 1, "qc_complete": 10, "qc_geo": 2, "qc_house": 10, "region": "\u041c\u043e\u0441\u043a\u0432\u0430", "region_type": "\u0433", "region_type_full": "\u0433\u043e\u0440\u043e\u0434", "settlement": null, "settlement_type": null, "settlement_type_full": null, "source": "\u0443\u043b\u0438\u0446\u0430 \u0434\u043c\u0438\u0442\u0440\u0438\u044f \u0443\u0441\u0442\u0438\u043d\u043e\u0432\u0430 \u0434 3 \u043a\u0432 9", "street": "\u0414\u043c\u0438\u0442\u0440\u0438\u044f \u0414\u043e\u043d\u0441\u043a\u043e\u0433\u043e", "street_type": "\u0431-\u0440", "street_type_full": "\u0431\u0443\u043b\u044c\u0432\u0430\u0440", "tax_office": "7727", "timezone": "UTC+3", "unparsed_parts": "\u0423\u0421\u0422\u0418\u041d\u041e\u0412\u0410"}]
Ответ: [{"area": null, "area_type": null, "area_type_full": null, "block": null, "block_type": null, "city": null, "city_type": null, "city_type_full": null, "country": "\u0420\u043e\u0441\u0441\u0438\u044f", "fias_id": "459246c2-cb32-4794-9f88-dffa25e3405d", "flat": "9", "flat_area": "73.20", "flat_type": "\u043a\u0432", "geo_lat": "55.75537713650999", "geo_lon": "37.4067997249603", "house": "3", "house_type": "\u0434", "kladr_id": "7700000000070480005", "okato": "45268560000", "oktmo": "45319000", "postal_box": null, "postal_code": "121609", "qc": 0, "qc_complete": 0, "qc_geo": 0, "qc_house": 2, "region": "\u041c\u043e\u0441\u043a\u0432\u0430", "region_type": "\u0433", "region_type_full": "\u0433\u043e\u0440\u043e\u0434", "settlement": null, "settlement_type": null, "settlement_type_full": null, "source": "\u0443\u043b\u0438\u0446\u0430 \u0443\u0441\u0442\u0438\u043d\u043e\u0432\u0430 \u0434\u043e\u043c 3 \u043a\u0432 9", "street": "\u041e\u0441\u0435\u043d\u043d\u0438\u0439", "street_type": "\u0431-\u0440", "street_type_full": "\u0431\u0443\u043b\u044c\u0432\u0430\u0440", "tax_office": "7731", "timezone": "UTC+3", "unparsed_parts": null}]
Или:
запрос: {"query":"улица дмитрия устинова д 3 кв 9","locations_boost":[{"kladr_id":78}]}
ответ: [{"area": null, "area_type": null, "area_type_full": null, "block": null, "block_type": null, "city": null, "city_type": null, "city_type_full": null, "country": "\u0420\u043e\u0441\u0441\u0438\u044f", "fias_id": "a8f32744-cb62-4a09-be9e-54c0c04c4ccc", "flat": "9", "flat_area": null, "flat_type": "\u043a\u0432", "geo_lat": "55.56929020853665", "geo_lon": "37.575853208742195", "house": "3", "house_type": "\u0434", "kladr_id": "77000000000329600", "okato": "45293582000", "oktmo": "45906000", "postal_box": null, "postal_code": "117216", "qc": 1, "qc_complete": 10, "qc_geo": 2, "qc_house": 10, "region": "\u041c\u043e\u0441\u043a\u0432\u0430", "region_type": "\u0433", "region_type_full": "\u0433\u043e\u0440\u043e\u0434", "settlement": null, "settlement_type": null, "settlement_type_full": null, "source": "\u0443\u043b\u0438\u0446\u0430 \u0434\u043c\u0438\u0442\u0440\u0438\u044f \u0443\u0441\u0442\u0438\u043d\u043e\u0432\u0430 \u0434 3 \u043a\u0432 9", "street": "\u0414\u043c\u0438\u0442\u0440\u0438\u044f \u0414\u043e\u043d\u0441\u043a\u043e\u0433\u043e", "street_type": "\u0431-\u0440", "street_type_full": "\u0431\u0443\u043b\u044c\u0432\u0430\u0440", "tax_office": "7727", "timezone": "UTC+3", "unparsed_parts": "\u0423\u0421\u0422\u0418\u041d\u041e\u0412\u0410"}]
Запрос {"query":"улица дмитрия устинова д 3 кв 9","locations_boost":[{"kladr_id":78}]} - это запрос в подсказки.
Приведенный ответ - ответ от сервиса стандартизации.
А какие данные уходят в Стандартизацию?
Приведенный ответ - ответ от сервиса стандартизации.
А какие данные уходят в Стандартизацию?
Мы отправляем такой запрос на стандартизацию (https://dadata.ru/api/v2/clean/address/), чтобы указать предпочтительный регион (78 — Санкт-Петербург).
Если сделать запрос по стандартизации (просто строка «улица дмитрия устинова дом 3 кв 9»), то будет ответ:
[{"source": "улица дмитрия устинова дом 3 кв 9", "postal_code": "119333", "country": "Россия", "region_type": "г", "region_type_full": "город", "region": "Москва", "area_type": null, "area_type_full": null, "area": null, "city_type": null, "city_type_full": null, "city": null, "settlement_type": null, "settlement_type_full": null, "settlement": null, "street_type": "ул", "street_type_full": "улица", "street": "Дмитрия Ульянова", "house_type": "д", "house": "3", "block_type": null, "block": null, "flat_type": "кв", "flat": "9", "postal_box": null, "kladr_id": "7700000000029640110", "fias_id": "f85ab814-78ce-4dd2-89c4-470104986f54", "okato": "45293558000", "oktmo": "45398000", "tax_office": "7736", "flat_area": "97.50", "timezone": "UTC+3", "geo_lat": "55.69357712326226", "geo_lon": "37.56096235784994", "qc_geo": 0, "qc_complete": 0, "qc_house": 2, "qc": 1, "unparsed_parts": "УСТИНОВА"}]
Если сделать запрос по стандартизации (просто строка «улица дмитрия устинова дом 3 кв 9»), то будет ответ:
[{"source": "улица дмитрия устинова дом 3 кв 9", "postal_code": "119333", "country": "Россия", "region_type": "г", "region_type_full": "город", "region": "Москва", "area_type": null, "area_type_full": null, "area": null, "city_type": null, "city_type_full": null, "city": null, "settlement_type": null, "settlement_type_full": null, "settlement": null, "street_type": "ул", "street_type_full": "улица", "street": "Дмитрия Ульянова", "house_type": "д", "house": "3", "block_type": null, "block": null, "flat_type": "кв", "flat": "9", "postal_box": null, "kladr_id": "7700000000029640110", "fias_id": "f85ab814-78ce-4dd2-89c4-470104986f54", "okato": "45293558000", "oktmo": "45398000", "tax_office": "7736", "flat_area": "97.50", "timezone": "UTC+3", "geo_lat": "55.69357712326226", "geo_lon": "37.56096235784994", "qc_geo": 0, "qc_complete": 0, "qc_house": 2, "qc": 1, "unparsed_parts": "УСТИНОВА"}]
Прошу прощения, у нас есть ещё проксирование запроса на стандартизацию сервером. Он немного меняет запрос и отправляет только строчку «улица дмитрия устинова дом 3 кв 9». Тогда вопросов остается два:
1) почему ответ стандартизации — улица Дмитрия Ульянова
2) как стандартизации передать предпочтительный регион (аналог kladr_id)
1) почему ответ стандартизации — улица Дмитрия Ульянова
2) как стандартизации передать предпочтительный регион (аналог kladr_id)
Ответ
Не ошибка
- Дело в том, что в запросе не указаны ориентиры для стандартизации, такие как город, регион, населенный пункт. Для корректной стандартизации нужно передавать город/область/населенный пункт в запросе.
- Стандартизации пока что нельзя передать предпочтительный регион.
В вашем случае можно попробовать так: отправлять в стандартизацию только корректные данные, полученные от сервиса подсказок. А если это не вариант, то, к примеру, инжектить предпочитаемый город в запрос перед отправкой в стандартизацию.
К сожалению, если инжектить предпочитаемый город в запрос перед отправкой в стандартизацию, то там может оказаться два города. Например, «Москва, Санкт-Петербург, ул. Ульянова д 5 кв 19», потому что Москва предпочитаемый город, а Санкт-Петербург человек ввел сам.
Но спасибо за ответ!
Но спасибо за ответ!
Сервис поддержки клиентов работает на платформе UserEcho
В вашем случае можно попробовать так: отправлять в стандартизацию только корректные данные, полученные от сервиса подсказок. А если это не вариант, то, к примеру, инжектить предпочитаемый город в запрос перед отправкой в стандартизацию.