return previous extent if extents are approx equal

This commit is contained in:
mike-000
2020-03-31 16:26:30 +01:00
committed by GitHub
parent 9af1e223af
commit 149ca7efad
+7 -2
View File
@@ -481,14 +481,19 @@ class Graticule extends VectorLayer {
*/ */
strategyFunction(extent, resolution) { strategyFunction(extent, resolution) {
// extents may be passed in different worlds, to avoid endless loop we use only one // extents may be passed in different worlds, to avoid endless loop we use only one
const realWorldExtent = extent.slice(); let realWorldExtent = extent.slice();
if (this.projection_ && this.getSource().getWrapX()) { if (this.projection_ && this.getSource().getWrapX()) {
wrapExtentX(realWorldExtent, this.projection_); wrapExtentX(realWorldExtent, this.projection_);
} }
if (this.loadedExtent_ && !approximatelyEquals(this.loadedExtent_, realWorldExtent, resolution)) { if (this.loadedExtent_) {
if (approximatelyEquals(this.loadedExtent_, realWorldExtent, resolution)) {
// make sure result is exactly equal to previous extent
realWorldExtent = this.loadedExtent_.slice();
} else {
// we should not keep track of loaded extents // we should not keep track of loaded extents
this.getSource().removeLoadedExtent(this.loadedExtent_); this.getSource().removeLoadedExtent(this.loadedExtent_);
} }
}
return [realWorldExtent]; return [realWorldExtent];
} }