API di Google Maps v3: come rimuovere tutti gli indicatori?


429

Nell'API di Google Maps v2, se volessi rimuovere tutti gli indicatori delle mappe, potrei semplicemente fare:

map.clearOverlays();

Come faccio a farlo nell'API di Google Maps v3 ?

Guardando l' API di riferimento , non mi è chiaro.


3
Ho trovato un po 'di codice al link qui sotto, ma Holy Cow - è un sacco di codice per simulare la precedente 1 riga di codice in v2 dell'API. lootogo.com/googlemapsapi3/markerPlugin.html
mp_

2
ricorda che le mappe 3.0 sono pensate per essere MOLTO leggere per consentire ai dispositivi mobili di utilizzarle con il minor ritardo possibile ...
Petrogad,

1
Le soluzioni qui suggerite sembrano essere rotte dal 29/07/2010. Vorrei invece avere una versione funzionante da suggerire.
Jonathan Hanson,

9
La risposta più votata è sbagliata. Visualizza la fonte in questo esempio per vedere come farlo: google-developers.appspot.com/maps/documentation/javascript/…
Seb Ashton,

Risposte:


487

Basta fare quanto segue:

I. Dichiara una variabile globale:

var markersArray = [];

II. Definire una funzione:

function clearOverlays() {
  for (var i = 0; i < markersArray.length; i++ ) {
    markersArray[i].setMap(null);
  }
  markersArray.length = 0;
}

O

google.maps.Map.prototype.clearOverlays = function() {
  for (var i = 0; i < markersArray.length; i++ ) {
    markersArray[i].setMap(null);
  }
  markersArray.length = 0;
}

III. Inserire i marker nell'array marker prima di chiamare quanto segue:

markersArray.push(marker);
google.maps.event.addListener(marker,"click",function(){});

IV. Chiamare la funzione clearOverlays();o map.clearOverlays();dove richiesto.

Questo è tutto!!


32
per..in loop con un array? questo non può essere buono sicuramente ..? ..see: stackoverflow.com/questions/500504/...
zack

4
In alternativa puoi nascondere i marker usando marker.setVisible (false)
NBK

12
I marker sono comunque mantenuti nell'array, quindi diventerà sempre più grande. Suggerirebbe di cancellare l'array anche dopo il loop
Ami

5
puoi sempre impostare markersArrayun array vuoto invece di impostarne la lunghezza, cosa che trovo strana:markersArray = [];
hellatan,

11
Userei un whileapproccio per l'elaborazione della matrice: while(markersArray.length) { markersArray.pop().setMap(null); }. Successivamente non è necessario cancellare l'array.
YingYang

84

Stesso problema. Questo codice non funziona più.

L'ho corretto, cambia il metodo clearMarkers in questo modo:

set_map (null) ---> setMap (null)

google.maps.Map.prototype.clearMarkers = function() {
    for(var i=0; i < this.markers.length; i++){
        this.markers[i].setMap(null);
    }
    this.markers = new Array();
};

La documentazione è stata aggiornata per includere dettagli sull'argomento: https://developers.google.com/maps/documentation/javascript/markers#remove


1
Il modo in cui finalmente ho funzionato è stato quello di scorrere la collezione di marcatori in cui li ho archiviati e usare setMap (null)
Sebastian

4
Ma questo cancella i marker dalla memoria? Mi rendo conto che JavaScript ha la garbage collection automatica, ma come facciamo a sapere se l'API di Google non contiene un riferimento al marker quando viene chiamato setMap (null)? Nella mia applicazione, aggiungo ed "elimino" un sacco di marcatori, e non sopporterei che tutti quei marcatori "cancellati" stiano risucchiando memoria.
Nick,

@Nick: aggiungi 'elimina this.markers [i];' dopo il bit setMap (null).
DaveS,

4
A questa domanda viene data risposta nella documentazione ora. code.google.com/apis/maps/documentation/javascript/…
lashleigh

1
Chi lo usa new Array();?
Rihards,

47

Sembra che non ci sia ancora una tale funzione in V3.

Le persone suggeriscono di conservare i riferimenti a tutti gli indicatori presenti sulla mappa in un array. E poi, quando vuoi eliminarli tutti, esegui il loop attraverso l'array e chiama il metodo .setMap (null) su ciascuno dei riferimenti.

