varios studio remove marcadores google eliminar borrar añadir agregar javascript jquery google-maps markerclusterer

javascript - studio - actualizar markercluster después de eliminar los marcadores de la matriz



google maps reset map (4)

Actualmente estoy usando el plugin markercluster con jquery ui maps.

Tengo dos arreglos, uno de todos los marcadores (llamados marcadores) y uno de los marcadores que coinciden con los criterios de búsqueda (llamados current_markers). Estos están rellenos de la primera matriz.

Luego dibujo los current_markers en la pantalla.

Sin embargo, estoy descubriendo que la biblioteca de marcadores no se está actualizando en función de este cambio.

Entonces, ¿cómo puedo actualizar el marcador comercial?

¿Es posible asignar el marcador comercial a una variable y llamar a una función de actualización?


Debe almacenar el objeto marcador en una var y luego desactivar el mapa de la siguiente manera:

var markerCluster = new MarkerClusterer(map, markers); /// ... later on markerCluster.setMap(null);

después de que hayas hecho esto, puedes new MarkerClusterer un new MarkerClusterer con nuevos marcadores

Actualizar

Ya que estás usando el plugin ui de google maps, aquí hay un código adicional. He añadido un clic, incluso en un botón con clase reset_markercluster esto es solo para mostrar cómo usarlo para llamar al mapa

var _map, _markerCluster; $(function() { $(''#map_canvas'').gmap().bind(''init'', function(event, map) { _map = map; // at this point you can call _map whenever you need to call the map // build up your markers here ... _markerCluster = new MarkerClusterer(_map, markers); // you could also use map instead of _map here cause it''s still present in this function }); $("button.reset_markercluster").click(function(e) { e.preventDefault(); _markerCluster.setMap(null); // remove''s the previous added markerCluster // rebuild you markers here ... _markerCluster = new MarkerClusterer(_map, newMarkers); }); });



Sí tu puedes.

Creando el mapa

Suponiendo que ha creado su objeto MarkerClusterer algo como esto:

var center = new google.maps.LatLng(10, 20); var map = new google.maps.Map(document.getElementById(''map''), { zoom: 6, center: center, mapTypeId: google.maps.MapTypeId.ROADMAP }); var markerClusterer = new MarkerClusterer(map);

Añadiendo marcadores

Puedes agregarle varios marcadores a algo como esto:

var markers = [] var marker = new google.maps.Marker({position: center}); markers.push(marker); markerClusterer.addMarkers(markers);

Tenga en cuenta que aquí solo he añadido uno.

Eliminando todos los marcadores

Luego puede borrar todos los marcadores usando clearMarkers algo como esto:

markerClusterer.clearMarkers(); markers = [];

Tenga en cuenta que para la limpieza también he desarmado la matriz de marcadores aquí.

Docs

La documentación completa de todos los métodos disponibles está disponible aquí:

https://googlemaps.github.io/js-marker-clusterer/docs/reference.html

Es una API sensible y relativamente completa.