Check if render pixel is in the layer extent

This commit is contained in:
Mathias Boeck
2020-11-12 11:43:33 +01:00
parent db180c555e
commit a92bc2755d
+16 -1
View File
@@ -9,13 +9,14 @@ import {
compose as composeTransform, compose as composeTransform,
create as createTransform, create as createTransform,
} from '../../transform.js'; } from '../../transform.js';
import {createCanvasContext2D} from '../../dom.js';
import { import {
containsCoordinate,
getBottomLeft, getBottomLeft,
getBottomRight, getBottomRight,
getTopLeft, getTopLeft,
getTopRight, getTopRight,
} from '../../extent.js'; } from '../../extent.js';
import {createCanvasContext2D} from '../../dom.js';
import {rotateAtOffset} from '../../render/canvas.js'; import {rotateAtOffset} from '../../render/canvas.js';
/** /**
@@ -284,6 +285,20 @@ class CanvasLayerRenderer extends LayerRenderer {
); );
const context = this.context; const context = this.context;
const layer = this.getLayer();
const layerExtent = layer.getExtent();
if (layerExtent) {
const renderCoordinate = applyTransform(
frameState.pixelToCoordinateTransform,
pixel.slice()
);
/** get only data inside of the layer extent */
if (!containsCoordinate(layerExtent, renderCoordinate)) {
return null;
}
}
let data; let data;
try { try {
const x = Math.round(renderPixel[0]); const x = Math.round(renderPixel[0]);