Vedi questa domanda per maggiori informazioni / codice.

La mia versione:

google.maps.Map.prototype.markers = new Array();

google.maps.Map.prototype.getMarkers = function() {
    return this.markers
};

google.maps.Map.prototype.clearMarkers = function() {
    for(var i=0; i<this.markers.length; i++){
        this.markers[i].setMap(null);
    }
    this.markers = new Array();
};

google.maps.Marker.prototype._setMap = google.maps.Marker.prototype.setMap;

google.maps.Marker.prototype.setMap = function(map) {
    if (map) {
        map.markers[map.markers.length] = this;
    }
    this._setMap(map);
}

Il codice è la versione modificata di questo codice http://www.lootogo.com/googlemapsapi3/markerPlugin.html Ho rimosso la necessità di chiamare manualmente addMarker.

Professionisti

  • In questo modo mantieni il codice compatto e in un unico posto (non inquina lo spazio dei nomi).
  • Non devi più tenere traccia degli indicatori da solo, puoi sempre trovare tutti gli indicatori sulla mappa chiamando map.getMarkers ()

Contro

  • L'uso di prototipi e involucri come ho fatto ora rende il mio codice dipendente dal codice di Google, se fanno un cambiamento sindaco nella loro fonte questo si romperà.
  • Se non lo capisci, non sarai in grado di risolverlo se si rompe. Le probabilità sono basse che cambieranno tutto ciò che lo romperà, ma comunque ...
  • Se si rimuove manualmente un marker, il riferimento rimarrà comunque nella matrice dei marker. (È possibile modificare il mio metodo setMap per risolverlo, ma a costo di eseguire il looping dell'array di marker trogolo e rimuovere il riferimento)

1
+1 Da parte mia. Ma la tua risposta sarebbe migliore se includessi il wrapper per chiamare automaticamente addMarker!
Andrew,

Suppongo che in realtà ti riferisci alla risposta di Andrews. Mostreresti con codice cosa faresti di diverso e perché. Grazie
mp_

Meh scusate il ritardo, mi trattenni dal pubblicare codice perché non avevo modo di testarlo rapidamente.
Maiku Mori,

Grazie Maiku. Tuttavia, non capisco: come posso aggiungere un nuovo marcatore nel tuo esempio. Ancora molte grazie!
mp_

1
Ho provato a utilizzare setMap (null), ma avevo uno script di aggiornamento automatico e ogni volta che ho impostato tutti e circa 50 dei miei marcatori su una mappa nulla, avevo ancora un gruppo di marcatori senza mappa che fluttuavano nel DOM da qualche parte. Ciò continuava a causare l'arresto anomalo della pagina perché ogni 30 secondi aggiungeva 50 nuovi marcatori al DOM e questo si propagava all'infinito perché la pagina rimaneva aperta 24/7 su un video wall. Prima di crearne di nuovi, ho dovuto utilizzare la risposta migliore e cancellare completamente tutti gli overlay di mappe dal DOM. Spero che questo aiuti qualcuno; ci è voluto molto tempo per capire perché la mia pagina stava andando in crash! :(
InterfaceGuy

23

Questa era la più semplice di tutte le soluzioni originariamente pubblicate da YingYang l'11 marzo 14 alle 15: 049 sotto la risposta originale alla domanda originale degli utenti

Sto usando la sua stessa soluzione 2,5 anni dopo con Google Maps v3.18 e funziona come un fascino

markersArray.push(newMarker) ;
while(markersArray.length) { markersArray.pop().setMap(null); }

// No need to clear the array after that.

21
google.maps.Map.prototype.markers = new Array();

google.maps.Map.prototype.addMarker = function(marker) {
    this.markers[this.markers.length] = marker;
};

google.maps.Map.prototype.getMarkers = function() {
    return this.markers
};

google.maps.Map.prototype.clearMarkers = function() {
    for(var i=0; i<this.markers.length; i++){
        this.markers[i].setMap(null);
    }
    this.markers = new Array();
};

Non credo che ce ne sia uno in V3, quindi ho usato l'implementazione personalizzata sopra.

Disclaimer: non ho scritto questo codice ma ho dimenticato di conservare un riferimento quando l'ho unito al mio codebase, quindi non so da dove provenga.


+1 Da parte mia. Aggiungerei un wrapper per il costruttore google.maps.Marker (o il metodo setMap poiché penso che il costruttore lo chiami internamente) che chiama automaticamente addMarker, ma comunque bella risposta :).
Maiku Mori,

@Maiku Mari, mostreresti con codice cosa faresti diversamente e perché. Grazie
mp_

In che modo questa non è la soluzione? Rimuovere i marcatori usando set_map (null) sul marcatore particolare che si desidera cancellare, se si desidera cancellare tutto, scorrere attraverso usando questa funzione. Se vuoi qualcosa di più, richiedilo qui: code.google.com/p/gmaps-api-issues/issues/…
Petrogad,


6
-1 Cattivo stile. È stato creato un solo array di marker, ma uno per mappa dopo clearMarkers (causa della differenza get / set con i prototipi). Cattivi bug con più oggetti mappa.
Tomas,

18

Sulla nuova versione v3, hanno consigliato di tenere in array. come segue.

Vedi esempio alla panoramica dell'overlay .

var map;
var markersArray = [];

function initialize() {
  var haightAshbury = new google.maps.LatLng(37.7699298, -122.4469157);
  var mapOptions = {
    zoom: 12,
    center: haightAshbury,
    mapTypeId: google.maps.MapTypeId.TERRAIN
  };
  map =  new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

  google.maps.event.addListener(map, 'click', function(event) {
    addMarker(event.latLng);
  });
}

function addMarker(location) {
  marker = new google.maps.Marker({
    position: location,
    map: map
  });
  markersArray.push(marker);
}

// Removes the overlays from the map, but keeps them in the array
function clearOverlays() {
  if (markersArray) {
    for (i in markersArray) {
      markersArray[i].setMap(null);
    }
  }
}

// Shows any overlays currently in the array
function showOverlays() {
  if (markersArray) {
    for (i in markersArray) {
      markersArray[i].setMap(map);
    }
  }
}

// Deletes all markers in the array by removing references to them
function deleteOverlays() {
  if (markersArray) {
    for (i in markersArray) {
      markersArray[i].setMap(null);
    }
    markersArray.length = 0;
  }
}

6

La Galleria demo di Google ha una demo su come lo fanno:

http://code.google.com/apis/maps/documentation/javascript/examples/overlay-remove.html

È possibile visualizzare il codice sorgente per vedere come aggiungono marcatori.

Per farla breve, mantengono i marker in un array globale. Quando li cancella / elimina, eseguono il ciclo attraverso l'array e chiamano ".setMap (null)" sull'oggetto marker indicato.

Tuttavia, questo esempio mostra un "trucco". "Clear" per questo esempio significa rimuoverli dalla mappa ma tenerli nell'array, il che consente all'applicazione di aggiungerli rapidamente alla mappa. In un certo senso, ciò si comporta come "nascondendoli".

"Elimina" cancella anche l'array.


6
for (i in markersArray) {
  markersArray[i].setMap(null);
}

sta lavorando solo su IE.


for (var i=0; i<markersArray.length; i++) {
  markersArray[i].setMap(null);
}

lavorando su Chrome, Firefox, cioè ...


1
Si prega di leggere la guida per quanto riguarda la formattazione del codice su SO
freefaller

6

La soluzione è abbastanza semplice È possibile utilizzare il metodo: marker.setMap(map);. Qui, definisci su quale mappa apparirà il perno.

Quindi, se si imposta nullin questo metodo ( marker.setMap(null);), il pin scomparirà.


Ora puoi scrivere una funzione strega mentre fai scomparire tutti gli indicatori nella tua mappa.

Basta aggiungere per mettere i pin in un array e dichiararli con markers.push (your_new pin)o questo codice, ad esempio:

// Adds a marker to the map and push to the array.
function addMarker(location) {
  var marker = new google.maps.Marker({
    position: location,
    map: map
  });
  markers.push(marker);
}

Questa è una funzione che può impostare o eliminare tutti i marker dell'array nella mappa:

// Sets the map on all markers in the array.
  function setMapOnAll(map) {
    for (var i = 0; i < markers.length; i++) {
      markers[i].setMap(map);
    }
  }

Per far scomparire tutti i tuoi marcatori, dovresti chiamare la funzione con null:

// Removes the markers from the map, but keeps them in the array.
  function clearMarkers() {
    setMapOnAll(null);
  }

E, per rimuovere e scomparire, tutti i tuoi marker, dovresti ripristinare la tua serie di marker in questo modo:

// Deletes all markers in the array by removing references to them.
  function deleteMarkers() {
    clearMarkers();
    markers = [];
  }

Questo è il mio codice completo. È il più semplice che potrei ridurre a. Fai attenzione a sostituire YOUR_API_KEYil codice con l'API google chiave:

<!DOCTYPE html>
<html>
  <head>
  <title>Remove Markers</title>
  <style>
     /* Always set the map height explicitly to define the size of the div
     * element that contains the map. */
     #map {
       height: 100%;
       }
  </style>
