ci sei quasi
codice:
var markers = new Array();
for (i=0; i < data.marker.length; i++) {
var marker = etc//
// qui sbagli, gli stai dicendo che per ogni posizione dell'array markers crei un'altro array..
// inoltre questa riga è "annullata" dalla successiva perchè la sovrascrivi.
// Quindi si può eliminare e basta (io te la commento)
// markers[i] = new Array();
markers[i] = marker;
}
//rimettiamo l'id_delete
var id_delete = //è sempre uguale a [data.marker[i].id_cat];
//elimino array
for (i = 0; i < markers.length; i++ ) {
// adesso in questo ciclo basta controllare se id_delete corrisponde
// all'id_cat del marker e agire di conseguenza
if(id_delete == markers[i].id_cat)
markers[i].setMap(null);
}
ti consiglio di debuggare il codice che scrivi con qualche browser (io uso chrome ed è tutto molto intuitivo).. in modo da vedere cosa fa il tuo codice, sicuramente riuscirai ad evitare questi errorini