Notice: mise à jour de la carte

Voici ma fonction que j'utilise pour dessiner un Dépliant carte de mon site web:

function drawTweetMap(points) {
    if (tweetMap != null)
        tweetMap.remove();  

    var london = [51.505, -0.09];
    tweetMap = L.map('tweetMap').setView(london, 5);

    var cloudmadeUrl = 'http://{s}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg';
    var subDomains = ['otile1','otile2','otile3','otile4'];
    var cloudmadeAttrib = 'Data, imagery and map information provided by <a href="http://open.mapquest.co.uk" target="_blank">MapQuest</a>, <a href="http://www.openstreetmap.org/" target="_blank">OpenStreetMap</a> and contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/" target="_blank">CC-BY-SA</a>';
    L.tileLayer(cloudmadeUrl, 
                  {attribution: cloudmadeAttrib, 
                   maxZoom: 18,
                   subdomains: subDomains})
    .addTo(tweetMap);

    var markers = L.markerClusterGroup();
    var points_rand = L.geoJson(points, {onEachFeature: onEachFeature});
    markers.addLayer(points_rand);
    tweetMap.addLayer(markers);
    tweetMap.fitBounds(markers.getBounds());
}

Cette fonction est appelée périodiquement:

mapWatch = setInterval(function() {
    retrieveCurrentTweetPositions()},
numMinutes*60*1000);

dans cette fonction:

function retrieveCurrentTweetPositions() {
    var points = retrieveCurrentPositions();
    var mapInput = translatePointsInMapFormat(points);
    drawTweetMap(mapInput);
}

Malheureusement, si la carte est tirée de cette façon, le résultat est le suivant:
Notice: mise à jour de la carte

Dans d'autres questions, j'ai trouvé qu'il est possible d'invalider la taille de la carte pour résoudre ce problème, il a été suggéré d'appeler sur le démarrage de cette fonction:

function updateTweetMapPosition() { 
    setTimeout(function(){
        tweetMap.invalidateSize(true);}
    ,500)
}

Je l'ai fait, et cela résout le problème au cours de la première carte de dessin. Cependant, lorsque je tente de redessiner la carte pour une seconde fois, le résultat est comme suit:

Notice: mise à jour de la carte

Quelqu'un a rencontré ce problème? Comment puis-je refaire la carte avec un plein chargement de son contenu?

Grâce.


MODIFIER

Voici le jsFiddle: http://jsfiddle.net/qzpwvqzk/

OriginalL'auteur Eleanore | 2015-04-21