</head>
<body>

<div id="map"></div>
<p>Click on the map to add markers.</p>
<script>

  // In the following example, markers appear when the user clicks on the map.
  // The markers are stored in an array.
  // The user can then click an option to hide, show or delete the markers.
  var map;
  var markers = [];

  function initMap() {
    var haightAshbury = {lat: 37.769, lng: -122.446};

    map = new google.maps.Map(document.getElementById('map'), {
      zoom: 12,
      center: haightAshbury,
      mapTypeId: 'terrain'
    });

    // This event listener will call addMarker() when the map is clicked.
    map.addListener('click', function(event) {
      addMarker(event.latLng);
    });

    // Adds a marker at the center of the map.
    addMarker(haightAshbury);
  }

   // Adds a marker to the map and push to the array.
  function addMarker(location) {
    var marker = new google.maps.Marker({
      position: location,
      map: map
    });
    markers.push(marker);
  }

  // Sets the map on all markers in the array.
  function setMapOnAll(map) {
    for (var i = 0; i < markers.length; i++) {
      markers[i].setMap(map);
    }
  }

  // Removes the markers from the map, but keeps them in the array.
  function clearMarkers() {
    setMapOnAll(null);
  }

  // Shows any markers currently in the array.
  function showMarkers() {
    setMapOnAll(map);
  }

  // Deletes all markers in the array by removing references to them.
  function deleteMarkers() {
    clearMarkers();
    markers = [];
  }

