Bạn chính xác trong đó Lớp dữ liệu là một lớp duy nhất. Tuy nhiên, nếu bạn truy xuất GeoJSON theo cách thủ công và sử dụng chức năng addGeoJson
thay vì loadGeoJson
, bạn sẽ nhận được các tính năng bổ sung được trả lại. Bạn có thể xóa chúng sau này.
Vì vậy, thay vì
map.data.loadGeoJson('https://storage.googleapis.com/maps-devrel/google.json');
Bạn có thể làm một cái gì đó như thế này (ví dụ này sử dụng jQuery để lấy dữ liệu và giả định có một nút với removeBtn ID):
// Load the GeoJSON manually (works cross-origin since google sets the required HTTP headers)
$.getJSON('https://storage.googleapis.com/maps-devrel/google.json', function (data) {
var features = map.data.addGeoJson(data);
// Setup event handler to remove GeoJSON features
google.maps.event.addDomListener(document.getElementById('removeBtn'), 'click', function() {
for (var i = 0; i < features.length; i++)
map.data.remove(features[i]);
});
});
(See this JSbin for a working example you can play around with)
Trong các trường hợp phức tạp hơn, bạn có thể phải theo dõi nguồn dữ liệu nào người dùng đã tải và các tính năng đã tạo do đó, do đó bạn có thể xóa chúng khi được yêu cầu.
Cảm ơn bạn. Điều này đã trả lời một câu hỏi khác, nhưng tương tự như tôi đã làm việc trong một vài giờ ngay bây giờ. – Giganticus