Google Map API V3: Cách thêm dữ liệu Tùy chỉnh vào điểm đánh dấu


117

Có cách nào để tôi có thể thêm một số thông tin tùy chỉnh vào các điểm đánh dấu của mình để sử dụng sau này không. Có nhiều cách để có cửa sổ thông tin và tiêu đề, nhưng điều gì Nếu tôi muốn kết hợp điểm đánh dấu với thông tin khác.

Tôi có những thứ khác đang được hiển thị trên trang phụ thuộc vào điểm đánh dấu, vì vậy khi một điểm đánh dấu được nhấp vào, nội dung trên trang phải thay đổi tùy thuộc vào điểm đánh dấu được nhấp vào. Tôi muốn lưu trữ và truy xuất dữ liệu tùy chỉnh khi một điểm đánh dấu được cho là nhấp vào v.v.

Cảm ơn

Câu trả lời:


214

Vì Google Marker là một đối tượng JavaScript, bạn có thể thêm thông tin tùy chỉnh vào biểu mẫu key: value, trong đó khóa là một chuỗi hợp lệ. Chúng được gọi là thuộc tính đối tượng và có thể được tiếp cận theo nhiều cách khác nhau. Giá trị có thể là bất kỳ thứ gì hợp pháp, đơn giản như số hoặc chuỗi, và cả các hàm, hoặc thậm chí các đối tượng khác. Ba cách đơn giản: trong khai báo, ký hiệu dấu chấm và dấu ngoặc vuông

var markerA = new google.maps.Marker({
    map: map,
    position: new google.maps.LatLng(0, 0),
    customInfo: "Marker A"
});

var markerB = new google.maps.Marker({
    map: map,
    position: new google.maps.LatLng(-10, 0)
});
markerB.customInfo = "Marker B";

var markerC = new google.maps.Marker({
    map: map,
    position: new google.maps.LatLng(-20, 0)
});
markerC['customInfo'] = "Marker C";

Sau đó, để truy xuất nó theo cách tương tự:

google.maps.event.addListener(markerA, 'click', function() {
    alert(this.customInfo);
});

3
Không có gì trong tài liệu chính thức hóa mẫu này. Đây là hy vọng họ làm thay vì phá vỡ nó trong một phiên bản mới hơn.
Adam

1
Thuộc tính 'customInfo' không tồn tại trên loại 'Marker'.
alehn96

1
Nếu bạn đang sử dụng nguyên cảo, bạn có thể muốn sử dụng dấu ngoặc chứ không phải là dấu chấm để gán thuộc tính như vậy
Cocoduf

14

Bạn có thể thêm các thuộc tính tùy chỉnh của riêng mình vào các điểm đánh dấu (chỉ cần cẩn thận để không xung đột với các thuộc tính của API).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.