Masz rację, ponieważ warstwa danych to pojedyncza warstwa. Jednakże, jeśli ręcznie pobierzesz GeoJSON i użyjesz funkcji addGeoJson
zamiast loadGeoJson
, otrzymasz dodane funkcje. Możesz je później usunąć.
Więc zamiast
map.data.loadGeoJson('https://storage.googleapis.com/maps-devrel/google.json');
można zrobić coś takiego (przykład ten wykorzystuje jQuery, aby uzyskać dane i zakłada, znajduje się przycisk z ID removeBtn):
// 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)
W bardziej złożonych okolicznościach prawdopodobnie musisz śledzić, które źródło danych załadował użytkownik i jakie funkcje zostały utworzone z tego powodu. można je usunąć na żądanie.
Dziękuję. To odpowiadało na inne, ale podobne pytanie, nad którym pracuję od kilku godzin. – Giganticus