Trang chủ/Hướng dẫn/Nhà phát triển
Nhà phát triển

Cách tích hợp một bản đồ di chuyển vào trang web của bạn?

Tích hợp bản đồ ROOTE vào trang web của bạn: iframe tự điều chỉnh, bộ lọc xe đạp, nhà vệ sinh, xe buýt và tàu điện, tìm kiếm thành phố và truyền tham số.

By ROOTE·7 phút đọc
Cách tích hợp một bản đồ di chuyển vào trang web của bạn?
Một bản đồ hữu ích, tích hợp trong trang của bạn.

Những điều quan trọng trong vài giây

Sử dụng iframe hướng đến embed.roote.ai và truyền vị trí, mức thu phóng và chế độ lên URL. Phân biệt camera và điểm tìm kiếm, giữ nguyên tham số khi chuyển sang map.roote.ai và kiểm tra hiển thị trên di động.

Để tích hợp một bản đồ di chuyển vào trang web của bạn mà không cần xây dựng toàn bộ giao diện, sử dụng iframe ROOTE. Embed này có thể nhận tìm kiếm thành phố và các bộ lọc phù hợp với trang: xe đạp cho hướng dẫn xe đạp, nhà vệ sinh cho hướng dẫn WC, xe buýt và tàu điện cho giao thông.

Các ví dụ trong hướng dẫn này sử dụng embed.roote.ai, tên miền được tích hợp trong các hướng dẫn ROOTE. Tài liệu chung cũng mô tả việc tích hợp map.roote.ai và phân biệt tham số camera với tham số tìm kiếm đầy đủ.

Thêm một iframe tự điều chỉnh

Khối này mở một tìm kiếm xe đạp ở Bordeaux với mức thu phóng 15. URL được xây dựng trong mã; tiêu đề của iframe mô tả nội dung cho trình đọc màn hình. Điều chỉnh tiêu đề này phù hợp với ngôn ngữ của trang bạn.

<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>

Trong một thuộc tính HTML, các dấu phân cách & được viết là &amp;. Chiều rộng 100% theo kích thước của phần chứa. Giữ chiều cao phù hợp sử dụng trên di động và tránh đặt các điều khiển quan trọng ra ngoài vùng nhìn thấy được.

Chọn các chế độ phù hợp với trang

Nhu cầuTham số của embed
Xe đạpmodes=bicycle
Nhà vệ sinhmodes=toilets
Xe buýtmodes=bus
Tàu điệnmodes=tram
Xe buýt và tàu điệnmodes=bus,tram
Xe đạp và nhà vệ sinhmodes=bicycle,toilets

Những giá trị này thuộc phần embed ROOTE được kết nối với các nhóm di chuyển, dịch vụ và vận chuyển. Chúng không thay thế tham số REST: Services sử dụng types, còn Transit dùng modes. Một bản đồ được trung tâm trên một thành phố không đảm bảo mỗi nhóm đều có kết quả ở đó.

Phân biệt camera và nguồn gốc tìm kiếm

lat và lon định vị camera. Chúng không đủ để tạo một tìm kiếm lân cận trong hợp đồng tài liệu của bản đồ. Để phục hồi một tìm kiếm đã biết, sử dụng search_lat, search_lon và search_label cùng với modes và mức thu phóng.

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

Tọa độ trên là một điểm tham chiếu tại Bordeaux, không phải vị trí người dùng. Nếu bạn cũng thêm tham số camera, bạn có thể hiển thị vùng khác trong khi vẫn giữ điểm dùng để tính khoảng cách. Chỉ làm điều này nếu muốn tách biệt hai phần đó.

Tài liệu tham số của bản đồ ROOTE

Xây dựng URL mà không mất các ký tự đặc biệt

Sử dụng URL và URLSearchParams thay vì nối chuỗi thủ công. Điều này mã hóa khoảng trắng, dấu và dấu phân cách. Đoạn mã này dành cho trình duyệt và tạo địa chỉ iframe dựa trên vị trí nhập vào.

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();

Giữ nguyên ngữ cảnh khi chuyển sang bản đồ đầy đủ

Liên kết tới map.roote.ai phải giữ trạng thái tìm kiếm hiện tại nếu bạn biết. Tạo lại URL mà không có tham số sẽ mất thành phố, chế độ hoặc mức thu phóng. Giữ một đối tượng URL chung trong các cập nhật trên trang của bạn.

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';

Mã này giữ các tham số được trang cha biết. Nếu người dùng thay đổi tìm kiếm trong iframe, trang cha không thể đọc URL trực tiếp từ miền khác. Để lấy trạng thái này, cần một cơ chế triển khai rõ ràng và có tài liệu, ví dụ trao đổi postMessage với xác nhận nguồn gốc. Không tự nghĩ ra tên sự kiện không có trong embed.

Quản lý vị trí và tương tác trên di động

allow="geolocation" cho phép iframe yêu cầu vị trí, tuân theo sự đồng ý và chính sách quyền của trang. Từ chối phải để tìm kiếm thành phố hoạt động bình thường. Không yêu cầu vị trí ngay khi người dùng vào trang nếu họ chưa chủ động chọn.

Trên bài viết, kích hoạt bản đồ thủ công giúp tránh việc cuộn hoặc thu phóng ảnh hưởng đến thao tác đọc. Điều khiển phải còn truy cập được bằng bàn phím và có tên rõ ràng. Kiểm tra thay đổi hướng màn hình và màn hình nhỏ, không chỉ phiên bản máy tính.

Kiểm tra kết quả và tình trạng lỗi

Thử từng bộ lọc, một thành phố quen thuộc, vùng ít dữ liệu, tìm kiếm không hợp lệ và nhóm không có dữ liệu. Bản đồ không có đánh dấu không thể báo rằng tìm kiếm trống hay có lỗi. Giữ lại các tin nhắn từ embed và truy cập bản đồ đầy đủ dễ dàng.

Phân biệt không có kết quả và lỗi API

Chọn giữa embed, API và MCP

Ví dụ hướng dẫn tìm nhà vệ sinh

Dành cho nhà phát triểnAPI Di chuyển ROOTE

Di chuyển quanh một điểm.
Trực tiếp trong ứng dụng của bạn.

  • Tìm kiếm
    xung quanh một vị trí
  • Truy cập
    dữ liệu di chuyển
  • Tích hợp vào
    ứng dụng của bạn

Từ bản đồ đến dữ liệu: tìm kiếm các di chuyển và dịch vụ gần bạn với API ROOTE.

Câu hỏi thường gặp

Có cần đặt key API trong iframe không?

URL công khai hiện tại không có. Không đặt bí mật trong URL embed hay mã phía khách.

zoom=15 có làm tăng bán kính tìm kiếm không?

Zoom điều khiển khung nhìn. Không coi đó là bán kính truy vấn API; kiểm tra tham số tìm kiếm của giao diện bạn dùng.

Trang cha có biết các thay đổi trong iframe không?

Trang cha biết các tham số nó truyền. Thay đổi bên trong yêu cầu cơ chế trao đổi có tài liệu giữa hai miền.

Bạn đã thử nhìn quanh chưa?

Khám phá khu vực với ROOTE và tìm thông tin để chuẩn bị chuyến đi.

Khám phá bản đồ ROOTE ↗