Here's the full map function. The only thing happening "offstage" is that the leaflet_map div is getting removed via jQuery before this gets called.
function map_point(lat,lon){
console.log("rendering map with "+lat+" "+lon);
if (lat === undefined || lon === undefined){
var msg = "<div class='well'><br><br>Sorry, not enough data (lat/lon points or polygon) to render a map.</d iv>"
$('#col_r').html(msg);
return;
}
var a_point = new L.LatLng(lat,lon);
var map = new L.Map('leaflet_map',{
center: a_point,
zoom: 13
});
var cloudmade = new L.TileLayer(cloudmadeURL, {
attribution: cloudmadeAttribution,
maxZoom: 18
});
var bounds = map.getBounds();
var zoom = map.getZoom();
console.log(bounds);
//map.removeLayer(cloudmade);
map.addLayer(cloudmade);
//map.setView(a_point,13,true)
//map.fitBounds(bounds);
//map.setZoom(zoom);
map.invalidateSize();
var a_marker = new L.Marker(a_point);
map.addLayer(a_marker);
}