</script>
   <script async defer
    src="https://maps.googleapis.com/maps/api/js key=YOUR_API_KEY&callback=initMap">
   </script>
</body>
</html>

È possibile consultare lo sviluppatore di Google o la documentazione completa anche sul sito Web dello sviluppatore di Google .


5

Un'applicazione semplice e pulita della risposta di Rolinger.

function placeMarkerAndPanTo(latLng, map) {
      while(markersArray.length) { markersArray.pop().setMap(null); }
      var marker = new google.maps.Marker({
        position: latLng,
        map: map
      });
      map.panTo(latLng);

      markersArray.push(marker) ;
    }


4

Qui puoi trovare un esempio di come rimuovere i marker:

https://developers.google.com/maps/documentation/javascript/examples/marker-remove?hl=es

// Add a marker to the map and push to the array.
function addMarker(location) {
  var marker = new google.maps.Marker({
    position: location,
    map: map
  });
  markers.push(marker);
}

// Sets the map on all markers in the array.
function setAllMap(map) {
  for (var i = 0; i < markers.length; i++) {
    markers[i].setMap(map);
   }
}

// Removes the markers from the map, but keeps them in the array.
function clearMarkers() {
  setAllMap(null);
}

// Deletes all markers in the array by removing references to them.
function deleteMarkers() {
  clearMarkers();
  markers = [];
}

3

Quanto segue da Anon funziona perfettamente, anche se con sfarfallio quando si eliminano ripetutamente le sovrapposizioni.

Basta fare quanto segue:

I. Dichiara una variabile globale:

var markersArray = [];

II. Definire una funzione:

function clearOverlays() {
  if (markersArray) {
    for (i in markersArray) {
      markersArray[i].setMap(null);
    }
  }
}

III. Inserire i marker nell'array marker prima di chiamare quanto segue:

