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

View File

@@ -481,13 +481,18 @@ class Graticule extends VectorLayer {
*/
strategyFunction(extent, resolution) {
// 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()) {
wrapExtentX(realWorldExtent, this.projection_);
}
if (this.loadedExtent_ && !approximatelyEquals(this.loadedExtent_, realWorldExtent, resolution)) {
// we should not keep track of loaded extents
this.getSource().removeLoadedExtent(this.loadedExtent_);
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
this.getSource().removeLoadedExtent(this.loadedExtent_);
}
}
return [realWorldExtent];
}