2015-07-10 2 views
3

Я использую директиву «Угловое лифлет» для отображения тепловой карты, и я хочу, чтобы данные эволюционировали во времени. Мой код выглядит следующим образом:Обновление данных карты памяти с угловым лифтом

getData().then(function (data) { 
    $scope.heat.index = 0; 
    $scope.heat.data = data; 
    $scope.layers.overlays.heat = { 
     name: "Heatmap", 
     type: "heat", 
     data: $scope.heat.data[$scope.heat.index], // data is a dictionary, not an array 
     visible: true 
    }; 
    $scope.$watch('heat.index', function (new_index) { 
     $scope.layers.overlays.heat.data = $scope.heat.data[new_index]; 
    }); 
}); 

Однако, когда я меняю data.index (через слайдер), ничего не происходит. Что может продолжаться? Я знаю, что Angular-Leaflet поддерживает это поведение из-за this Github issue, где кто-то добавил его.

ответ

0
leafletData.getMap().then(function (map) { 
    map.eachLayer(function (layer) { 
    if (layer.options.layerName == 'heatmap') { 
     layer.setLatLngs(newHeatmapData); 
    } 
    }) 
}) 

Это сработало для меня.

Leaflet.heat предоставляет метод redraw(), но это не сработало для меня.

Смежные вопросы