Получить iframe карты по адресу через yandex maps api

Есть необходимость получить iframe карты по заданному адресу.
У меня есть несколько полей: город, улица, дом. После заполнения последнего, адрес собирается в одну строку, и далее нужно сделать запрос к yandex maps api и получить iframe.
Искал необходимое api/решение, не нашёл, поэтому вопрос: Есть ли какой-то готовый способ или нужно собрать?

На всякий случай: фронт реализован на Vue.js 2 + Nuxt.js 3.


Ответы (2 шт):

Автор решения: Andrey

Похоже, что этот функционал есть только в их непубличном API.

https://yandex.ru/maps/api/shortenPath?ajax=1&csrfToken=abc:123&path=/?ll=37.620585%2C55.751461&mode=search&oid=1023322799&ol=biz&z=16.58&s=376169862&sessionId=xyz_456
https://yandex.ru/maps/api/shortenPath?ajax=1&csrfToken=abc:123&path=/org/moskovskiy_kreml/1023322799/?ll=37.620585%2C55.751461&z=16&s=3624378469&sessionId=xyz_456

ll - это координаты
path - url места на maps.yandex.ru

В респонзе - JSON с короткой ссылкой на это место.
{"data": "CCUfRFf9lC"}

Код для iframe всегда одинаковый:

<iframe
  src="https://yandex.ru/map-widget/v1/-/**ЗНАЧЕНИЕ_ИЗ_JSON**"
  width="560" height="400" frameborder="1"
  allowfullscreen="true"
  style="position:relative;">
</iframe>
→ Ссылка
Автор решения: YaCor'

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

А вот схема генерации ссылки для открытия Яндекс Карты есть в их документации. Причём геокодер для такого формата не потребуется. В схеме поиска объекта можно прописать и адрес. В простейшем виде ссылка будет такой:

https://yandex.ru/maps/?text=Реутов,+Калинина,+20

Её можно обернуть в айфрейм, чтобы получить его со стандартным интерфейсом. И это совершенно легальный метод.

<iframe src="https://yandex.ru/maps/?text=Реутов, Калинина, 20" width="100%" height="400""></iframe>

Если хотите урезанного виджета, как по кнопке Поделиться, можно использовать чуть другой формат урла, взятый из кода виджета с поисковой строкой. Но гарантировать, что это будет работать вечно никто не может:

<iframe src="https://yandex.ru/map-widget/v1/?mode=search&text=Реутов, Калинина, 20" width="100%" height="400" frameborder="1" style="position:relative;"></iframe>
→ Ссылка