Es que mi amiga estas agregando marcas y borrando a la misma vez...esto te debería quedar así, avísame si te funciona, sino copia todo el código de como estas trabajando con Google Maps y vemos....
1ero. Cuando creas las marcas, definí una variable global que haga referencia a un objeto array. No se como estarás llamando a la función para cargar el mapa, recorrer el xml y agregar las marcas, pero supongamos cargas el mapa y que lo haces con un window.onload
Código Javascript
:
Ver originalwindow.onload = function(){
cargarMapa();
};
var markerArray = [];
var map;
var bounds;
function cargarMapa(){
var mapOptions = {
center: new google.maps.LatLng(0,0),
zoom:2,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
bounds = new google.maps.LatLngBounds();
map = new google.maps.Map(document.getElementById('cargarMapa'), mapOptions);
agregarMarcas();
}
Ahora agregas las marcas...y cada vez que creas una marca, almacenas la misma en un array, esto es para que cuando tengas que borrarlas, no tengas que recorrer todo el xml de nuevo, directamente recorres el array y borras
Código Javascript
:
Ver originalfunction agregarMarcas(){
$(xml).find("marker").each(function(){
var name = $(this).find('nombre_medico').text();
//var address = $(this).find('address').text();
var address = "holaaa";
// create a new LatLng point for the marker
var lat = $(this).find('latitud').text();
var lng = $(this).find('longitud').text();
var point = new google.maps.LatLng(parseFloat(lat),parseFloat(lng));
bounds.extend(point);
var marker = new google.maps.Marker({
position: point,
map: map
});
markerArray.push(marker );
var infoWindow = new google.maps.InfoWindow();
var html='<strong>'+name+'</strong.><br />'+address;
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
map.fitBounds(bounds);
});
}
ahora cuando quieras borrar las marcas, llamas a la funcion borrarMarcas...
Código Javascript
:
Ver originalfunction borrarMarcas(){
for (var i = 0; i < markerArray.length; i++) {
markerArray[i].setMap(null);
};
markerArray= [];
bounds = null;
bounds = new google.maps.LatLngBounds();
}