Only hit-detect visible features
This commit is contained in:
@@ -30,6 +30,12 @@ ol.renderer.canvas.VectorLayer = function(mapRenderer, vectorLayer) {
|
|||||||
*/
|
*/
|
||||||
this.dirty_ = false;
|
this.dirty_ = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* @type {ol.Extent}
|
||||||
|
*/
|
||||||
|
this.frameStateExtent_ = ol.extent.createEmpty();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {number}
|
* @type {number}
|
||||||
@@ -96,14 +102,14 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel =
|
|||||||
if (goog.isNull(this.replayGroup_)) {
|
if (goog.isNull(this.replayGroup_)) {
|
||||||
return undefined;
|
return undefined;
|
||||||
} else {
|
} else {
|
||||||
goog.asserts.assert(!ol.extent.isEmpty(this.renderedExtent_));
|
goog.asserts.assert(!ol.extent.isEmpty(this.frameStateExtent_));
|
||||||
goog.asserts.assert(!isNaN(this.renderedResolution_));
|
goog.asserts.assert(!isNaN(this.renderedResolution_));
|
||||||
goog.asserts.assert(!isNaN(this.renderedRotation_));
|
goog.asserts.assert(!isNaN(this.renderedRotation_));
|
||||||
var coordinate = this.getMap().getCoordinateFromPixel(pixel);
|
var coordinate = this.getMap().getCoordinateFromPixel(pixel);
|
||||||
var layer = this.getLayer();
|
var layer = this.getLayer();
|
||||||
var renderGeometryFunction = this.getRenderGeometryFunction_();
|
var renderGeometryFunction = this.getRenderGeometryFunction_();
|
||||||
goog.asserts.assert(goog.isFunction(renderGeometryFunction));
|
goog.asserts.assert(goog.isFunction(renderGeometryFunction));
|
||||||
return this.replayGroup_.forEachGeometryAtCoordinate(this.renderedExtent_,
|
return this.replayGroup_.forEachGeometryAtCoordinate(this.frameStateExtent_,
|
||||||
this.renderedResolution_, this.renderedRotation_, coordinate,
|
this.renderedResolution_, this.renderedRotation_, coordinate,
|
||||||
renderGeometryFunction,
|
renderGeometryFunction,
|
||||||
/**
|
/**
|
||||||
@@ -174,6 +180,8 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
|
|||||||
var frameStateResolution = frameState.view2DState.resolution;
|
var frameStateResolution = frameState.view2DState.resolution;
|
||||||
var pixelRatio = frameState.devicePixelRatio;
|
var pixelRatio = frameState.devicePixelRatio;
|
||||||
|
|
||||||
|
this.frameStateExtent_ = frameStateExtent;
|
||||||
|
|
||||||
if (!this.dirty_ &&
|
if (!this.dirty_ &&
|
||||||
this.renderedResolution_ == frameStateResolution &&
|
this.renderedResolution_ == frameStateResolution &&
|
||||||
this.renderedRevision_ == vectorSource.getRevision() &&
|
this.renderedRevision_ == vectorSource.getRevision() &&
|
||||||
|
|||||||
Reference in New Issue
Block a user