Si è corretto in quanto il livello dati è un singolo livello. Tuttavia, se si recupera manualmente GeoJSON e si utilizza la funzione addGeoJson
anziché loadGeoJson
, verranno restituite le funzionalità aggiunte. Puoi rimuoverli in seguito.
Così, invece di
map.data.loadGeoJson('https://storage.googleapis.com/maps-devrel/google.json');
Si può fare qualcosa di simile (questo esempio utilizza jQuery per ottenere i dati e assume c'è un pulsante con l'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)
In circostanze più complesse, è probabilmente necessario tenere traccia di quale origine dati è stato caricato dall'utente e le funzionalità create per questo motivo può cancellarli quando richiesto.
Grazie. Questo ha risposto a una domanda diversa, ma simile, su cui ho lavorato per alcune ore. – Giganticus