我正在使用Angular-Leaflet指令显示热图,并且希望数据随着时间变化。我的代码如下:
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。 最佳答案
leafletData.getMap().then(function (map) {
map.eachLayer(function (layer) {
if (layer.options.layerName == 'heatmap') {
layer.setLatLngs(newHeatmapData);
}
})
})
这对我有用。
Leaflet.heat提供了redraw()方法,但对我不起作用。