0
Не ошибка

Возвращается Санкт-Петербург в «городе»

Konstantin Stepanenko 9 лет назад обновлен Антон Жиянов 9 лет назад 5
«Санкт-Петербург» возвращается и в поле регион, и в поле город. В запросе на стандартизацию — работает нормально: «Санкт-Петербург» только в поле регион.

Запрос на подсказки: {"query":"г Санкт-Петербург, ул Бабушкина, д 49, кв 29"}
Ответ: {"suggestions":[{"value":"г Санкт-Петербург, ул Бабушкина, д 49, кв 29","unrestricted_value":"г Санкт-Петербург, ул Бабушкина, д 49, кв 29","data":{"qc_complete":null,"qc_house":null,"qc_geo":"0","postal_code":"192171","postal_box":null,"country":"Россия","region_with_type":"г Санкт-Петербург","region_type":"г","region_type_full":"город","region":"Санкт-Петербург","area_with_type":null,"area_type":null,"area_type_full":null,"area":null,"city_with_type":"г Санкт-Петербург","city_type":"г","city_type_full":"город","city":"Санкт-Петербург","settlement_with_type":null,"settlement_type":null,"settlement_type_full":null,"settlement":null,"street_with_type":"ул Бабушкина","street_type":"ул","street_type_full":"улица","street":"Бабушкина","house_type":"д","house_type_full":"дом","house":"49","block_type":null,"block":null,"flat_area":null,"flat_type":"кв","flat":"29","fias_id":"c6f0b463-5db7-4239-8b4f-dfced07ca034","kladr_id":"7800000000001270349","tax_office":"7811","tax_office_legal":null,"okato":"40285562000","oktmo":"40379000","geo_lat":"59.8851975","geo_lon":"30.4313405","unparsed_parts":null,"qc":null}}]}

Ответ

Ответ
Не ошибка
Да, для подсказок это нормально.
Ответ
Не ошибка
Да, для подсказок это нормально.
А можно передавать какой-то параметр, чтобы использовать более правильный вид адреса?
Нет. А чем именно вам мешает Питер в поле «город», какие задачи не позволяет решать?
У нас есть форма полного ввода адреса, в которой мы доверяем пользователю. Когда он переходит из краткой в полную — мы заполняем ему часть полей (которые смогли) из подсказки. И тогда ему просто два раза заполняется «Санкт-Петербург»
Можно не заполнять поле «город» для городов-регионов:
function is_city_region(address) {
  var region_code = address.kladr_id.substr(0, 2);
  return ["77", "78", "92"].indexOf(region_code) !== -1;
}
...
if (!is_city_region(address) {
  $("#city").val(address.city_type + " " + address.city);
}

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