【发布时间】:2015-05-07 01:31:06
【问题描述】:
我目前有一个有效的传单地图,并希望在此基础上使用传单插件 Heatmap.js。 http://www.patrick-wied.at/static/heatmapjs/example-heatmap-leaflet.html
我使用的代码与上面链接中的示例非常相似。
var testData = {
max: 8,
data: [{lat: 24.6408, lng:46.7728, radius:500, count: 3}]
};
var cfg = {
"radius": 2,
"maxOpacity": 8,
"scaleRadius": true,
"useLocalExtrema": true,
latField: 'lat',
lngField: 'lng',
valueField: 'count'
};
var heatmapLayer = new HeatmapOverlay(cfg);
map.addLayer(heatmapLayer);
heatmapLayer.setData(testData);
当我运行地图时,我看不到热图的任何迹象。然后,当我在地图上平移时,控制台中出现以下错误:
在“CanvasRenderingContext2D”上执行“getImageData”失败:源高度为 0。
知道如何解决这个问题吗? heatmap.js 网站上的演示使用几乎相同的代码运行良好。
谢谢!
编辑:
我找到了错误的来源。 heatmap.js 中的第 316 行是:
this._height = canvas.height = shadowCanvas.height = +(computed.height.replace(/px/,''));
高度返回为零。但是,宽度设置正确。
【问题讨论】:
-
您是否设置了 BaseLayer 并添加到地图对象中?
-
当我初始化地图时,我为它提供了一个可以正常工作的图层。你是这个意思吗?我没有在地图中设置任何 BaseLayer 属性。
-
啊,是的;另外,您的容器是否设置了宽度和高度?
-
是的,容器的高度和宽度为 100%。正如我提到的,地图运行良好,我已经能够添加标记、平移和缩放,没有任何问题。
-
你有嵌套的 div 吗?我只用 就可以运行代码。我几乎只是使用了来自github.com/pa7/heatmap.js/blob/develop/examples/leaflet-heatmap/… 的 HTML
标签: jquery rendering leaflet heatmap