我目前有一个工作的传单地图,并希望在此基础上使用传单插件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);
Run Code Online (Sandbox Code Playgroud)
当我运行地图时,我没有看到任何热图的迹象.然后,当我在地图上平移时,我在控制台中收到以下错误:
无法在'CanvasRenderingContext2D'上执行'getImageData':源高度为0.
知道如何解决这个问题吗?heatmap.js网站上的演示使用几乎完全相同的代码.
谢谢!
编辑:
我发现错误可能来自哪里.heatmap.js中的第316行是:
this._height = canvas.height = shadowCanvas.height = +(computed.height.replace(/px/,''));
Run Code Online (Sandbox Code Playgroud)
高度返回为零.但是正确设置了宽度.
我可以使用以下代码在 Chrome 中成功读取剪贴板图像:
data = event.originalEvent.clipboardData;
for (var i = 0; i<data.items.length; i++){
var item = data.items[i];
if (item.type === 'image/png'){
itemFound = true;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
然而,这种方法在 IE 中不起作用。微软发布了一篇关于在 IE 中粘贴的博客(http://blogs.msdn.com/b/ie/archive/2013/10/24/enhanced-rich-editing-experiences-in-ie11.aspx)。该博客指出我应该能够使用以下代码行
var fileList = clipboardData.files;
Run Code Online (Sandbox Code Playgroud)
然而,fileList 总是返回为空。
有谁知道在 IE 中访问剪贴板图像的方法?我能够很好地阅读文本,而不能阅读图像。