Don't use Uint32Array for IE compatibility
This commit is contained in:
@@ -34,7 +34,7 @@ ol.layer.Heatmap = function(opt_options) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {Uint32Array}
|
* @type {Uint8ClampedArray}
|
||||||
*/
|
*/
|
||||||
this.gradient_ = null;
|
this.gradient_ = null;
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ ol.layer.Heatmap.DEFAULT_GRADIENT = ['#00f', '#0ff', '#0f0', '#ff0', '#f00'];
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {Array.<string>} colors
|
* @param {Array.<string>} colors
|
||||||
* @return {Uint32Array}
|
* @return {Uint8ClampedArray}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.layer.Heatmap.createGradient_ = function(colors) {
|
ol.layer.Heatmap.createGradient_ = function(colors) {
|
||||||
@@ -108,11 +108,8 @@ ol.layer.Heatmap.createGradient_ = function(colors) {
|
|||||||
|
|
||||||
context.fillStyle = gradient;
|
context.fillStyle = gradient;
|
||||||
context.fillRect(0, 0, width, height);
|
context.fillRect(0, 0, width, height);
|
||||||
var imageData = context.getImageData(0, 0, width, height).data;
|
|
||||||
for (var i = 0, ii = imageData.length; i < ii; i += 4) {
|
return context.getImageData(0, 0, width, height).data;
|
||||||
imageData[i + 3] = i / 4;
|
|
||||||
}
|
|
||||||
return new Uint32Array(imageData.buffer);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -172,13 +169,14 @@ ol.layer.Heatmap.prototype.handleRender_ = function(event) {
|
|||||||
var context = event.context;
|
var context = event.context;
|
||||||
var canvas = context.canvas;
|
var canvas = context.canvas;
|
||||||
var image = context.getImageData(0, 0, canvas.width, canvas.height);
|
var image = context.getImageData(0, 0, canvas.width, canvas.height);
|
||||||
var view32 = new Uint32Array(image.data.buffer);
|
|
||||||
var view8 = image.data;
|
var view8 = image.data;
|
||||||
var i, ii, alpha;
|
var i, ii, alpha, offset;
|
||||||
for (i = 0, ii = view32.length; i < ii; ++i) {
|
for (i = 0, ii = view8.length; i < ii; i += 4) {
|
||||||
alpha = view8[4 * i + 3];
|
alpha = view8[i + 3] * 4;
|
||||||
if (alpha) {
|
if (alpha) {
|
||||||
view32[i] = this.gradient_[alpha];
|
view8[i] = this.gradient_[alpha];
|
||||||
|
view8[i + 1] = this.gradient_[alpha + 1];
|
||||||
|
view8[i + 2] = this.gradient_[alpha + 2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
context.putImageData(image, 0, 0);
|
context.putImageData(image, 0, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user