Skip to content

Events (Sự kiện)

Sử dụng phương thức sdk.on(eventName, callback) để lắng nghe các sự kiện phát ra từ bản đồ. Đây là cơ chế chính để ứng dụng của bạn phản hồi lại hành động của người dùng trên bản đồ.

1. Sự kiện Vòng đời

APP_READY

Phát ra khi ứng dụng bản đồ đã tải xong, dữ liệu site đã được khởi tạo và sẵn sàng nhận lệnh.

javascript
sdk.on("APP_READY", () => {
  console.log("Bản đồ đã sẵn sàng!");
  sdk.setView({ lng: 105.8, lat: 21.0, zoom: 17 });
});

2. Sự kiện Tương tác Bản đồ

poiClicked

Phát ra khi người dùng nhấp chuột vào một POI (điểm quan tâm) trên bản đồ.

javascript
sdk.on("poiClicked", (data) => {
  console.log("POI được chọn:", data.name);
  console.log("Chi tiết POI:", data);
});
  • Payload: Đối tượng chứa thông tin POI (name, category, address, geo, ...).

floorChanged

Phát ra khi người dùng thay đổi tầng (floor) thông qua bộ lọc tầng của bản đồ.

javascript
sdk.on("floorChanged", (payload) => {
  console.log("Tầng hiện tại:", payload.floor);
});
  • Payload: { floor: number | null }.

viewChanged

Phát ra khi bản đồ thay đổi vị trí hoặc mức zoom (kết thúc hành động pan/zoom).

javascript
sdk.on("viewChanged", (payload) => {
  console.log("Tọa độ mới:", payload.center);
  console.log("Zoom mới:", payload.zoom);
});
  • Payload: { center: { lng, lat }, zoom: number }.

3. Cách hủy lắng nghe (Unsubscribe)

Để tránh rò rỉ bộ nhớ (memory leak), bạn nên hủy đăng ký sự kiện khi không còn cần thiết hoặc khi component bị hủy (unmount).

javascript
const handler = (data) => console.log(data);

// Đăng ký
sdk.on("poiClicked", handler);

// Hủy đăng ký
sdk.off("poiClicked", handler);

Bảng tổng hợp sự kiện

Sự kiệnPayloadMô tả
APP_READYN/ABản đồ đã tải xong hoàn toàn.
poiClickedObjectNgười dùng click vào một POI.
floorChanged{ floor }Tầng hiện tại đã thay đổi.
viewChanged{ center, zoom }Khung nhìn bản đồ thay đổi.

Ghi chú cho lập trình viên

  • Xử lý bất đồng bộ: Các sự kiện này được phát ra không đồng bộ qua postMessage. Hãy đảm bảo logic xử lý của bạn không bị chặn bởi các tác vụ nặng trên luồng chính.
  • Phạm vi: Chỉ những sự kiện được SDK định nghĩa mới có thể lắng nghe. Nếu bạn cần thêm sự kiện mới, hãy liên hệ với đội ngũ phát triển VGM Map SDK để được hỗ trợ cập nhật Bridge.