Головна/Посібники/Розробники
Розробники

Як інтегрувати карту мобільності у свій сайт?

Інтегруйте карту ROOTE у ваш сайт: адаптивний iframe, фільтри велосипедів, туалетів, автобусів і трамваїв, пошук міста та передача параметрів.

By ROOTE·7 хв читання
Як інтегрувати карту мобільності у свій сайт?
Корисна карта, інтегрована у вашу сторінку.

Головне за декілька секунд

Використовуйте iframe на embed.roote.ai та передавайте місце, масштаб і режими у його URL. Розділяйте камеру і точку пошуку, зберігайте параметри при переході на map.roote.ai і перевіряйте відображення на мобільних пристроях.

Щоб інтегрувати карту мобільності у ваш сайт без створення повного інтерфейсу, використовуйте iframe ROOTE. Вбудовування може приймати пошук міста та відповідні фільтри для сторінки: велосипеди для велогіда, туалети для гіда по вбиральнях, автобуси та трамваї для транспорту.

Приклади цього керівництва використовують embed.roote.ai, домен, інтегрований у гідах ROOTE. Загальна документація також описує інтеграцію map.roote.ai і розрізняє параметри камери та повного пошуку.

Додавання адаптивного iframe

Цей блок відкриває пошук велосипедів у Бордо з масштабом 15. URL формується у коді; заголовок iframe описує вміст для екранних рідерів. Підлаштуйте цей заголовок під мову вашої сторінки.

<iframe
  title="Carte ROOTE — vélos à Bordeaux"
  src="https://embed.roote.ai/?q=Bordeaux&amp;modes=bicycle&amp;zoom=15"
  width="100%"
  height="480"
  loading="lazy"
  allow="geolocation"
  style="display:block; width:100%; min-height:360px; border:0; border-radius:16px;"
></iframe>

В HTML-атрибуті роздільники & записуються як &amp;. Ширина 100% слідує за шириною контейнера. Зберігайте висоту зручною для мобільних пристроїв і уникайте розміщення важливих елементів керування за межами видимої зони.

Вибір режимів, які відповідають сторінці

ПотребаПараметр вбудовування
Велосипедиmodes=bicycle
Туалетиmodes=toilets
Автобусmodes=bus
Трамвайmodes=tram
Автобус і трамвайmodes=bus,tram
Велосипеди і туалетиmodes=bicycle,toilets

Ці значення використовуються в маршрутах embed ROOTE, які пов’язані з категоріями мобільності, сервісів і транспорту. Вони не замінюють параметри REST: Сервіси використовують types, а Транспорт – modes. Карта з центром на місті не гарантує, що у кожній категорії будуть результати.

Розрізняти камеру і точку пошуку

lat і lon позиціонують камеру. Вони не достатні у задокументованому контракті карти, щоб створити пошук поблизу. Щоб відновити відомий пошук, використовуйте search_lat, search_lon і search_label разом з modes і zoom.

https://embed.roote.ai/?search_lat=44.8416106&search_lon=-0.5810938&search_label=Bordeaux&zoom=15&modes=bus,tram

Вказані координати – це орієнтир у Бордо, а не позиція користувача. Якщо додати параметри камери, можна показати іншу зону, зберігаючи точку для обчислення відстаней. Робіть це лише якщо така роздільність потрібна.

Документація параметрів карти ROOTE

Створення URL без втрати спеціальних символів

Використовуйте URL і URLSearchParams замість ручного конкатенування. Це кодує пробіли, акценти і роздільники. Цей код призначений для браузера і створює адресу iframe з введеного місця.

const embedUrl = new URL('https://embed.roote.ai/');
embedUrl.searchParams.set('q', 'Place des Quinconces, Bordeaux');
embedUrl.searchParams.set('modes', 'bicycle,toilets');
embedUrl.searchParams.set('zoom', '15');
document.querySelector('iframe').src = embedUrl.toString();

Збереження контексту при переході до повної карти

Посилання на map.roote.ai має відтворювати поточний стан пошуку, якщо ви його знаєте. Створення URL без параметрів втратить місто, режими або масштаб. Зберігайте спільний об’єкт URL при оновленнях із сторінки.

const fullMapUrl = new URL('https://map.roote.ai/');
fullMapUrl.search = embedUrl.search;
const link = document.querySelector('[data-open-map]');
link.href = fullMapUrl.toString();
link.target = '_blank';
link.rel = 'noopener noreferrer';

Цей код зберігає параметри, відомі батьківській сторінці. Якщо користувач змінює пошук у iframe, батько не може напряму прочитати його URL на іншому домені. Для отримання стану потрібен явно реалізований і документований механізм, наприклад, обмін postMessage із валідацією джерела. Не вигадуйте івенти, яких немає в embed.

Керування локалізацією та мобільними взаємодіями

allow="geolocation" дозволяє iframe запитувати локалізацію за згодою і політикою дозволів сайту. Відмова не повинна заважати пошуку міста. Не запитуйте позицію одразу при завантаженні, якщо користувач цього не обрав.

У статті свідоме активування карти може уникнути перехоплення жестів прокручування чи масштабування під час читання. Керування має бути доступним з клавіатури й зрозуміло позначеним. Перевіряйте орієнтацію та вузький екран, а не лише десктоп-версію.

Перевірка результату та станів помилки

Перевірте кожен фільтр, відоме місто, область з мало даних, неправильний пошук і відсутність категорії. Карта без маркерів сама по собі не показує, чи пошук порожній чи є збій. Зберігайте повідомлення embed і доступ до повної карти.

Розрізнення відсутності результату і помилки API

Вибір між embed, API і MCP

Приклад гіда для пошуку туалетів

Для розробниківROOTE Mobility API

Мобільність навколо точки.
Прямо у ваш додаток.

  • Пошук
    навколо позиції
  • Отримати
    дані про мобільність
  • Вбудувати у
    ваш додаток

Перейдіть від карти до даних: шукайте мобільність і сервіси поруч з ROOTE API.

Поширені питання

Чи треба вставляти API-ключ у iframe?

Публічні URL, показані тут, не містять його. Не розміщуйте секретні ключі в URL embed або клієнтському коді.

zoom=15 збільшує радіус пошуку?

Масштаб регулює вид. Не ототожнюйте його з радіусом API-запиту; перевіряйте параметри пошуку у застосованому інтерфейсі.

Чи знає батько про зміни у iframe?

Він знає лише параметри, які передає. Внутрішні зміни вимагають задокументованого механізму обміну між двома доменами.

А чому б не подивитись навколо?

Досліджуйте свій район з ROOTE та знаходьте доступну інформацію для планування поїздок.

Дослідити карту ROOTE ↗