markersArray.push(marker);
google.maps.event.addListener(marker,"click",function(){});

IV. Chiamare la clearOverlays()funzione dove richiesto.

Questo è tutto!!

Spero che ti possa aiutare.


1
for(in in markersArray){}probabilmente non fa quello che ti aspetti che faccia. Se Arrayviene esteso in qualsiasi altra parte del codice, scorrerà anche su quelle proprietà e non solo sugli indici. La versione javascript di questo è markersArray.forEach()che non è supportata ovunque. Staresti meglio confor(var i=0; i<markersArray.length; ++i){ markersArray.setMap(null); }
Kit Sunde,

3

Ho trovato l'uso della libreria markermanager nel progetto google-maps-utility-library-v3 come il modo più semplice.

1. Configurare MarkerManager

mgr = new MarkerManager(map);
google.maps.event.addListener(mgr, 'loaded', function () {
    loadMarkers();
});

2. Aggiungere marcatori a MarkerManager

function loadMarkers() {
  var marker = new google.maps.Marker({
            title: title,
            position: latlng,
            icon: icon
   });
   mgr.addMarker(marker);
   mgr.refresh();
 }

3. Per cancellare i marker devi solo chiamare la clearMarkers()funzione MarkerManger

mgr.clearMarkers();

Sembra un bel po 'di eccessivo tirare dentro quella libreria per cancellare i marcatori. Tutto ciò che clearMarkersfa è iterare sui marcatori di chiamata marker.setMap(null)(ho controllato la fonte). Sarebbe meno lavoro metterli in un array e farlo da soli.
Kit Sunde,

3

Puoi farlo anche in questo modo:

function clearMarkers(category){ 
  var i;       

  for (i = 0; i < markers.length; i++) {                          
    markers[i].setVisible(false);        
  }    
}

2

Ho appena provato questo con kmlLayer.setMap (null) e ha funzionato. Non sono sicuro che funzionerebbe con normali pennarelli ma sembra funzionare correttamente.


2

Per cancellare tutti gli overlay inclusi poligoni, pennarelli, ecc ...

usa semplicemente:

map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);}

Ecco una funzione che ho scritto per farlo da me su un'applicazione di mappa:

  function clear_Map() {
    directionsDisplay = new google.maps.DirectionsRenderer();
    //var chicago = new google.maps.LatLng(41.850033, -87.6500523);
    var myOptions = {
        zoom: 8,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        center: HamptonRoads
    }

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    directionsDisplay.setMap(map);
    directionsDisplay.setPanel(document.getElementById("directionsPanel"));
}

questo non ripristinerebbe anche la mappa? supponiamo che l'utente abbia trascinato la mappa in una nuova area?
Kichu,

2

Per rimuovere tutti i marker dalla mappa, creare funzioni come questa:

1.addMarker (posizione): questa funzione utilizzata per aggiungere un marker sulla mappa

2.clearMarkers (): questa funzione rimuove tutti i marker dalla mappa, non dall'array

3.setMapOnAll (mappa): questa funzione utilizzata per aggiungere informazioni sui marker nell'array

4.deleteMarkers (): questa funzione Elimina tutti i marker nell'array rimuovendone i riferimenti.

// Adds a marker to the map and push to the array.
      function addMarker(location) {
        var marker = new google.maps.Marker({
          position: location,
          map: map
        });
        markers.push(marker);
      }


// Sets the map on all markers in the array.
      function setMapOnAll(map) {
        for (var i = 0; i < markers.length; i++) {
          markers[i].setMap(map);
        }
      }



// Removes the markers from the map, but keeps them in the array.
  function clearMarkers() {
    setMapOnAll(null);
  }

// Deletes all markers in the array by removing references to them.
      function deleteMarkers() {
        clearMarkers();
        markers = [];
      }

2

Il modo più pulito per farlo è quello di scorrere su tutte le funzionalità della mappa. I marcatori (insieme a poligoni, polilinee, ecc.) Sono memorizzati nel livello dati della mappa.

function removeAllMarkers() {
  map.data.forEach((feature) => {
    feature.getGeometry().getType() === 'Point' ? map.data.remove(feature) : null
  });
}

