Кажется, что автофит не заботится об удаленных элементах.
Но вы можете реализовать это самостоятельно.
Для данного примера это сделают следующие модификации:
1.
замените этострока:
tmp[ ville.region ] = true;
по:
if( tmp[ ville.region ])
{
tmp[ ville.region ].bounds.extend(new google.maps.LatLng(ville.lat,ville.lng))
}
else
{
tmp[ ville.region ]=
{
bounds:new google.maps.LatLngBounds(new google.maps.LatLng(ville.lat,ville.lng)),
checked:true
}
}
Для каждого региона будут храниться границы LatLng и статус (проверено)
2.
Добавьте сразу после этого:
$.each(markers, function(i, marker){
marker.setMap( checked ? map : null);
});
эти строки:
tmp[region].checked=checked;
var bounds=new google.maps.LatLngBounds();
$.each(tmp,function(i,o)
{
if(o.checked)
{
bounds.union(o.bounds);
}
}
);
map.fitBounds(bounds);
он установит статус проверки текущего региона и затем вычислит LatLngBounds для всех видимых регионов.Результат будет использоваться в качестве аргумента для map.fitBounds ()
Демо: http://jsfiddle.net/doktormolle/nBtVB/