我正在使用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()方法,但对我不起作用。

09-30 09:21