Как в Yandex Maps 3.0 получить значение адреса при использовании suggest()?
В API Яндекс Карт новой версии 3.0 существует метод suggest(), который возвращает строковый набор подсказок.
Ранее в версии 2.1 этот метод возвращал объекты, содержащие поля displayName и value. Полученный value можно было использовать, например, для дальнейшего геокодирования.
В версии 3.0 же метод возвращает только title и subtitle, которые подходят для отображения в заголовке и подзаголовке подсказки, но при этом в ответе нет поля-аналога value, который можно было бы использовать как выбранное значение адреса.
value можно было бы получить манипуляциями над полями title и subtitle, однако, это небезопасно и также subtitle может иметь дополнительные данные, которые не относятся к адресу. В таких случаях этих полей недостаточно.
Подскажите, пожалуйста, как можно получить настоящий text/value адреса из подсказки?
Пример, когда необходимо получить значение адреса:
Если передать в метод следующие параметры:
ymaps3.suggest({ text: 'Россия, улица вертолетчиков', limit: 10, type: 'toponyms' })
в ответе внутри промиса возвращается массив с похожими элементами (могут добавляться бывшие названия улиц или количество километров до места):
{
subtitle: {
"text": "Москва · Бывш. Проектируемый проезд № 6658",
"hl": []
},
title: {
"text": "улица Вертолётчиков, 13",
"hl": [[0,5],[6,19]]
},
}
В api v2.1 помимо displayName было так же значение value : "Москва, улица Вертолётчиков, 13 ". При этом в самом запросе, отправляемом на сервер видно, что значение text: "Москва, улица Вертолётчиков, 13 " есть, но не прокидывается в ответ метода.
Ответы (1 шт):
Вообще в консоли видно, что саджест возвращает всё те же данные, что и в версии 2.1, но в функцию suggest передаёт только subtitle, title и type. Видимо, пока остальные поля не имеют стабильного адреса, решили их скрыть и, быть может, вывести в ответ позже, как определятся с формой и форматом. Можно поинтересоваться в поддержке, так ли это, и когда сделают.
А вообще Яндекс вывел Геосаджест в отдельный сервис. Для получения расширенного ответа имеет смысл использовать именно его.