Nel caso in cui i marker vengano aggiunti tramite Gestione disegni , è meglio creare un array globale di marker o spingere i marker nel livello dati durante la creazione in questo modo:

google.maps.event.addListener(drawingManager, 'overlaycomplete', (e) => {
    var newShape = e.overlay;
    newShape.type = e.type;

    if (newShape.type === 'marker') {
      var pos = newShape.getPosition()
      map.data.add({ geometry: new google.maps.Data.Point(pos) });

      // remove from drawing layer
      newShape.setMap(null);
    }
  });

Raccomando il secondo approccio in quanto consente di utilizzare altri metodi di classe google.maps.data in un secondo momento.



0

Non so perché, ma l'impostazione setMap(null)per i miei marker non ha funzionato per me quando lo sto usando DirectionsRenderer.

Nel mio caso ho dovuto chiamare setMap(null)anche il mio DirectionsRenderer.

Qualcosa del genere:

var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();

if (map.directionsDisplay) {
    map.directionsDisplay.setMap(null);
}

map.directionsDisplay = directionsDisplay;

var request = {
    origin: start,
    destination: end,
    travelMode: google.maps.TravelMode.DRIVING
};

directionsDisplay.setMap(map);
directionsService.route(request, function (result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(result);
    }
});

0

Basta camminare sui marker e rimuoverli dalla mappa, quindi svuotare la serie di marker di mappe:

var markers = map.markers;
for(var i = 0; i < markers.length; i++) {
    markers[i].setMap(null);
}
map.markers = [];


0

Ho provato tutte le soluzioni proposte, ma nulla ha funzionato per me mentre tutti i miei marcatori erano sotto un cluster. Alla fine ho appena messo questo:

var markerCluster = new MarkerClusterer(map, markers,
    { imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m' });
agentsGpsData[agentGpsData.ID].CLUSTER = markerCluster;

//this did the trick
agentsGpsData[agentId].CLUSTER.clearMarkers();

In altre parole, se si avvolgono i marker in un cluster e si desidera rimuovere tutti i marker, si chiama:

clearMarkers();

-1

Intendi rimuovere come nasconderli o eliminarli?

se nascondendo:

function clearMarkers() {
            setAllMap(null);
        }

se si desidera eliminarli:

 function deleteMarkers() {
            clearMarkers();
            markers = [];
        }

nota che uso un marker di array per tenerne traccia e ripristinarlo manualmente.


-1

Devi impostare la mappa null su quel marker.

var markersList = [];    

function removeMarkers(markersList) {
   for(var i = 0; i < markersList.length; i++) {
      markersList[i].setMap(null);
   }
}

function addMarkers() {
   var marker = new google.maps.Marker({
        position : {
            lat : 12.374,
            lng : -11.55
        },
        map : map
       });
      markersList.push(marker);
   }

-1

Ho trovato una soluzione semplice (penso):

var marker = new google.maps.Marker();

function Clear(){
     marker.setMap(null);
}



-3

So che questa è forse una soluzione semplice, ma è quello che faccio

$("#map_canvas").html("");
markers = [];

Funziona ogni volta per me.


2
$ ( "#") map_canvas html ( ""); cancellerebbe di fatto l'intera mappa div e si affida anche a jQuery, quindi la tua risposta è sia stupida che inutile.
Sam,

Si, è corretto. Inizializza la mappa e gli indicatori
kronus

Ma non vuole reinizializzare la mappa che vuole rimuovere i marcatori esistenti ....
Sam

Sto solo offrendo il modo in cui ho trovato per rimuovere i marcatori esistenti. Almeno provaci e dimmi se ha funzionato o meno. Funziona per me
kronus

2
Il punto centrale di voler rimuovere i marcatori della mappa è di evitare di reinizializzare la mappa, situazioni come la mia hanno significato che, poiché stavo usando google libreria di disegni per disegnare sulla mappa se l'ho cancellato e reinizializzato l'intera mappa tutti gli overlay che ho disegnato scompare l'unico modo per fermare è quello di memorizzare tutti gli overlay e aggiungerli di nuovo, che è anche molto lavoro inutile. Reinizializzare la mappa non sta rimuovendo gli indicatori, ma ricrearlo da zero NON rimuovere gli indicatori.
Sam,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.